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