第7讲SQL概述及定义_第1页
第7讲SQL概述及定义_第2页
第7讲SQL概述及定义_第3页
第7讲SQL概述及定义_第4页
第7讲SQL概述及定义_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 关 系 数 据 库 标准语言SQL SQLSQL语言概述与定义语言概述与定义第第7讲讲 SQL语言概述与定义语言概述与定义SQL语言概述SQL中的数据定义SQL中的数据查询SQL中的数据更新SQL中的视图SQL中的授权控制本章内容第第7讲讲 SQL语言概述与定义语言概述与定义SQL标准及其发展称为“一场革命”SQL是在是在1974年由年由Boyce和和Chamberlin提出,并在提出,并在 IBM公司研制的关系公司研制的关系DBMS原型系统原型系统System R上实现。上实现。SEQUEL(Structured English Query Language)。)。1981年年SQL

2、(Structured Query Language)取代了)取代了SEQUEL。1986年年10月,月,ANSI的数据库委员会批准了的数据库委员会批准了SQL作为关作为关系数据库语言的美国标准。同年公布了系数据库语言的美国标准。同年公布了SQL的标准文本的标准文本(简称(简称SQL-86)。)。1987年年ISO也通过了该标准。并陆续公布也通过了该标准。并陆续公布SQL89、SQL92(SQL2)、)、SQL99(SQL3)、)、SQL2003等。等。4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与定义SQL标准开发开发SQL标准的委员会被定义为标准的委员会被定义为ISO/I

3、EC JTC 1/SC 32(数据管理和交换)(数据管理和交换)/WG 3(数据库语言)。(数据库语言)。 (Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange,workgroup 3) 1986年,年,ANSI X3.135-1986,ISO/IEC 9075:1986,SQL-86 1989年,年,ANSI X3.135-1989,ISO/IEC 9075:1989,SQL-89 1992年,年,ANSI X3

4、.135-1992, ISO/IEC 9075:1992,SQL-92(SQL2) 1999年,年,ISO/IEC 9075:1999, SQL:1999(SQL3)2003年,年,ISO/IEC 9075:2003, SQL:2003(SQL4) 4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与定义SQL标准的进展过程SQL/86和和SQL/89都是单个文本。都是单个文本。SQL/92(SQL2)和)和SQL/99(SQL3)扩展了一系列)扩展了一系列开放的部分。开放的部分。SQL2增加了增加了SQL调用接口、调用接口、SQL永久存储模块永久存储模块支持对远程数据库的访问,扩

5、充了数据类型、操作类型、支持对远程数据库的访问,扩充了数据类型、操作类型、完整性控制等方面的内容。完整性控制等方面的内容。SQL3进一步扩展为框架、进一步扩展为框架、SQL基本部分、基本部分、SQL调用接口、调用接口、SQL永久存储模块、永久存储模块、SQL宿主语言绑定、宿主语言绑定、SQL外部数据的管外部数据的管理和理和SQL对象语言绑定等多个部分。对象语言绑定等多个部分。在在SQL2的基础上扩展了诸如递归、触发、对象等许多新的基础上扩展了诸如递归、触发、对象等许多新的特性,并支持自定义数据类型。的特性,并支持自定义数据类型。SQL2003增加了对增加了对XML的支持。的支持。4.1 SQL

6、语言概述第第7讲讲 SQL语言概述与定义语言概述与定义SQL是所有数据库的公共语言 SQLSQL从开始的比较简单的数据库语言,逐从开始的比较简单的数据库语言,逐步发展成为功能较为齐全、内容较为复步发展成为功能较为齐全、内容较为复杂的数据库语言,杂的数据库语言,SQLSQL成为各种机型,各成为各种机型,各种数据库系统共同的数据存取语言和标种数据库系统共同的数据存取语言和标准接口。准接口。 现在所有的现在所有的RDBMSRDBMS产品都支持产品都支持SQLSQL,其他,其他模型的模型的DBMSDBMS也都有相应的也都有相应的SQLSQL接口,所以接口,所以用用SQLSQL编写的程序是可移植的。编写

7、的程序是可移植的。4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与定义SQL的特点 SQL支持三级模式结构支持三级模式结构 SQL可定义数据库系统的三级模式结构可定义数据库系统的三级模式结构 所有基本表构成了数据库的模式所有基本表构成了数据库的模式 视图和部分基表构成了数据库的外模式视图和部分基表构成了数据库的外模式 存储文件的逻辑结构(包括表的索引文件)构存储文件的逻辑结构(包括表的索引文件)构成了关系数据库的内模式成了关系数据库的内模式4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与定义4.1 SQL语言概述SQL用户视图1。基表1存储文件索引文件1视图2基

8、表2基表3基表4存储文件索引文件2存储文件索引文件3存储文件索引文件4。外模式模式内模式SQL语言提供了使用语言提供了使用DB的接口的接口SQL的特点 SQL支持三级模式结构支持三级模式结构第第7讲讲 SQL语言概述与定义语言概述与定义SQL的特点 语言功能强语言功能强 SQL语言具有关系代数和关系演算语言的语言具有关系代数和关系演算语言的特点,它具有查询、更新、定义和控制等功特点,它具有查询、更新、定义和控制等功能,是一个综合的、通用的、功能极强的关能,是一个综合的、通用的、功能极强的关系数据库语言,可实现数据库生命期中的全系数据库语言,可实现数据库生命期中的全部活动。部活动。4.1 SQL

9、语言概述第第7讲讲 SQL语言概述与定义语言概述与定义SQL的特点 语言功能强语言功能强数据定义语言(数据定义语言(Data Definition Language,DDL) 定义、撤消和修改数据模式定义、撤消和修改数据模式数据操纵语言(数据操纵语言(Data Manipulation Language,DML) 数据查询数据查询 数据更新数据更新数据控制语言(数据控制语言(Data Control Language,DCL) 用于对数据访问权限的控制、完整性描述、事务用于对数据访问权限的控制、完整性描述、事务 控制等。控制等。 4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与

10、定义SQL的特点 用户性能好用户性能好 SQL语言接近英语自然语言,简单易学,语言接近英语自然语言,简单易学,是一种用户性能非常好的语言。是一种用户性能非常好的语言。 核心功能的语句只用了核心功能的语句只用了9个动词。语法也比个动词。语法也比较简单。较简单。4.1 SQL语言概述SQL功能功能 动词动词数据查询数据查询 数据定义数据定义数据更新数据更新数据控制数据控制SELECTCREATE, DROP, ALTERINSERT, UPDATE, DELETEGRANT, REVOKE 第第7讲讲 SQL语言概述与定义语言概述与定义SQL的特点 两种用户使用方式两种用户使用方式 SQL既是独立

11、的语言,又是嵌入式语言既是独立的语言,又是嵌入式语言 联机的交互方式联机的交互方式 嵌入到其他高级语言程序中(嵌入到其他高级语言程序中(EXEC SQL) 在两种不同的使用方式下,在两种不同的使用方式下,SQL的语法结的语法结构基本上是一致的。构基本上是一致的。4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与定义SQL的特点 高度非过程化高度非过程化 用户只需提出用户只需提出“做什么做什么”,而不必提出,而不必提出“怎怎么做么做”,无需了解存取路径。,无需了解存取路径。 SQL语句操作的过程全由系统自动完成。语句操作的过程全由系统自动完成。有利于提高数据独立性。有利于提高数据独

12、立性。 4.1 SQL语言概述第第7讲讲 SQL语言概述与定义语言概述与定义小结 SQL语言的特点 语言功能语言功能 支持三级模式结构支持三级模式结构 定义、操纵、控制功能定义、操纵、控制功能 用户性能用户性能 语法简单语法简单 非过程性非过程性 使用方式使用方式第第7讲讲 SQL语言概述与定义语言概述与定义SQL语言概述SQL中的数据定义SQL中的数据查询SQL中的数据更新SQL中的视图SQL中的授权控制本章内容第第7讲讲 SQL语言概述与定义语言概述与定义SQL支持三级模式结构的定义 基本表、索引和视图基本表、索引和视图 表、表、索引索引和和视图视图的创建、删除的创建、删除 表的修改表的修

13、改 与表有关的完整性约束的定义与表有关的完整性约束的定义4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 一般格式为一般格式为 CREATE TABLE ( 列级完整性约束条件列级完整性约束条件 , 列级完整性约束条件列级完整性约束条件. , );4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义语句格式约定符号 尖括号尖括号“”中为实际语义;中为实际语义; 小括号小括号“()()”中的内容为必选项;中的内容为必选项; 中括号中括号“ ”中的内容为任选项;中的内容为任选项; “| |” 为选项符;为选项符; ,nn表示前面的项可重复多次

14、。表示前面的项可重复多次。4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义一般语法规定 SQL中中的数据项(包括列项、表和视图)分隔的数据项(包括列项、表和视图)分隔符为符为“,” 其字符串常数的定界符用单引号其字符串常数的定界符用单引号“ ”表示表示 SQL的关键字一般使用大写字母表示的关键字一般使用大写字母表示 SQL语句的结束符为语句的结束符为“;” SQL语句一般应采用格式化书写格式语句一般应采用格式化书写格式 系统实现时均应采用西文字符系统实现时均应采用西文字符 4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 一般格式为一

15、般格式为 CREATE TABLE ( 列级完整性约束条件列级完整性约束条件 , 列级完整性约束条件列级完整性约束条件.) ,;4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义4.2 SQL的数据定义 SQL支持的数据类型支持的数据类型 类型名类型名 类型类型 说明说明 INTEGER 数值型数值型 长整数(也可长整数(也可写成写成INT) SMALLINT 数值型数值型 短整数短整数 REAL 数值型数值型 浮点数浮点数 DOUBLE PRECISION 数值型数值型 双精度浮点数双精度浮点数 FLOAT (n) 数值型数值型 浮点数,精度至少为浮点数,精度至少为n

16、n位数字位数字 NUMERIC(p,q) 或或DECIMAL(p,q) 数值型数值型 定点数,有定点数,有p p位数字(不包括符号、小数点)位数字(不包括符号、小数点),小数点后面有,小数点后面有d d位数字。位数字。 CHAR (n) 字符串型字符串型 长度为长度为n的定长的定长字符串字符串 VARCHAR(n) 字符串型字符串型 具有最大长度为具有最大长度为n的变长的变长字符串字符串 BIT (n) 位串型位串型 长度长度为为n的二进制位的二进制位串串 BIT VARYING(n) 位串型位串型 最大长度为最大长度为n n的变长二进制位串的变长二进制位串 DATE 时间型时间型 日期,年日

17、期,年- -月月- - 日,形日,形为为YYYY- MM- DD TIME 时间型时间型 时间,时:分:秒,时间,时:分:秒,形为形为HH:MM:SS 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 完整性约束条件完整性约束条件 完整性约束条件是针对属性值设置的限制条完整性约束条件是针对属性值设置的限制条件。件。 列级约束条件只涉及一个列,表级的约束条列级约束条件只涉及一个列,表级的约束条件涉及到多列属性,。件涉及到多列属性,。 4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 完整性约束条件完整性约束条件 可实现关系的实体完整性、参照完整性和用

18、可实现关系的实体完整性、参照完整性和用户自定义完整性的定义。户自定义完整性的定义。 定义的完整性约束条件被存入系统的数据字定义的完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由典中,当用户操作表中数据时由DBMS自动自动检查该操作是否违背这些完整性约束条件。检查该操作是否违背这些完整性约束条件。4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 完整性约束条件完整性约束条件 实体完整性实体完整性PRIMARY KEY CLUSTERED()4.2 SQL的数据定义 定义主键,保证主键定义主键,保证主键的唯一性和非空性的唯一性和非空性 主键由多属性构

19、成,应定义为表级约束条件。主键由多属性构成,应定义为表级约束条件。使用使用CLUSTERED选项可以建立选项可以建立上的聚集索引。上的聚集索引。 在基本表中插入记录或者对主键进行更新操作时,在基本表中插入记录或者对主键进行更新操作时,RDBMS将按照实体完整性规则自动检查。将按照实体完整性规则自动检查。 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 完整性约束条件完整性约束条件 参照完整性参照完整性FOREIGN KEY()REFERENCES () 4.2 SQL的数据定义 将两个表中的相应元将两个表中的相应元组联系起来,是两个组联系起来,是两个关系表间联系的体现关系表间联系的

20、体现 对被参照表和参照表进行更新操作时有可能破坏参照完对被参照表和参照表进行更新操作时有可能破坏参照完整性,必须进行完整性检查。整性,必须进行完整性检查。 DBMS采取相应策略加以处理,拒绝执行或产生一些相采取相应策略加以处理,拒绝执行或产生一些相关的级联操作等,以保证完整性的实现。关的级联操作等,以保证完整性的实现。第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 完整性约束条件完整性约束条件 参照完整性参照完整性FOREIGN KEY()REFERENCES () 4.2 SQL的数据定义 ON DELETE CASCADE | NO ACTION : 当删除被参照表的主键时,参

21、照表中的外键产生级联操作或拒绝执行。当删除被参照表的主键时,参照表中的外键产生级联操作或拒绝执行。 ON UPDATE CASCADE | NO ACTION : 当修改被参照表的主键时,参照表中的外键产生级联操作或拒绝执行。当修改被参照表的主键时,参照表中的外键产生级联操作或拒绝执行。第第7讲讲 SQL语言概述与定义语言概述与定义基本表的定义 完整性约束条件完整性约束条件实体完整性实体完整性NOT NULL或或NULL约束约束 允许属性值是否为空,默认为允许属性值是否为空,默认为“NULL”,对关系的主属性,对关系的主属性必须限定为必须限定为“NOT NULL”,以满足实体完整性。,以满足实

22、体完整性。UNIQUE约束约束 惟一性约束,即不允许列中出现重复的属性值。惟一性约束,即不允许列中出现重复的属性值。DEFAULT约束约束 默认值约束。默认值约束。CHECK 约束约束 检查约束,通过约束条件表达式设置列值应满足的条件。检查约束,通过约束条件表达式设置列值应满足的条件。4.2 SQL的数据定义 第第7讲讲 SQL语言概述与定义语言概述与定义 S(SNO,SN,SD,SB,SEX) C(CNO,CN,PC) SC(SNO,CNO,GRADE)4.2 SQL的数据定义 基本表的定义【例例】 “学生选课学生选课”数据库中的关系模式(表结构):数据库中的关系模式(表结构): 学生(学生

23、(学号学号,姓名,性别,姓名,性别,出生时间出生时间,所在系)所在系) 课程(课程(课程编号课程编号,课程名,课程名,先修课程号先修课程号) 选课(选课(学号,课程编号学号,课程编号,成绩),成绩)第第7讲讲 SQL语言概述与定义语言概述与定义CREATE TABLE S (SNO CHAR(6) , SN CHAR(10) NOT NULL , SD CHAR(16),), SB DATETIME, SEX CHAR(2),), CHECK (SEX IN (男男,女女), PRIMARY KEY (SNO) );); 4.2 SQL的数据定义 关系S的定义第第7讲讲 SQL语言概述与定义语

24、言概述与定义CREATE TABLE C (CNO CHAR(6) PRIMARY KEY, CN CHAR(10),), PC CHAR(6),), FOREIGN KEY (PC) REFERENCES C(CNO) );); 4.2 SQL的数据定义 关系C的定义第第7讲讲 SQL语言概述与定义语言概述与定义CREATE TABLE SC (SNO CHAR(6) NOT NULL, CNO CHAR(6) NOT NULL, GRADE DEC(4,1)DEFAULT NULL, PRIMARY KEY (SNO,CNO),), FOREIGN KEY (SNO) REFERENCES

25、 S(SNO),), FOREIGN KEY (CNO) REFERENCES C(CNO),), CHECK (GRADE BETWEEN 0.0 AND 100.0) );); 4.2 SQL的数据定义 关系SC的定义第第7讲讲 SQL语言概述与定义语言概述与定义基本表的修改 增加列或表约束规则增加列或表约束规则 ALTER TABLE. ADD 完整性约束完整性约束|;4.2 SQL的数据定义 【例例】要在学生表要在学生表S中加入一列中加入一列SH表示学生的籍贯表示学生的籍贯: : ALTER TABLE S ADD SH CHAR(30);); 补充定义主键补充定义主键: : ALTER TABLE S ADD PRIMERY KEY (SNO);); 第第7讲讲 SQL语言概述与定义语言概述与定义基本表的修改 删除原有的列或约束规则删除原有的列或约束规则 ALTER TABLE DROPCONSTRAINT | COLUMN CASCADE|RESTRICT;4.2 SQL的数据定义 【例例】在在基表基表S中删除学生的性别一列,并将引用性别的中删除学生的性别一列,并将引用性别的所有视图和约束也一起所有视图和约束也一起删除。删除。 ALTER TABLE S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论