第五章 关系数据库标准语言——SQL

上传人:豆浆 文档编号:6401511 上传时间:2017-08-08 格式:PPT 页数:93 大小:2.81MB
返回 下载 相关 举报
第五章 关系数据库标准语言——SQL_第1页
第1页 / 共93页
第五章 关系数据库标准语言——SQL_第2页
第2页 / 共93页
第五章 关系数据库标准语言——SQL_第3页
第3页 / 共93页
第五章 关系数据库标准语言——SQL_第4页
第4页 / 共93页
第五章 关系数据库标准语言——SQL_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《第五章 关系数据库标准语言——SQL》由会员分享,可在线阅读,更多相关《第五章 关系数据库标准语言——SQL(93页珍藏版)》请在金锄头文库上搜索。

1、第五章 关系数据库标准语言SQL,本章教学目标、重点和难点,本章教学目标:使学生了解SQL的功能和语言特点;熟练掌握用SQL进行表的定义、数据查询和数据更新,掌握SQL的数据控制方法。 2. 教学重点:SQL的数据定义、数据查询、数据维护和数据控制表示方法 3. 教学难点:用SQL实现嵌套查询、组合查询、使用分组和SQL函数查询。,本章内容,SQL的功能及特点数据定义语句数据查询语句数据更新语句嵌入式SQL数据控制机制和语句,SQL的功能及特点,1974,1975-1979,1986-1987,1992,1999,由Boyce和Chamberlin提出,IBM公司研制了关系DBMS原型,并实现

2、该语言,美国批准SQL作为美国标准,随后ISO也通过这一标准,公布了SQL-92标准,公布了SQL-99,也称作SQL3,SQL的功能及特点,数据定义,数据控制,数据操纵,SQL语句分类,SQL的功能及特点,SQL语句分类,数据定义,数据操纵,数据控制,定义关系数据库的模式、外模式和内模式,以实现对基本表、视图以及索引文件的定义、修改和删除等操作。,包括数据查询和数据更新两种数据操作语句:数据查询指对数据库中的数据查询、统计、分组、排序操作;数据更新指数据的插入、删除、修改等数据维护操作。,通过对数据库用户的授权和收权命令来实现有关数据的存取控制,以保证数据库的安全性。,SQL的功能及特点,S

3、QL的特点1)SQL具有自主式语言和嵌入式语言两种使用方式;2)SQL具有语言简洁、易学易用的特点;,SQL的功能及特点,SQL的特点3) SQL支持三级模式结构,数据定义语句,1. 语句格式约定符号,数据定义语句,2. 一般语法规定SQL中的数据项(包括列项、表和视图)分隔符为“,”,其字符串常数的定界符用单引号“”表示3. SQL特殊语法规定SQL的关键词一般使用大写字母表示;语句的结束符为“;”语句一般应采用格式化书写方式,数据定义语句,基本表的定义和维护1. 基本表的定义,定义基本表语句的一般格式为: CREATE TABLE 库名表名( 列名数据类型列级完整性约束条件 ,列名数据类型

4、列级完整性约束条件 ,n ,表级完整性约束条件 ,n );,数据定义语句,建立基本表: 学生(学号,姓名,年龄,性别,所在系);课程(课程号,课程名,先行课); 选课(学号,课程号,成绩).,CREATE TABLE 课程(课程号 CHAR(5) PRIMARY KEY, 课程名 CHAR(20), 先行课 CHAR(5) );,数据定义语句,(1)SQL支持的数据类型,数据定义语句,(2)列级完整性的约束条件1)NOT NULL或NULL约束NOT NULL约束不允许字段值为空而NULL约束允许字段值为空。2)UNIQUE约束UNIQUE约束是惟一性约束,即不允许列中出现重复的属性值。3)D

5、EFAULT约束DEFAULT为默认值约束。DEFAULT约束名默认值FOR列名4)CHECK约束CHECK为检查约束。CONSTRAINT约束名CHECK (约束条件表达式),数据定义语句,建立基本表: 学生(学号,姓名,年龄,性别,所在系);课程(课程号,课程名,先行课); 选课(学号,课程号,成绩).,CREATE TABLE 学生(学号 CHAR(5) NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL, 年龄 SMALLINT, 性别 CHAR(2), 所在系 CHAR(20), DEFAULT C1 20 FOR 年龄, CONSTRAINT C2 CHECK

6、(性别 IN (男,女);,数据定义语句,(3)表级完整性的约束条件1)UNIQUE约束UNIQUE约束是惟一性约束,当要求列祖的值不能有重复值时,使用UNIQUE约束定义。2)PRIMARY KEY约束定义主码,保证惟一性和非空性。CONTRAINT约束名PRIMARY KEY CLUSTERED (列组)3)FOREIGN KEY约束用于定义参照完整性。 CONTRAINT约束名FOREIGN KEY(外码) REFERENCES被参照表名(与外码对应的主码名),数据定义语句,建立基本表: 学生(学号,姓名,年龄,性别,所在系);课程(课程号,课程名,先行课); 选课(学号,课程号,成绩)

7、.,CREATE TABLE 选课(学号 CHAR(5), 课程号 CHAR(5), 成绩 SMALLINT, CONSTRAINT C3 CHECK(成绩 BETWEEN 0 AND 100), CONSTRAINT C4 PRIMARY KEY(学号,课程号), CONSTRAINT C5 FOREIGN KEY(学号) REFERENCES 学生(学号), CONSTRAINT C6 FOREIGN KEY(课程号) REFERENCES 课程(课程号);,数据定义语句,2.修改基本表,ALTER TABLE表名 ADD(新列名数据类型完整性约束 ,n) DROP完整性约束名 MODIF

8、Y(列名数据类型,n);,使用ADD子句增加新列【例5-2】向课程表中增加“学时”字段。 ALTER TABLE 课程 ADD 学时 SMALLINT;使用MODIFY子句修改列的原定义:MODIFY子句主要用于加宽原列的宽度使用DROP子句删除指定的完整性约束条件【例5-3】删除学生表中对年龄的默认值的定义。 ALTER TABLE 学生 DROP C1;,数据定义语句,3.删除基本表,删除基本表的一般格式为: DROP TABLE表名;,数据定义语句,索引的定义和维护1.索引的作用,使用索引可以明显地加快数据查询的速度;先将索引文件读入内存,根据索引项找到元组的地址,然后再根据地址将元组数

9、据直接读入计算机。由于索引文件中只含有索引项和元组地址,所以文件小,一般可一次读入内存索引文件中的索引项是经过排序的,可以很快地找到索引项值和元组地址,数据定义语句,索引的定义和维护1.索引的作用,使用索引可以明显地加快数据查询的速度; 使用索引可保证数据的惟一性;使用索引可以加快连接速度。,2.建立索引的原则,索引的建立和维护由DBA和DBMS完成;大表应当建索引,小表则不必建索引;对于一个基本表,不要建立过多的索引;根据查询要求建索引。,数据定义语句,3.建立索引的格式,建立格式为:CREATE UNIQUE CLUSTER INDEX索引名 ON表名(列名次序,列名次序);,是要建索引的

10、基本表的名字;每个后面还可以用指定索引值的排列次序,次序可选ASC(升序)或DESC(降序),默认值为ASC;UNIQUE表示该索引的每一个索引值只对应唯一的数据记录;CLUSTER表示要建立的索引是聚簇索引,使基本表中数据的物理顺序与索引项的排列顺序一致。,数据定义语句,3.建立索引的格式,【例5-4】为学生_课程数据库中的学生、课程和选课三个表建立索引。其中,学生表按学号升序建立索引;课程表按课程号升序建惟一索引;选课表按学号升序和课程号降序建惟一索引。CREATE UNIQUE INDEX 学号 ON 学生(学号);CREATE UNIQUE INDEX 课程号 ON 课程(课程号);C

11、REATE UNIQUE INDEX 选课号 ON 选课(学号 ASC,课程号 DESC);,数据定义语句,4.删除索引,删除索引格式为: DROP INDEX 索引名;例:删除学生表的学生姓名索引DROP INDEX 学生姓名,数据定义语句,视图的定义和维护1.视图的优点视图是根据子模式设计的关系,由一个或几个基本表导出的虚表。,视图能够简化用户的操作;视图机制可以减少用户对数据库中数据结构的调整操作,使用户将注意力集中在所关心的数据上。2)视图机制可以使用户以不同的方式看待同一数据;当多用户共享同一个数据库的数据时,通过视图机制可以实现各个用户对数据的不同使用要求。3)视图可以对机密的数据

12、提供安全保护,数据定义语句,1.视图的优点,4)视图对数据库的重构提供了一定程度的逻辑独立性;在关系数据库中,数据库的重构往往是不可避免的。但由于视图机制,将为应用程序提供了原来使用的关系,保持外模式。,原表:学生(学号,姓名,性别,年龄,所在系)分成:SX(学号,姓名,年龄) SY(学号,性别,所在系),CREATE VIEW 学生 (学号,姓名,性别,年龄,所在系)AS SELECT SX.学号,SX.姓名,SX.性别,SY.年龄,SY.所在系FROM SX,SYWHERE SX.学号=SY.学号;,数据定义语句,2.视图定义的格式,一般格式为: CREATE VIEW视图名(列名组) A

13、S子查询 WITH CHECK OPTION;,(1)WITH CHECK OPTION选项 表示在对视图进行UPDATE、INSERT和DELETE操作时,要保证操作的数据满足视图定义中的谓词条件。该谓词条件是视图子查询中的WHERE子句的条件。,数据定义语句,2.视图定义的格式,一般格式为: CREATE VIEW视图名(列名组) AS子查询 WITH CHECK OPTION;,(2)组成视图的属性列名全部省略或者全部指定 若省略了视图的各个属性列名,则由子查询中的SELECT子句的目标列代替 必须明确指定列名的情况某个目标列是集函数或列表达式;子查询中使用多个表(或视图),并且目标列中

14、含有相同的属性名;需要在视图中改用新的、更合适的列名。,数据定义语句,2.视图定义的格式,【例5-6】建立计算机系学生的视图。 CREATE VIEW 计算机系学生 AS SELECT 学号,姓名,年龄 FROM 学生 WHERE 所在系=计算机系;,数据定义语句,2.视图定义的格式,【例5-7】由学生、课程和选课三个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩CREATE VIEW 学生成绩(学号,姓名,课程名,成绩) AS SELECT 学生.学号,学生.姓名,课程.课程名,选课.成绩 FORM 学生,课程,选课 WHERE 学生.学号=选课.学号 AND 程.课程名=选课.课程号 AND 学生.所在系=计算机系;,数据定义语句,2.视图定义的格式,【例5-8】将学生的学号、总成绩、平均成绩定义成一个视图。 CREATE VIEW 学生成绩统计(学号,总成绩,平均成绩) AS SELECT 学号,SUM(成绩),AVG(成绩) FORM 选课 GROUP BY 学号;,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号