《数据库系统概论》 第二章 关系数据库 讲义
CX
SCX (SCX.Sno=Student.Sno∧
SCX.Cno=CX.Cno)
(10)用蕴函(Implication)的检索
[例14] 查询最少选修了200215122 学生所选课程的学生学号 RANGE Couse CX
SC SCX SC SCY GET W (Student.Sno): CX( (SCX.Sno=‘200215122'
(11)聚集函数
常用聚集函数(Aggregation function)或内部函数(Build-in function) 聚集函数(续)
[例15] 查询学生所在系的数目。
GET W ( COUNT(Student.Sdept) ) COUNT 函数在计数时会自动排除重复值。 [例16] 查询信息系学生的平均年龄
GET W (AVG(Student.Sage): Student.Sdept='IS’ )
二、更新操作 (1) 修改操作 (2) 插入操作 (3) 删除操作 (1)修改操作步骤
① 用HOLD语句将要修改的元组从数据库中读到工作空间中
HOLD 工作空间名(表达式1)[:操作条件 ] HOLD语句是带上并发控制的GET语句 ② 用宿主语言修改工作空间中元组的属性
SCY(SCY.Sno=Student.Sno
SCY.Cno= CX.Cno))
SCX ∧
SCX.Cno=CX.Cno)
∧
- 26 -
《数据库系统概论》 第二章 关系数据库 讲义
③ 用UPDATE语句将修改后的元组送回数据库中 UPDATE 工作空间名 修改操作(续)
[例17] 把200215121学生从计算机科学系转到信息系。 HOLD W (Student.Sno, Student.Sdetp): Student.Sno=‘200215121' (从Student关系中读出95007学生的数据) MOVE 'IS' TO W.Sdept
(2)插入操作 步骤
① 用宿主语言在工作空间中建立新元组 ② 用PUT 语句把该元组存入指定关系中 PUT 工作空间名 (关系名)
PUT语句只对一个关系操作,关系演算中的聚集函数
[例18] 学校新开设了一门2学分的课程“计算机组织与结构”,其课程号为8,直接先行课为6号课程。插入该课程元组 MOVE '8' TO W.Cno
MOVE '计算机组织与结构' TO W.Cname MOVE '6' TO W.Cpno MOVE '2' TO W.Ccredit PUT W (Course)
(用宿主语言进行修改)
(把修改后的元组送回Student关系)
UPDATE W
- 27 -
《数据库系统概论》 第二章 关系数据库 讲义
(3)删除操作 步骤
① 用HOLD语句把要删除的元组从数据库中读到工作空间中 ② 用DELETE语句删除该元组 DELETE 工作空间名
[例19] 200215125学生因故退学,删除该学生元组 HOLD W (Student): Student.Sno=‘200215125' DELETE W
[例20] 将学号200215121改为200215126
HOLD W (Student): Student.Sno=‘200215121' DELETE W
MOVE ‘200215126' TO W.Sno MOVE '李勇' TO W.Sname MOVE '男' TO W.Ssex MOVE '20‘ TO W.Sage MOVE 'CS' TO W.Sdept PUT W (Student)
[例21] 删除全部学生
HOLD W (Student) DELETE W
为保证参照完整性 ,删除Student中元组时相应地要删除SC中的元组 HOLD W (SC) DELETE W
小结:元组关系演算语言ALPHA
- 28 -
《数据库系统概论》 第二章 关系数据库 讲义
检索操作 GET
GET 工作空间名 [(定额)](表达式1) [:操作条件] [DOWN/UP 表达式2] 插入操作
建立新元组--PUT 修改操作
HOLD--修改--UPDATE 删除操作 HOLD--DELETE
2.5.2 域关系演算语言QBE 一种典型的域关系演算语言 由M.M.Zloof提出
以元组变量的分量即域变量作为谓词变元的基本对象
QBE :Query By Example 基于屏幕表格的查询语言
查询要求:以填写表格的方式构造查询 用示例元素(域变量)来表示查询结果可能的情况 查询结果:以表格形式显示 QBE操作框架
一、检索操作 1.简单查询
[例1]求信息系全体学生的姓名 操作步骤为: (1)用户提出要求; (2)屏幕显示空白表格; 简单查询(续)
(3)用户在最左边一栏输入要查询的关系名Student;
- 29 -
《数据库系统概论》 第二章 关系数据库 讲义
(4)系统显示该关系的属性名
(5)用户在上面构造查询要求
李勇是示例元素,即域变量
(6)屏幕显示查询结果 构造查询的几个要素
示例元素 即域变量 一定要加下划线
示例元素是这个域中可能的一个值,它不必是查询结果中的元素 打印操作符P. 实际上是显示 查询条件
可使用比较运算符>,≥,<,≤,=和≠ 其中=可以省略
[例2] 查询全体学生的全部数据 简单查询(续)
显示全部数据也可以简单地把P.操作符作用在关系名上。 2. 条件查询
[例3] 求年龄大于19 岁的学生的学号
条件查询(与条件)
[例4] 求计算机科学系年龄大于19 岁的学生的学号。
方法(1) :把两个条件写在同一行上 条件查询(与条件)
方法(2):把两个条件写在不同行上,但使用相同的示例元素值 条件查询(与条件)
[例5] 查询既选修了1号课程又选修了2号课程的学生的学号。 条件查询(或条件)
- 30 -