第3章关系数据库标准语言sql

上传人:小** 文档编号:55071684 上传时间:2018-09-24 格式:PPT 页数:160 大小:2.36MB
返回 下载 相关 举报
第3章关系数据库标准语言sql_第1页
第1页 / 共160页
第3章关系数据库标准语言sql_第2页
第2页 / 共160页
第3章关系数据库标准语言sql_第3页
第3页 / 共160页
第3章关系数据库标准语言sql_第4页
第4页 / 共160页
第3章关系数据库标准语言sql_第5页
第5页 / 共160页
点击查看更多>>
资源描述

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

1、数据库系统概论,第3章 关系数据库标准语言SQL,熟练正确的使用SQL完成对数据库的查询、插入、删除、更新操作。用SQL语言正确完成复杂查询,掌握SQL语言强大的查询功能。,教学内容,牢固掌握SQL,达到举一反三的掌握SQL的功能。同时通过实践,体会面向过程的语言和SQL的区别和优点。体会关系数据库系统为数据库应用系统的开发提供良好环境,减轻用户负担,提高用户生产率的原因。,教学目标,3 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生 - 课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 空值的处理 3.7 视图 3.8 小结,3.1 SQL概述,SQL语言

2、集数据查询、数据操纵、数据定义和数据控制功能于一体,充分体现了关系数据库语言的特点和优点。其主要特点包括:,3.1.2 SQL特点,1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4. 以同一种语法结构提供多种使用方法 5. 语言简洁,易学易用,3.1 SQL概述,另外,在关系模型中,实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作符。,1. 综合统一,SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。,3.1 SQ

3、L概述,2. 高度非过程化,用SQL语言进行数据库操作时,用户只需提出“做什么”,而不必指明“怎么做”。因此,用户无需了解数据存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。,3.1 SQL概述,3. 面向集合的操作方式,而SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。,非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。,3.1 SQL概述,4. 以同一种语法结构提供多种使用方法,作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C,C#,

4、JAVA等)程序中,供程序员设计程序时使用。,作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;,3.1 SQL概述,5. 语言简洁,易学易用,SQL语言功能极强,由于设计巧妙,语言十分简洁,完成核心功能只用了9个动词,如表所示:,表3.2 SQL的动词,3.1 SQL概述,3.1.3 SQL的基本概念,SQL对关系数据库模式的支持,基本表是本身独立存在的表;一个或多个基本表对应一个存储文件,一个基本表可以带若干索引,索引也存放在存储文件中。,存储文件的逻辑结构组成了关系数据库的内模式;存储文件的物理结构是任意的,对用户是透明的。,视图

5、是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。,3.2 学生 - 课程数据库,定义一个学生-课程模式S-T,学生-课程数据库中包含3张表:,学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Cpno,Ccredit),学生选课表:SC(Sno,Cno,Grade),3.3 数据定义,SQL语言支持数据库三级模式结构,内模式中的基本对象:,外模式中的基本对

6、象:,模式中的基本对象:,表,视图,索引,3.3 数据定义,3.3.1 模式的定义与删除,1. 定义模式,CREATE SCHEMA AUTHORIZATION ,SQL语言使用CREATE SCHEMA语句创建模式,其一般格式为:,要创建模式,调用该命令的用户必须拥有DBA权限,或者获得了DBA授予的CREATE SCHEMA的权限。,3.3 数据定义,例3.1,为用户WANG定义一个学生-课程模式S-T,CREATE SCHEMA “S-T” AUTHORIZATION WANG,例3.2,CREATE SCHEMA AUTHORIZATION WANG,3.3 数据定义,2. 删除模式,

7、SQL中删除模式的语句:,DROP SCHEMA ,例3.4,DROP SCHEMA ZHANG CASCADE;,3.3 数据定义,3.3.2 基本表的定义、删除与修改,1. 定义基本表,SQL语言使用CREATE TABLE语句创建基本表,其一般格式为:,CREATE TABLE ( , , ); :所要定义的基本表的名字 :组成该表的各个属性(列) :涉及相应属性列的完整性约束条件 :涉及一个或多个属性列的完整性约束条件,3.3 数据定义,例题:建立一个职工表emp,它由职工号eno、姓名ename、性别sex、年龄age、部门dept五个属性组成,其中职工号不能为空且取值惟一。,CRE

8、ATE TABLE emp(eno CHAR(5) NOT NULL UNIQUE,ename CHAR(8),sex CHAR(1),age INT,dept CHAR(16);,执行上面的CREATE TABLE语句后,就在数据库中建立了一个新的空的职工表emp,并将有关职工表的定义及有关约束条件存放在数据字典中。,3.3 数据定义,常用完整性约束主码约束:PRIMARY KEY唯一性约束:UNIQUE非空值约束:NOT NULL参照完整性约束,PRIMARY KEY与 UNIQUE的区别?,3.3 数据定义,例3.7 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Gr

9、ade组成,其中(Sno, Cno)为主码。CREATE TABLE SC(Sno CHAR(5), Cno CHAR(3) ,Grade int,Primary key (Sno, Cno);,表级完整性约束条件的例子:,3.3 数据定义,2. 数据类型,在SQL中域的概念用数据类型来实现。定义表的各个属性时需要指明其数据类型及长度。,注意:不同的RDBMS中支持数据类型不完全相同。,一个属性选用哪种数据类型要根据实际情况来决定, 一般要从两个方面来考虑:一是取值范围,二是要做哪些运算。,P83 表3.4 数据类型,3.3 数据定义,3. 模式与表,模式与表的对应关系是1:n,定义表时如何处

10、理 它所属的模式存在三种方法:,方法一、在表名中明显地给出模式名;,方法二、在创建模式语句中同时创建表;,方法三、设置所属的模式,在创建表时 表名不必给出模式名;,3.3 数据定义,4. 修改基本表,SQL语言用ALTER TABLE语句修改基本 表,其一般格式为,ALTER TABLE ADD 完整性约束 DROP MODIFY ; :要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 MODIFY子句:用于修改列名和数据类型,3.3 数据定义,例3.8 向Student表增加“入学时间”列, 其数据类型为日期型。ALTER TABLE Stud

11、ent ADD Scome DATE;,例 将年龄的数据类型改为半字长整数。 ALTER TABLE Student ALTER COLUMN Sage SMALLINT;注:修改原有的列定义有可能会破坏已有数据,例 删除学生姓名必须取唯一值的约束。 ALTER TABLE Student DROP UNIQUE(Sname);,3.3 数据定义,5. 删除基本表,当某个基本表不再需要时,可以使用SQL语句 DROP TABLE进行删除,其一般格式为:,DROP TABLE RESTRICT|CASCADE;,基本表删除 数据、表上的索引都删除表上 的视图往往仍然保留,但无法引用。删除基本表时

12、,系统会从数据字典中删去有 关该基本表及其索引的描述。,3.3 数据定义,例3.11 删除Student表DROP TABLE Student CASCADE;,基本表一旦被删除,表中的数据和在此表 上建立的索引都将自动被删除掉,而建立在此 表上的视图虽仍然保留,但已无法引用。因 此,执行删除基本表操作一定要格外小心。,3.3 数据定义,3.3.3 索引的建立与删除,一般说来,建立与删除索引由数据库管理员DBA或表的属主(即建立表的人)负责完成。系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能选择索引。,建立索引是加快表的查询速度的有效手段。,3.3 数据定义,1. 建立索引,

13、语句格式 CREATE UNIQUE CLUSTER INDEX ON (, ); 用指定要建索引的基本表名字 索引可以建立在该表的一列或多列上,各列名之间用逗号分隔 用指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC UNIQUE表明此索引的每一个索引值只对应唯一的数据记录 CLUSTER表示要建立的索引是聚簇索引,3.3 数据定义,在一个基本表上最多只能建立一个聚簇索引 聚簇索引的用途:对于某些类型的查询,可以提高查询效率 聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长列进行修改操作,例3.13为学生-课程数据库中的Student,Course,SC三个表建立索

14、引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);,3.3 数据定义,2. 修改索引,在SQL语言中,修改索引使用ALTER INDEX语句,其一般格式为:ALTER INDEX RENAME TO ;,例3.14 将SC表的SCno索引名改为SCSno

15、。ALTER INDEX SCno RENAME TO SCSno;,3.3 数据定义,3. 删除索引,建立索引是为了减少查询操作的时间,但如果数据增、删、改频繁,系统会花费许多时间来维护索引。这时,可以删除一些不必要的索引。在SQL语言中,删除索引使用DROP INDEX语句,其一般格式为:DROP INDEX ,例3.15 删除Student表上的Stusname索引。DROP INDEX Student;删除索引时,系统会同时从数据字典中删去有关该索引的描述。,3.3 数据定义,3.3.4 数据字典,数据字典最重要的作用是作为分析阶段的工具。在结构化分析中,数据字典的作用是给数据流图上每

16、个成分加以定义和说明,数据字典中严密一致的定义有助于改进分析员和用户的通信。在查询优化和查询处理时,数据字典中的信息是重要的依据。,3.4 数据查询,语句格式: SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;,3.4 数据查询,SELECT子句:指定要显示的属性列 FROM子句:指定查询对象(基本表或视图) WHERE子句:指定查询条件 GROUP BY子句:对查询结果按指定列的值分 组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。 HAVING短语:筛选出只有满足指定条件的组 ORDER BY子句:对查询结果表按指定列值的升序或降序排序,

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

最新文档


当前位置:首页 > 商业/管理/HR > 宣传企划

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