关系数据库标准语言SQL第三章.ppt
《关系数据库标准语言SQL第三章.ppt》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQL第三章.ppt(85页珍藏版)》请在三一办公上搜索。
1、数据库技术与应用,数据库系统概论An Introduction to Database System第三章 关系数据库标准语言SQL,第三章 关系数据库标准语言SQL,3.1 SQL概述3.2 数据定义3.3 查询3.4 数据更新3.5 视图3.6 数据控制3.7 嵌入式SQL3.8 小结,数据库技术与应用,3.1 SQL概述,SQL的特点1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方法5.语言简洁,易学易用,数据库技术与应用,5.语言简捷,易学易用,数据库技术与应用,第三章 关系数据库标准语言SQL,3.1 SQL概述3.2 数据定义3.3 查询3.4
2、数据更新3.5 视图3.6 数据控制3.7 嵌入式SQL3.8 小结,数据库技术与应用,3.2 数 据 定 义,数据库技术与应用,3.2.1 定义语句格式,CREATE TABLE(,):所要定义的基本表的名字:组成该表的各个属性(列):涉及相应属性列的完整性约束条件:涉及一个或多个属性列的完整性约束条件,数据库技术与应用,例题,例1 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATE TABLE Student(Sno CHAR(5)NOT NULL UNI
3、QUE,Sname CHAR(20)UNIQUE,Ssex CHAR(1),Sage INT,Sdept CHAR(15),数据库技术与应用,定义基本表(续),常用完整性约束主码约束:PRIMARY KEY唯一性约束:UNIQUE非空值约束:NOT NULL参照完整性约束,数据库技术与应用,例题(续),例2 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。CREATE TABLE SC(Sno CHAR(5),Cno CHAR(3),Grade int,Primary key(Sno,Cno),数据库技术与应用,例题(续),数据库
4、技术与应用,三、删除基本表,DROP TABLE 基本表删除:数据、表上的索引都删除,表上的视图往往仍然保留,但无法引用删除基本表时,系统会从数据字典中删去有关该基本表及其索引的描述,数据库技术与应用,例题,例5 删除Student表 DROP TABLEStudent,数据库技术与应用,二、修改基本表,ALTER TABLE ADD 完整性约束 DROP MODIFY:要修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件MODIFY子句:用于修改列名和数据类型,数据库技术与应用,例题,例2 向Student表增加“入学时间”列,其数据类型为日期型。AL
5、TER TABLE Student ADD Scome DATE不论基本表中原来是否已有数据,新增加的列一律为空值。,数据库技术与应用,语句格式(续),删除属性列 直接/间接删除把表中要保留的列及其内容复制到一个新表中删除原表再将新表重命名为原表名直接删除属性列:(新)例:ALTER TABLE Student Drop Scome,数据库技术与应用,例3 将年龄的数据类型改为半字长整数。ALTER TABLE Student MODIFY Sage SMALLINT注:修改原有的列定义有可能会破坏已有数据,数据库技术与应用,例题,例4 删除学生姓名必须取唯一值的约束。ALTER TABLE
6、Student DROP UNIQUE(Sname),数据库技术与应用,3.2.2 建立与删除索引,建立索引是加快查询速度的有效手段建立索引DBA或表的属主(即建立表的人)根据需要建立有些DBMS自动建立以下列上的索引 PRIMARY KEY UNIQUE维护索引 DBMS自动完成使用索引 DBMS自动选择是否使用索引以及使用哪些索引,数据库技术与应用,什么是索引,数据库技术与应用,1001,1002,1003,1006,1005,1004,1008,1009,1010,物理地址,索引表,数据表,一、建立索引,语句格式CREATE UNIQUE CLUSTER INDEX ON(,)用指定要建
7、索引的基本表名字索引可以建立在该表的一列或多列上,各列名之间用逗号分隔用指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引,数据库技术与应用,例题,例6 为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATE UNIQUE INDEX Stusno ON Student(Sno)CREATE UNIQUE INDEX Coucno ON
8、 Course(Cno)CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC),数据库技术与应用,建立索引(续),唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束,数据库技术与应用,唯一值索引,数据库技术与应用,1001,1002,1003,1004,1005,1006,1007,1008,1009,物理地址,索引表,数据表,建立索引(续),聚簇索引建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚
9、簇索引的索引项顺序与表中记录的物理顺序一致例:CREATE CLUSTER INDEX Stusname ON Student(Sname)在Student表的Sname(姓名)列上建立一个聚簇索引,而且Student表中的记录将按照Sname值的升序存放,数据库技术与应用,聚簇索引,数据库技术与应用,1001,1002,1003,1004,1005,1006,1007,1008,1009,物理地址,索引表,数据表,建立索引(续),在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作
10、,数据库技术与应用,二、删除索引,DROP INDEX 删除索引时,系统会从数据字典中删去有关该索引的描述。例7 删除Student表的Stusname索引。DROP INDEX Stusname,数据库技术与应用,3.3 查 询,3.3.1 概述3.3.2 单表查询3.3.3 连接查询3.3.4 嵌套查询3.3.5 集合查询3.3.6 小结,数据库技术与应用,3.3.1 概述,语句格式SELECT ALL|DISTINCT,FROM,WHERE GROUP BY HAVING ORDER BY ASC|DESC,数据库技术与应用,语句格式,SELECT子句:指定要显示的属性列FROM子句:指
11、定查询对象(基本表或视图)WHERE子句:指定查询条件 GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。HAVING短语:筛选出只有满足指定条件的组ORDER BY子句:对查询结果表按指定列值的升序或降序排序,数据库技术与应用,示例数据库,学生-课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade),数据库技术与应用,3.3 查 询,3.3.1 概述3.3.2 单表查询3.3.3 连接查询3.
12、3.4 嵌套查询3.3.5 集合查询3.3.6 小结,数据库技术与应用,3.3.2 单表查询,查询仅涉及一个表,是一种最简单的查询操作一、选择表中的若干列二、选择表中的若干元组三、对查询结果排序四、使用集函数五、对查询结果分组,数据库技术与应用,查询指定列,例1 查询全体学生的学号与姓名。SELECT Sno,SnameFROM Student例2 查询全体学生的姓名、学号、所在系。SELECT Sname,Sno,SdeptFROM Student,数据库技术与应用,查询全部列,例3 查询全体学生的详细记录。SELECT Sno,Sname,Ssex,Sage,Sdept FROM Stud
13、ent 或SELECT*FROM Student,数据库技术与应用,3.查询经过计算的值,SELECT子句的为表达式算术表达式字符串常量函数列别名等,数据库技术与应用,3.查询经过计算的值,例4 查全体学生的姓名及其出生年份。SELECT Sname,2000-SageFROM Student输出结果:Sname 2000-Sage-李勇 1976 刘晨 1977 王名 1978 张立 1978,数据库技术与应用,3.查询经过计算的值,例5 查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。SELECT Sname,Year of Birth:,2000-Sage,LOWER(
14、Sdept)FROM Student,数据库技术与应用,例题(续),输出结果:Sname Year of Birth:2000-Sage ISLOWER(Sdept)-李勇 Year of Birth:1976 cs 刘晨 Year of Birth:1977 is 王名 Year of Birth:1978 ma 张立 Year of Birth:1977 is,数据库技术与应用,例5.1 使用列别名改变查询结果的列标题,SELECT Sname NAME,Year of Birth:BIRTH,2000-Sage BIRTHDAY,LOWER(Sdept)DEPARTMENTFROM St
15、udent输出结果:NAME BIRTH BIRTHDAY DEPARTMENT-李勇 Year of Birth:1976 cs 刘晨 Year of Birth:1977 is 王名 Year of Birth:1978 ma 张立 Year of Birth:1977 is,数据库技术与应用,二、选择表中的若干元组,消除取值重复的行查询满足条件的元组,数据库技术与应用,1.消除取值重复的行,在SELECT子句中使用DISTINCT短语假设SC表中有下列数据 Sno Cno Grade-95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 标准 语言 SQL 第三

链接地址:https://www.31ppt.com/p-5039637.html