文档详情

PPT-第三章关系数据库标准语言SQL.ppt

发布:2018-05-24约1.16万字共138页下载文档
文本预览下载声明
第三章 关系数据库标准语言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
显示全部
相似文档