PPT-第三章关系数据库标准语言SQL.ppt
文本预览下载声明
第三章 关系数据库标准语言SQL;3.1 SQL 概述;6. 视图数据结构;SQL;3.2 数据定义;3.2.1 定义、删除与修改基本表;说明:
列名:组成该表的各个属性(列)
列级完整性约束条件:涉及相应属性列的完整性约束条件
表级完整性约束条件:涉及一个或多个属性列的完整性约束条件 ;常用完整性约束:
唯一性约束:UNIQUE
非空值约束:NOT NULL
参照完整性约束
主码约束: PRIMARY KEY
;二、修改扩充基本表;例4 将年龄的数据类型改为半字长整数。;三、删除基本表;3.2.2 建立与删除索引;一、建立索引; 例8 为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。;(2)聚簇索引
建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致。;二、删除索引;3.3 查 询;说明:
SELECT子句:指定要显示的属性列
FROM子句:指定查询对象(基本表或视图)
WHERE子句:指定查询条件
GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。
HAVING短语:筛选出只有满足指定条件的组
ORDER BY子句:对查询结果表按指定列值的升序(ASC)或降序(DESC)排序 ;3.3.1 单表查询;一、选择表中的若干列;3. 查询经过计算的值:;例5 查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名。;输出结果:
NAME BIRTH BIRTHDAY DEPARTMENT
李勇 Year of Birth: 1976 cs
刘晨 Year of Birth: 1977 is
王名 Year of Birth: 1978 ma
张立 Year of Birth: 1977 is;★注意: DISTINCT短语的作用范围是所有目标列。;例8 查询所有年龄在20岁以下的学生姓名及其年龄。;(3)确定集合:;(4)字符匹配:;例12 查询学号为95001的学生的详细情况。;例13 查询所有姓刘学生的姓名、学号和性别。;★注意:当用户要查询的字符串本身就含有 % 或 _ 时,要使用ESCAPE ‘换码字符’ 短语对通配符进行转义,使其转义为普通字符。;(5)??及空值的查询:;(6)多重查询条件:; 改写例10 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。;三、对查询结果排序; 例22 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。;求最大值
MAX([DISTINCT|ALL] 列名)
求最小值
MIN([DISTINCT|ALL] 列名)
DISTINCT短语:在计算时要取消指定列中的重复值
ALL短语:不取消重复值
ALL为缺省值;例25 计算1号课程的学生平均成绩。;说明:
GROUP BY子句的作用对象是查询的中间结果表
分组方法:按指定的一列或多列值分组,值相等的为一组
使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集函数;SELECT Sno, COUNT(*) FROM SC
WHERE Grade=90
GROUP BY Sno HAVING COUNT(*)=3;3.3.2 连接查询;3. 连接操作的执行过程;一、等值与非等值连接查询;结果表
Student.Sno Sname Ssex Sage Sdept SC.Sno Cno Grade
95001 李勇 男 20 CS 95001 1 92
95001 李勇 男 20 CS 95001 2 85
95001 李勇 男 20 CS 95001 3 88
95002 刘晨 女 19
显示全部