第三章关系数据库标准语 言S QL

上传人:w****i 文档编号:91051548 上传时间:2019-06-21 格式:PPT 页数:111 大小:1.69MB
返回 下载 相关 举报
第三章关系数据库标准语 言S QL_第1页
第1页 / 共111页
第三章关系数据库标准语 言S QL_第2页
第2页 / 共111页
第三章关系数据库标准语 言S QL_第3页
第3页 / 共111页
第三章关系数据库标准语 言S QL_第4页
第4页 / 共111页
第三章关系数据库标准语 言S QL_第5页
第5页 / 共111页
点击查看更多>>
资源描述

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

1、3.1 SQL的特征,3.2 SQL的数据定义,3.3 SQL的数据查询,3.4 SQL的数据更新,第三章 关系数据库标准语言SQL,本章小结,第三章 关系数据库标准语言SQL,3.6 嵌入式 SQL (自学),3.7 动态 SQL (自学),本章小结,3.8 ODBC与JDBC (自学),3.5 SQL的数据控制(自学),第三章 关系数据库语言SQL,3.1 SQL的特征 1. SQL的主要标准 SQL-86 SQL-89 SQL-92(SQL2) SQL-99(SQL3),SQL-86。SQL的第一个标准是1986年10月由美国国家标准化组织(ANSI)公布的。 SQL-89。ANSI以后

2、通过对SQL-86的不断修改和完善,于1989年第二次公布了SQL标准,即SQL-89,该标准增强了完整性的语言特征。 SQL-92(SQL2)。1992年又公布了SQL-92标准,该标准增加了支持对远程数据库的访问,扩充了数据类型、操作类型、动态SQL等许多新的特征。 SQL-99(SQL3)。完成于1999年的SQL-99修订本具有更高级的特征。引入了支持对象-关系DBMS模型的SQL,扩展了对象、递归、触发等许多新的特征,支持用户自定义函数、自定义数据类型。,2. SQL的功能特点 功能: 数据定义 数据查询 数据操纵 数据控制,第三章 关系数据库语言SQL,特点: 综合统一 非关系模型

3、的数据语言不同模式有不同的数据定义语言及数据操纵语言。SQL语言则集数据定义、操纵和控制功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境,例如用户在数据库投入运行后,还可根据需要随时地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩充性。,第三章 关系数据库语言SQL,高度非过程化 非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而用SQL语言进行数据操作,用户只需提出“做什么”,而不必

4、指明“怎么做”,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。,第三章 关系数据库语言SQL,灵活的使用方式 SQL语言既是自含式语言,又是嵌入式语言。 作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的作法,为用户提供了极大

5、的灵活性与方便性。,第三章 关系数据库语言SQL,简洁、通用、功能强 SQL语言功能极强,设计巧妙,语言简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词,如表3-1所示。而且SQL语言语法简单,接近英语口语,因此容易学习,容易使用。,3.1 SQL的特征,3. SQL的基本组成 (1)SQL数据库层次结构,术语对照: 一般关系模型 SQL 外模式-视图(VIEW) 模式-基本表(TABLE) 内模式-存储文件(索引) 元组-行(ROW) 属性-列(COLUMN),3.1 SQL的特征,基本表是本身独立存在的表,在SQL中一个关系就对应一个表。一些基本表对应一个存储文件,一个表可以

6、带若干索引,索引也存放在存储文件中。 存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理文件结构是任意的。 视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。 用户可以用SQL语言对视图和基本表进行查询。在用户眼中,视图和基本表都是关系,而存储文件对用户是透明的。,3.2 SQL的数据定义,1. SQL模式的定义与撤销 (1)SQL模式的定义 CREATE SCHEMA 模式名 AUTHRIZATION 用户名 CREATE DOMAIN子句|CREATE TA

7、BLE子句|CREATE VIEW | 例;CREATE SCHEMA Teaching_db AUTHRIZATION Hang; (2)数据库模式的删除 DROP SCHEMA 模式名 CASCADE | RESTRICT CASCADE(级联式) : RESTRICT(约束式):,3.2 SQL的数据定义,2. 表的建立和删除 (1)表的建立 命令格式: CREATE TABLE ( 列级完整性约束条件 , 列级完整性约束条件.) ,; 例:CREATE TABLE Student ( sno CHAR(5) NOT NULL UNIQUE, sname CHAR(20) NOT NUL

8、L , sex CHAR(1), age INT , dept CHAR(15) );,主码,3.2 SQL的数据定义,完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可定义在列级,也可以定义在表级。,注意:,例:定义三个表结构,并指定相应的数据完整性约束条件。,分析,外码:sno,cno,主码:sno,姓名:非空,性别:男、女两值,Student表:,Course表:,主码:cno,课程名:非空,外码:pcno,SC表:,主码:(sno,cno),成绩:0100,3.2 SQL的数据定义,CREATE TABLE Student ( sno CHAR (5), sname C

9、HAR (8) NOT NULL, sex CHAR (2), age SMALLINT, dept CHAR (20), PRIMARY KEY(sno), CHECK sex IN (男,女) );,列级完整性约束条件,实体完整性约束条件,用户自定义完整性约束条件,3.2 SQL的数据定义,CREATE TABLE Course ( cno CHAR (4), cname CHAR (10) NOT NULL, pcno CHAR (4), credit SMALLINT, PRIMARY KEY (cno), FOREIGN KEY (pcno) REFERENCES Course(cn

10、o) );,参照完整性约束条件,3.2 SQL的数据定义,CREATE TABLE SC ( sno CHAR (5), cno CHAR (4) , grade SMALLINT, PRIMARY KEY (sno,cno), FOREIGN KEY (sno)REFERENCES Student(sno), FOREIGN KEY (cno)REFERENCES Course(cno), CHECK (grade IS NULL) OR (grade BETWEEN 0 AND 100) );,3.2 SQL的数据定义,(2)表的删除 格式:DROP TABLE CASCADE | RES

11、TRICT 基本表定义一旦删除,表中的数据、在此表上建立的视图、索引、触发器、断言都将自动被删除掉。RESTRICT确保只有不具有相关对象的表才能被撤销。 例:DROP TABLE Student CASCADE;,3.2 SQL的数据定义,3.基本表的扩充和修改 一般格式为: ALTER TABLE ADD 完整性约束DROP MODIFY ; 其中指定需要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件,MODIFY子句用于修改原有的列定义。 (1)在现存表中增加新列 格式:ALTER TABLE ADD ( , ),3.2 SQL的数据定

12、义,(2)删除已存在的某个列 格式:ALTER TABLE DROP CASCADE | RESTRICT 例:ALTER TABLE Student DROP addr; (3)修改原有列的类型 格式:ALTER TABLE MODIFY ; 例:ALTER TABLE Student MODIFY place CHAR(8);,3.2 SQL的数据定义,(4)补充定义主码 格式:ALTER TABLE ADD PRIMARY KEY ( ),(5)删除主码 格式:ALTER TABLE DROP PRIMARY KEY,3.2 SQL的数据定义,修改基本表实例 例 向Student表增加“

13、入学时间”列,其数据类型为日期型 ALTER TABLE Student ADD Scome DATE; 例 将年龄的数据类型改为半字长整数 ALTER TABLE Student MODIFY Sage SMALLINT; 例 删除关于学号必须取唯一值的约束 ALTER TABLE Student DROP UNIQUE(Sno);,3.2 SQL的数据定义,4.索引的建立与删除 建立索引的目的:基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。 命令格式: CREATE UNIQUE CLUSTER INDEX ON ( ,); 次序: 升序(ASC,缺省) 降序 (DESC)

14、 UNIQUE: 每一个索引值只对应惟一的数据记录。 CLUSTER: 建立聚簇索引,即索引项的顺序与表中记录的物理顺序一致。,3.2 SQL的数据定义,注意:在一个基本表上最多只能建立一个聚簇索引。 经常更新的列不宜建立聚簇索引。 所建索引放何处? 例: 为Student表按学号升序建惟一聚簇索引。 为SC表按学号升序和课程号降序建惟一索引。 CREATE UNIQUE CLUSTER INDEX Stno ON Student(Sno); CREATE UNIQUE INDEX Scno ON SC(Sno ,Cno DESC); 删除索引一般格式为: DROP INDEX; 例: DRO

15、P INDEX Stno ; 删除索引时,系统会同时从数据字典中 删去有关该索引的描述。,3.3 SQL的数据查询,一般形式: SELECT FROM WHERE GROUP BY HAVING ORDER BY ASC|DESC;,基本语句含义: 根据WHERE中的F,从基表或视图R中找出满足条件的元组,再从中选出目标属性值形成结果表。,查询目标,数据来源,选择元组的条件,将结果按的值进行分组,满足条件的组才予输出,按排序查询结果,3.3 SQL的数据查询,如果有GROUP子句,则将结果按的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录。通常在成组后再使用集函数。 如

16、果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。 如果有ORDER子句,则结果表还要按的值的升序或降序排序。,3.3 SQL的数据查询,其中:表示其中的成分为任选项。 :表示其中的成分由用户具体给定。 |: 表示其中并列的成分只能择一。 查询目标: ALL:表示保留满足条件的所有元组(缺省)。 DISTINCT:表示去掉重复元组。 目标列:可以为属性名、表达式、通配符*(表示所有属性列)。,3.3 SQL的数据查询单表查询,学生-课程数据库: Student(sno,sname,sex,age,dept) Course(cno,cname,pcno,credit) SC(sno,cno,grade) 3.3.1 单表查询 一、选择表中的列 例 :查询所有学生的姓名、学号、所在系。,SELECT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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