数据库技术及应用第4章关系数据库标准语言sql课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库技术及应用第4章关系数据库标准语言sql课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库技术 应用 关系 数据库 标准 语言 sql 课件
- 资源描述:
-
1、第第4章章 关系数据库标准语言关系数据库标准语言SQL 4.1 SQL概述及特点概述及特点 4.2 SQL的数据定义功能的数据定义功能 4.3 SQL的数据查询功能的数据查询功能 4.4 SQL的数据更新功能的数据更新功能 4.5 嵌入式嵌入式SQL 4.6 SQL的数据控制功能的数据控制功能 习题习题4 4.1 SQL概述及特点概述及特点 SQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。SQL语言是一个通用的、功能极强的关系数据库语言。1.SQL的主要功能SQL的功能可以分为三类:(1)数据定义功能。(2)数据操纵功能。(3)数据控制功能。2.SQL的特点 SQ
2、L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,它除了具有一般关系数据库语言的特点外,还具有以下三个特点:(1)SQL具有自主式和嵌入式两种形式。(2)SQL具有语言简洁、易学易用的特点。(3)SQL支持三级数据模式结构。表4-1 SQL的命令动词 图4-1 SQL对关系数据库模式的支持SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式模式内模式4.2 SQL的数据定义功能的数据定义功能 SQL的数据定义包括定义基本表、索引、视图和数据库,其基本语句如表4-2所示。表4-2 SQL的数据定义语句 1.语句格式的约定符号 在语句格式中:尖括号“”实际语义。中括
3、号“”中的内容任选项。大括号“”或用分隔符“|”中的内容必选项,即必选其中之一项。,n表示前面的项可重复多次。2.一般语法规定 SQL中的数据项(包括列项、表和视图)分隔符为“,”,其字符串常数的定界符用单引号“”表示。3.SQL的特殊语法规定 SQL的关键词一般使用大写字母表示。SQL语句的结束符为“;”。SQL一般应采用格式化书写方式。4.2.1 基本表的定义和维护功能 SQL的基本表定义和维护功能使用基本表的定义、修改和删除三种语句实现。1.定义基本表 SQL语言使用CREATE TABLE语句定义基本表,定义基本表语句的一般格式为 CREATE TABLE 库名表名(列名数据类型列级完
4、整性约束条件 ,列名数据类型列级完整性约束条件,n ,表级完整性约束条件,n);(1)SQL支持的数据类型。不同的数据库系统支持的数据类型不完全相同。IBM DB2 SQL支持的数据类型由表4-3列出,其中,使用最多的是字符型数据和数值型数据。表4-3 IBM DB2 SQL支持的主要数据类型 (2)列级完整性的约束条件。列级完整性约束是针对属性值设置的限制条件。SQL的列级完整性条件有以下几种:NOT NULL或NULL约束。UNIQUE约束。DEFAULT约束。CHECK约束。(3)表级完整性约束条件。表级完整性约束条件是指涉及到关系中多个列的限制条件。在上述的CHECK约束中,如果约束条
5、件表达式中涉及到多列数据,它便为表级约束。【例4-1】用SQL建立学生_课程库中的基本表,其表结构为 学生(学号,姓名,年龄,性别,所在系)课程(课程号,课程名,先行课)选课(学号,课程号,成绩)2.修改基本表 当已建立好的基本表随着应用环境和应用需求的变化而需要修改时,需要利用SQL的修改基本表语句修改表结构。SQL语言用ALTER TABLE语句来修改基本表,其一般格式为 ALTER TABLE 表名 ADD(新列名 数据类型 完整性约束,n)DROP 完整性约束名 MODIFY(列名 数据类型,n);(1)使用ADD子句增加新列。当需要向表中增加新列和新的完整性约束时,使用ADD字句对表
6、结构进行修改操作。【例4-2】向课程表中增加“学时”字段。ALTER TABLE 课程 ADD 学时 SMALLINT;(2)使用MODIFY子句修改列的原定义。(3)使用DROP子句删除指定的完整性约束条件。【例4-3】删除学生表中对“年龄”的默认值的定义。3.删除基本表 当不再需要某个基本表时,使用DROP TABLE语句删除它,其一般格式为 DROP TABLE 表名;基本表一旦被删除,表中的数据及在此表基础上建立的索引、视图将自动地全部被删除掉。因此,执行删除基本表的操作时一定要格外小心。4.2.2 索引的定义和维护功能 1.索引的作用 使用索引有以下三方面的作用:(1)可以明显地加快
7、数据查询的速度。(2)可保证数据的惟一性。(3)可以加快连接速度。2.建立索引的原则 建立索引是加快数据查询的有效手段,在建立索引时,用户应当依照以下原则:(1)索引的建立和维护由DBA和DBMS完成。(2)大表应当建索引,小表则不必建索引。(3)对于一个基本表,不要建立过多的索引。(4)根据查询要求建索引。3.建立索引的格式 在SQL语言中,建立索引使用CREATE INDEX语句,其一般格式为 CREATE UNIQUE CLUSTER INDEX 索引名 ON 表名(列名次序,列名次序);【例4-4】为学生课程数据库中的学生、课程和选课三个表建立索引。其中,学生表按“学号”升序建立索引;
8、课程表按“课程号”升序建立惟一索引;选课表按“学号”升序和“课程号”降序建立惟一索引。CREATE UNIQUE INDEX 学号ON 学生(学号);CREATE UNIQUE INDEX 课程号 ON 课程(课程号);CREATE UNIQUE INDEX 选课号 ON 选课(学号 ASC,课程号 DESC);4.删除索引 索引一经建立,就由系统来选择和维护,无须用户干预。建立索引是为了减少查询操作的时间,但如果数据增、删、改频繁,系统就会花费大量的时间来维护索引,这样就得不偿失了,因此,有时需要删除一些不必要的索引。SQL语言使用DROP INDEX语句删除索引,其一般格式为 DROP I
9、NDEX 索引名;【例4-5】删除学生表的学生姓名索引。DROP INDEX 学生姓名;删除索引时,系统会同时从数据字典中删去有关对该索引的描述。4.2.3 视图的定义和维护功能 视图是根据子模式设计的关系,它是由一个或几个基本表(或已定义的视图)导出的虚表。1.视图的优点 合理地使用视图能够对系统的设计和用户的使用带来很多方便。(1)视图能够简化用户的操作。(2)视图机制可以使用户以不同的方式看待同一数据。(3)视图对数据库的重构提供了一定程度的逻辑独立性。(4)视图可以对机密的数据提供安全保护。2.视图定义的格式SQL语言用CREATE VIEW 来定义视图,其一般格式为 CREATE V
10、IEW 视图名(列名组)AS 子查询 WITH CHECK OPTION;【例4-6】建立计算机系学生的视图。CREATE VIEW 计算机系学生 AS SELECT 学号,姓名,年龄 FROM 学生 WHERE 所在系=计算机系;例4-6中的视图是由一个基本表构造出的。【例4-7】由学生、课程和选课三个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩。【例4-8】将学生的学号、总成绩、平均成绩定义成一个视图。3.视图的删除 视图删除语句的一般格式为 DROP VIEW 视图名;视图删除后,视图的定义将从数据字典中删除,而由该视图导出的其他视图的定义却仍存在于数据字典中,
11、但这些视图已失效。4.视图的查询和维护 视图可以和基本表一样被查询,其使用方法与基本表相同,但利用视图进行数据增、删、改操作,会受到一定的限制。4.3 SQL的数据查询功能的数据查询功能 4.3.1 SELECT语句介绍 SQL的数据查询语句中包括SELECT、FROM、WHERE、GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。1.SELECT语句的语法 SELECT语句的语法格式为 SELECT 目标列组 FROM 数据源 WHERE 元组选择条件 GROUP BY 分列组 HAVING组选择条件 ORDER BY 排序
12、列1 排序要求1,n;(1)SELECT子句。(2)FROM子句。(3)WHERE子句。(4)GROUP BY子句。(5)ORDER BY子句。2.SELECT语句的操作符 (1)算术操作符。算术操作符在SQL语句中表达数学运算操作。SQL的数学运算操作符只有四种,它们是:+(加号)、(减号)、*(乘号)和/(除号)。(2)比较操作符。比较操作符用于测试两个数据是否相等、不等、小于或大于某个值。SQL中的比较操作符包括:=(等于)、(大于)、(小于)、=(大于等于)、!=或(不等于)、!(不大于)和!、=、=和!=。当连接运算符为“=”时,该连接操作称为等值连接;否则,使用其他运算符的连接运算
13、称为非等值连接。当等值连接中的连接字段相同,并且在SELECT子句中去除了重复字段时,则该连接操作为自然连接。【例4-15】查询每个学生的情况以及他(她)所选修的课程。【例4-16】求学生的学号、姓名、选修的课程名及成绩。【例4-17】求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。(2)自连接操作。连接操作不只是在两个表之间进行,一个表内还可以进行自身连接操作。表自身的连接操作称为自连接。【例4-18】查询每一门课的间接先行课(即先行课的先行课)。表4-5 课程表中的数据 表4-6 课程表自连接操作 (3)外部连接操作。在前面连接示例的结果集中只保留了符合连接条件的元组,而排除了两个
14、表中没有对应的或匹配的元组情况,这种连接称为内连接。如果要求查询结果集中保留非匹配的元组,就要执行外部连接操作。表4-7 职工和部门表数据 【例4-19】用SQL表达职工和部门的内连接、左外部连接和右外部连接的语句分别如下:内连接:SELECT 职工.*,部门名称,电话 FROM 职工,部门 WHERE 职工.所在部门=部门.部门号;左外部连接:SELECT 职工.*,部门名称,电话 FROM 职工,部门 WHERE 职工.所在部门*=部门.部门号;右外部连接:SELECT 职工.*,部门名称,电话 FROM 职工,部门 WHERE 职工.所在部门=*部门.部门号;表4-8 职工和部门表各种连
15、接的结果集对照表 3.嵌套查询 在SQL语言中,一个SELECTFROMWHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。(1)使用IN操作符的嵌套查询。当IN操作符后的数据集需要通过查询得到时,就需要使用IN嵌套查询。【例4-20】求选修了高等数学的学生学号和姓名。(2)使用比较符的嵌套查询。IN操作符用于一个值与多值比较,而比较符则用于一个值与另一个值之间的比较。当比较符后面的值需要通过查询才能得到时,就需要使用比较符嵌套查询。【例4-21】求C1课程的成绩高于张三的学生学号和成绩。(3)使用ANY或ALL操作符的嵌套
16、查询。表4-9 ANY和ALL与比较符结合的操作符及其语意表 【例4-22】求其他系中比计算机系某一学生年龄小的学生(即求年龄小于计算机系年龄最大者的学生)。【例4-23】求其他系中比计算机系学生年龄都小的学生。(4)使用EXISTS操作符的嵌套查询。【例4-24】求选修了C2课程的学生姓名。【例4-25】求没有选修C2课程的学生姓名。【例4-26】查询选修了全部课程的学生的姓名。【例4-27】求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。4.组合查询 将SELECT语句的查询结果集再进行集合运算就构成了SQL的组合查询。SQL的组合查询操作符有UNION(并操作)、INT
展开阅读全文