数据库管理及应用SQL Server 2019(太原理工大学):第二章

复习点:

1.关系模型的一些基本概念:

  • 每个关系对应一张规范的二维表。

  • 每一行称为一个元组或记录;每一列称为一个属性或字段。(属性名、属性值)

  • 关系的型由表头确定,除表头外剩下的就是关系值

  • 域是一组具有相同数据类型值的集合。属性A 的域可以表示为DOM(A)。不同属性可以有相同的域(解释:比如性别的域就是男和女)
    在这里插入图片描述

  • 键:关系中由唯一可标识记录的属性或属性组构成。也称为码
    a.候选键:若关系表中的某一属性或属性组的值可唯一确定一个记录,则称该属性或属性组为候选码
    b.主键:在候选键中选定一个键作为记录标识,主键不允许为空值。
    c.外键:若在关系R中包含另一个关系S的主键所对应的属性或属性组K,则称K为R的外键(码)

  • 相同属性被称为连接属性或关联属性

2.关系的类型:

  • 基本关系(基本表):是实际存在的表,是实际存储数据的“二维表”。
  • 查询表::查询结果对应的表。
  • 视图表:由基本表或其他视图导出的表,是虚表,不对应实际存储的数据。

3.关系的基本性质:

  • 关系中的列(属性/字段)是同质的,
  • 关系中的列必须是原子值,每个属性都必须是不可再分的数据项(解释:就像属性“班级学生”就不是原子值,因为“班级学生”还可以再分为学生姓名,学生学号等属性。)
  • 任意两行不能完全相同
  • 任意两列不能同名
  • 关系中的行不分先后顺序

4.关系模式的表示:

R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性集合,D为属性取值的域,DOM是属性域的对应集合,F为属性之间数据的依赖关系集合。但通常简记为R(U)

5.E-R图向关系模型的转换

(1)转换规则:将每一个实体转换成一个关系模式时,实体的属性就是关系的属性,实体的标识符就是关系的键

(2)转换方法:

  • 一对一联系的转换:(举例)
    学生(学号,身份证号,姓名,性别,专业,出生日期),主键为学号
    身份证(身份证号,签发机关,有效期始,有效期止),主键为身份证号
    那么就可以在学生端加入身份证号作为联系属性在两者间建立一对一关系。

  • 一对多联系转换:(举例)
    在这里插入图片描述
    学生(学生姓名,学生学号,所在班级,性别)学生学号为主键
    班级(班级号,备注信息)班级号为主键
    一个班级可以对应多个学生,一个学生只能对应一个班级。
    方法一:新建一个关系表,该关系包含元组(学生学号,班级号)
    方法二:在学生表中(也就是n的一方)新增属性“班级号 ”(也就是少的一方的主键)。

  • 多对多联系转换:(举例)
    在这里插入图片描述学生(姓名,学号,性别,专业)主键为学号
    课程(课程号 ,课程名,先修课)主键为课程号
    新增一个关系表,该表中包含这两个实体的主键还有联系自身的属性

6.关系模型的完整性
(1)实体完整性:要求每个关系有且仅有一个主键,而且每个主键的值必须唯一,不能为空值或重复。
(2)参照完整性:主要说的是多表之间的数据选取和调用,用外键保证数据的一一对应。
(3)用户定义的完整性:包括NOT NULL约束、UNIQUE约束、值域约束。

7.关系运算(三大要素:运算对象、运算符、运算结果)
(1)传统的关系运算

  • 并运算∪

  • 差运算-

  • 交运算∩

  • 广义笛卡尔积×(举例):单独的笛卡尔积本身并没有具体的实际意义和用途,只有加上限制条件才会起到真正处理数据的作用。
    表R
    表S
    R×S
    (2)专门的关系运算(以上图的表为例)

  • 选择运算σ:对水平方向进行选取
    如:σ姓名=“张三”

  • 投影运算π:对列方向进行筛选
    如:π出生日期

  • 连接运算⋈:分为等值连接(用于没有公共属性的情况)和自然连接(用于有公共属性的情况),自然连接需要删除重复属性
    表B
    表S
    B⋈S C<E
    B⋈S B.B=S.B
    B⋈S
    第三、四张图是等值连接(第三张图的条件是C<E;第四张图的条件是B.B<S.B),最后一张图是自然连接(删除了重复属性)

  • 除运算
    表R
    表S
    表R中:
    张三对应的象集为{(1,语文),(1,数学),(1,英语)}
    李四对应的象集为{(2,语文)}
    王五对应的象集为{(3,数学),(3,英语)}
    表S在学号和所选课程的投影为:
    {(1,语文),(1,数学),(1,英语), (3,数学)}
    比较发现只有张三的象集全部包含在了表S 在学号和所选课程的投影中,所以R÷S的结果为张三。

8.SQL标识符
(1)常规标识符:

  • 首字符不能是数字或$符号
  • 标识符不允许使用SQL保留字,如sp_help命令或函数名max等
  • 标识符不允许有空格或特殊字符如:?%&*等
  • 长度不能超过128个字符

(2)界定标识符

  • 方括号或引号:对于不符合标识符命名规则的标识符要用方括号或引号括起来
  • 空格和保留字

(默认情况下,只能使用括号作为界定标识符。被称作引用标识符,如果使用引用标识符的话,要将Quoted_Identifier表示设为ON)

9.SQL数据类型

  • 整数型:bigint,int,smallint,tinyint,bit
  • 字符型:char,varchar,text
  • 精确数值型:decimal,numeric
  • 近似数值型:float,real
  • 货币性:money,smallmoney
  • 二进制型:binary,varbinary,image
  • 双字节型
  • 日期时间型:datetime,smalldatetime
  • 时间戳型
  • 其它

10.SQL常量

  • 字符型常量:由(a ~ z;A ~ Z)、(0 ~ 9)、(!、@、#)等组成,放在单引号内。分为ASCII常量和Unicode常量
  • 整型常量:二进制整数、十进制整数和十六进制整数
  • 日期时间型常量:用单引号引起来
  • 实型常量:表示定点数或浮点数
  • 货币常量:以货币符号开头
  • 全局唯一标识符

11.SQL变量:
(1)局部变量:

  • 声明:declare @变量名1【as】数据类型,@变量名2【as】数据类型…
  • 赋值语句:set @变量名 = 表达式; select@变量名 = 输出值from 表where条件;select@变量名1 = 表达式1【,@变量名2 = 表达式2…, @变量名n = 表达式n】
    由上述可看出,局部变量的必须以@开头。

(2)全局变量
全局变量是SQL Server系统定义并提供信息的变量。用于检测服务器及系统的运行情况,用户不能定义全局变量,也不能使用set语句对其进行赋值。系统中提供了33个全局变量。

12.常用函数
(1)聚合函数
AVG(平均值)、COUNT(计数)、MAX(最大值)、MIN(最小值)、SUM(和)除 COUNT函数外,聚合函数均忽略空值。
(2)数学函数

  • ABS(绝对值,返回整数)
  • 、CEILING(返回大于等于数值表达式的最小整数值)
  • FLOOR(返回小于等于数值表达式的最大整数值)
  • 、RAND(返回随机0~1之间的浮点数)
  • PI(返回圆周率float)
  • POWER(返回表达式指定幂的值)
  • SQUARE(返回指定浮点值的平方)
  • SQRT(返回指定浮点值的平方)
  • EXP(返回之低昂表达式以e为底的指数)
  • SIN、COS
  • LOG10(返回数值表达式以10为底的数)
  • 、LOG(返回数值表达式的自然对数)

(3)字符函数

  • ASCII(返回字符表达式中最左侧的字符的ASCII码值)
  • CHAR(获取ASCII码对应的字符)
  • RIGHT(截取从右边第一个字符开始,指定长度的字符串)
  • LEFT(截取从左边第一个字符开始。指定长度的字符串)
  • LEN(获取字符串的长度)
  • LOWER(将大写字符转化为小写字符并返回)
  • UPPER(返回小写字符数据转化为大写字符的表达式)
  • STR(数字向字符转换)
  • LTRIM(删除前导空格字符串并返回删除后的字符串)
  • RTRIM(清空右边连续的空格)

(4)日期时间函数

  • DATEADD(指定日期加上一个时间间隔后的新的datetime值)
  • DATEDIFF(返回跨两个指定日期的日期边界数和时间边界数)
  • DAY(返回一个整数表示指定日期天depart部分)
  • MONTH(返回表示指定日期“月”部分的整数)
  • YEAR(返回表示指定日期的“年”部分的整数)

在这里插入图片描述
13.常用运算符(注意优先级)
(1)算术运算符
(2)比较运算符:不等于号:<>
(3)逻辑运算符:返回TRUE或FALSE或UNKNOWN的BOOLEAN数据类型值
(4)连接运算符
(5)按位运算符

14.表达式
(1)数学表达式
(2)字符串表达式
(3)比较表达式
(4)逻辑表达式:AND,OR,NOT

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值