概述
【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能
〇、本文所用数据库表格:
一、关系运算:
关系运算,数学名词,基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接、除法、外连接等),数据库操作的有些查询需要几个基本运算的组合,要经过若干步骤才能完成。关系是由元组构成的集合,可以通过关系的运算来表达查询要求。
1.1 传统的关系运算:
1.1.1 并:
- R∪S
- 仍为n 元关系 , 由属于R 或属于S 的元组组成
R∪S = { t|t 属于 R∨t 属于S } - 示意图:
1.1.2 差: - R - S
- 仍为n元关系 , 由属于R 而不属于S 的所有元组组成
R - S = { t|t属于R∧t不属于S } - 示意图:
1.1.3 交:
- R∩S
- 仍为n 元关系 , 由既属于R 又属于S 的元组组成
R∩S = { t|t 属于R∧t 属于S }
R∩S = R – (R-S) - 示意图:
1.1.4 笛卡尔积:
- R ×S
- 示意图:
1.2 专门的关系运算:
1.2.1 选择:
- 在关系R中选择满足给定条件的诸元组。
- σ F ® = {t|t属于R∧F(t)= ’ 真’}
F:选择条件 :选择条件 , 是一个逻辑表达式 - 示意图:
1.2.2 投影:
- 从R 中选择出若干属性列组成新的关系
π A ® = { t[A] | t属于R }
A : R中的属性列。 - 投影操作主要是从列的角度进行运算
投影之后不仅取消了原关系中的某些列 , 而且还可能
取消某些元组(避免重复行!)。
1.2.3 连接: - 连接也称为θ连接。
- 连接运算的含义:
从两个关系的笛卡尔积中选属性间满足一定条件的元组。 - 两类常用的连接运算:
等值连接(equijoin)、自然连接(natrualjoin)。
1.等值连接:
从关系R和S的广义笛卡尔积中选取A、B属性值相等的那些元组。
2.自然连接:
自然连接是等值连接的一种特殊情况; 等值连接要求连接的是值相等的分量,两个关系中可以没有相同的属性;进行自然连接的两个关系中必须有相同的属性。 等值连接不要求去掉重复属性列;自然连接时需要除掉重复的属性列。
自然连接的含义:
- R和S的相同属性组的值相等。
- 两个关系中进行比较的分量必须是相同的属性组。
- 在结果中要把重复的属性列去掉。
- 一般的连接操作是从行的角度进行运算,而自然连接需要取消重复列,是同时从行和列的角度进行运算。
3.内连接(Inner Join):
- 两个关系做自然连接时,连接的结果是满足条件的元组保留下来,不满足条件的元组被舍弃了。
4.外连接(Outer Join):
- 如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫外连接。
- 左外连接:只把左边关系中要舍弃的元组保留。
- 右外连接:只把右边关系中要舍弃的元组保留。
4.除:
二、SQL语言介绍:
SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的、功能极强的关系数据库语言。
- SQL和SQL SERVER的区别:
- SQL( structured query language) 结构化查询语言。
它是一种标准,不是一种软件。 - SQL SERVER 是数据库管理系统的一种,这种软件在遵循 SQL 这种标准,很多数据库管理软件及开发工具都支持 SQL。
2.1 SQL语言的特点:
1.综合统一:
数据定义语言(DDL),数据查询语言(DQL),数据操纵语言(DML),数据控制语言(DCL)于一体。可独立完成数据库生命周期中的全部活动,随时修改。数据操作符统一。
2.高度非过程化:
面向对象的第四代语言;SQL只要提出“做什么”,无须了解存取路径;存取路径的选择以及SQL的操作过程由系统自动完成。
3.面向集合的操作方式:
操作对象、查找结果可以是元组的集合;一次插入、删除、更新操作的对象是元组的集合。
4.以同一种语法结构提供多种使用方式:
独立的语言,能够独立用于联机交互的使用方式;嵌入式语言,能够嵌入到高级语言中使用。
2.2 SQL语言功能概述:
SQL语言有四部分功能: 数据定义、 数据控制、 数据查询、 数据操纵。
2.2.1 SQL支持关系数据库的三级模式结构:
- 基本表:
本身独立存在的表。
SQL中一个关系就对应一个基本表。
一个(或多个)基本表对应一个存储文件。
一个表可以带若干索引。 - 视图:
从一个或几个基本表导出的表。
数据库中只存放视图的定义。
视图是一个虚表。
用户可以在视图上再定义视图。 - 存储文件:
逻辑结构组成了关系数据库的内模式。
物理结构是任意的,对用户透明。 - 索引:
为快速访问数据,而在包含数据的表中增加的一种组织。
分为聚簇索引和非聚簇索引。
聚簇索引:指索引项的顺序与表中记录的物理顺序一致的索引组织。
2.3 SQL的数据类型:
2.3.1 数值型:
分为 准确型和近似型。
- 准确型:
整数:
Bigint:8字节
Int:4字节
Smallint:2字节
Tinyint:1字节(表示范围为0~255整数)
Bit:1位,存储1或0
小数:
Numeric(p,q)或Decimal(p,q),
其中:p为数字位长度,q为小数位长度。 - 近似型:
Float:8字节
Real:4字节
2.3.2 字符串型:
- 普通编码字符串类型:
Char(n):定长存储,n<=8000
Varchar(n):不定长存储(按实际),长度不超过n,n<=8000
Text:存储大于8000字节的文本 - 统一字符编码字符串类型:
nchar(n):定长存储,n<=4000
nvarchar(n):不定长存储,长度最大不超过n,n<=4000
ntext:存储大于8000字节的文本
特点:每个字符占两个字节。 - 二进制字符串类型:
Binary(n):固定长度,n<=8000
Varbinary(n):可变长度,n<=8000
注:n为二进制数据的字节数。
Image:大容量、可变长二进制字符数据,可用于存储文件。
2.3.3 日期时间型:
Datatime:8字节,年月日时分秒毫秒
SmallDateTime:4字节,年月日时分
2.4 SQL的数据定义功能:
1.定义基本表:
CREATE TABLE <表名>
2.删除表:
DROP TABLE <表名>
3.修改表结构:
ALTER TABLE <表名>
2.5 数据完整性:
2.5.1 完整性约束条件的作用对象:
- 完整性检查是围绕完整性约束条件进行的,因此,完整性约束条件是完整性控制机制的核心。
- 完整性约束条件的作用对象可以是表、元组和列。即:
列级约束、元组约束、关系约束。
1.列级约束:
列级约束主要是对列的类型、取值范围、精度等的约束。
- 对 数据类型 的约束:
包括数据类型、长度、精度等。 - 对 数据格式 的约束:
如:规定学号的前两位表示学生的入学年份,第三位表示系的规定学号的前两位表示学生的入学年份,第三位表示系的编号,第四位表示专业编号,第五位代表班的编号等等。 - 对 取值范围 的约束:
如: 学生的成绩取值范围为0 ~100。 。 - 对 空值 的约束。
2.元组约束:
元组的约束是元组中各个字段之间的相互约束,如:
开始日期小于结束日期。
职工的最低工资不能低于规定的最低保障金。
3.关系约束:
指若干元组之间、关系之间的联系的约束,如:
学号的取值不能重复也不能取空值。
学生修课表中的学号的取值受学生表中的学号取值的约束。
2.5.2 实现数据完整性:
1.声明完整性:
在表定义时声明,使用约束、缺省值等。
2.过程完整性:
在客户端或服务器端用编程语言或工具来实现。
在Server端用触发器(Trigger)来实现。
2.5.3 实现约束:
- PRIMARY KEY 约束:保证实体完整性。
- UNIQUE 约束:确保在非主键列中不输入重复值。应用在客观具有唯一性质的列上。如:身份证号、社保号等。
- FOREIGN KEY 约束:用于建立和加强两个表数据之间的连接的一列或多列。如:为雇员表的工作编号添加外码引用约束,此列引用工作表的工作编号列。
- DEFAULT 约束:当向表中插入数据时,如果没有为定义了DEFAULT的列提供值,则此列使用默认值。一个DEFAULT只能约束一列。
- CHECK 约束:通过限制输入到列中的值来强制域的完整性,可定义同表多列之间的约束关系。 如:在雇员表中,添加限制雇员的工资必须大于等于500的约束。再比如:添加限制工资表的最低工资小于等于最高工资的约束。
最后
以上就是干净老鼠为你收集整理的【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能〇、本文所用数据库表格:一、关系运算:二、SQL语言介绍:的全部内容,希望文章能够帮你解决【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能〇、本文所用数据库表格:一、关系运算:二、SQL语言介绍:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复