ImageVerifierCode 换一换
格式:PPT , 页数:190 ,大小:395.50KB ,
文档编号:5657105      下载积分:16 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5657105.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(hwpkd79526)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(db-chapter03关系数据库标准语言.ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

db-chapter03关系数据库标准语言.ppt

1、普通高等教育十五规划教材普通高等教育十五规划教材数据库系统概论数据库系统概论主讲:张中军主讲:张中军ftp:/122.206.151.225 用户名:用户名:s_zzj 密码:空密码:空第第3章章 关系数据库标准语言关系数据库标准语言SQL第第3章章 关系数据库标准语言关系数据库标准语言SQLn3.1 引言引言n3.2 数据定义数据定义n3.3 数据查询数据查询n3.4 数据更新数据更新n3.5 视图视图3.1 引言引言引言引言nSQL(Structured Query Language)结构化查询语结构化查询语言言,是关系数据库的,是关系数据库的标准语言标准语言nSQL是一个通用的、功能极强

2、的关系数据库语言是一个通用的、功能极强的关系数据库语言背景背景nSQL语言最早称为语言最早称为Sequel,是,是Boyce和和Chamberlin1974年提出的。年提出的。nSequel不断发展,并更名为不断发展,并更名为SQL由于由于SQLn1974年在年在IBM公司的公司的System R上实现。上实现。n1986年被美国国家标准局(年被美国国家标准局(ANSI)批准为关系数据库语言的美国标准。)批准为关系数据库语言的美国标准。n1987年国际标准化组织(年国际标准化组织(ISO)通过这一标准)通过这一标准n自自SQL-92以来,以来,SQL标准的规模开始变大(标准的规模开始变大(SQ

3、L-89标准大约标准大约120页,页,SQL-92标准超过标准超过620页,而页,而SQL-99标准多达标准多达1700页)。页)。n目前,大多数商品化目前,大多数商品化DBMS支持支持SQL-92主要部分(初级标准和部分中、主要部分(初级标准和部分中、高级的标准),并在其他方面有一些扩展。高级的标准),并在其他方面有一些扩展。nSQL-99扩充太快,过于庞大,扩充太快,过于庞大,DBMS开发商对实现开发商对实现SQL-99似乎不太积似乎不太积极。极。背景背景标准标准 大致页数大致页数 发布日期发布日期nSQL/86 1986.10nSQL/89(FIPS 127-1)120页页 1989年年

4、nSQL/92 622页页 1992年年nSQL99 1700页页 1999年年nSQL2003 3600页页 2003年年SQL概述概述nSQL是一种完整的数据库语言,它提供是一种完整的数据库语言,它提供了丰富的功能了丰富的功能nSQL的使用方式的使用方式nSQL的表的类型的表的类型SQL概述概述(续续)nSQL的功能的功能nSQL的的数据定义语言数据定义语言(DDL)提供了模式定义、修改和)提供了模式定义、修改和删除,基本表定义、修改和删除、域定义修改和删除。删除,基本表定义、修改和删除、域定义修改和删除。nSQL的的数据操纵语言数据操纵语言(DML)提供了数据查询子语言。)提供了数据查询

5、子语言。SQL的数据查询子语言具有关系代数和关系演算的双重的数据查询子语言具有关系代数和关系演算的双重特征。特征。nSQL DML不仅包括数据查询,而且包括不仅包括数据查询,而且包括数据更新数据更新(数据(数据插入、删除和修改)语句,允许用户更新数据库。插入、删除和修改)语句,允许用户更新数据库。nSQL DDL还允许用户还允许用户定义视图定义视图,并且,并且SQL DML允许用允许用户对视图进行查询和受限的更新操作。户对视图进行查询和受限的更新操作。SQL概述概述(续续)nSQL的功能的功能(续续)nSQL DDL允许用户定义允许用户定义各种完整性约束条件各种完整性约束条件,并在数据,并在数

6、据库访问时库访问时自动检查自动检查,确保数据库操作不会破坏完整性约,确保数据库操作不会破坏完整性约束条件。束条件。nSQL DDL还包括还包括授权定义授权定义,用来定义用户对数据库对象,用来定义用户对数据库对象(基本表、视图等)的访问权限,防止非法访问,确保(基本表、视图等)的访问权限,防止非法访问,确保数据库的安全性。数据库的安全性。nSQL还还支持事务支持事务,提供了定义事务开始和结束的语句,提供了定义事务开始和结束的语句nSQL的使用方式的使用方式n独立使用独立使用n嵌入到通用程序设计语言中嵌入到通用程序设计语言中SQL概述概述(续续)nSQL的表的类型的表的类型n基本表(基本表(bas

7、e table)n 持久基本表持久基本表(persistent base table)n 全局临时表(全局临时表(global temporary table)n 局部临时表局部临时表(local temporary table)n导出表导出表 SQL的特点的特点nSQL的特点的特点n集多种数据库语言于一体集多种数据库语言于一体 n高度非过程化高度非过程化 n面向集合的操作方式面向集合的操作方式 n一种语法两种使用方式一种语法两种使用方式 n功能强大,语言简洁功能强大,语言简洁 SQL的特点的特点(续续)n1.集多种数据库语言于一体集多种数据库语言于一体(综合统一)(综合统一)n非关系模型的数

8、据语言一般分为:非关系模型的数据语言一般分为:n模式数据定义语言(模式模式数据定义语言(模式DDL)n外模式数据定义语言(外模式外模式数据定义语言(外模式DDL,子模式,子模式DDL)n数据存储有关的描述语言(数据存储有关的描述语言(DSDL)n数据操纵语言(数据操纵语言(DML)n当用户数据库投入运行后,如果要修改模式,必须停当用户数据库投入运行后,如果要修改模式,必须停止运行,转储数据,修改模式并编译后再重装数据库止运行,转储数据,修改模式并编译后再重装数据库SQL的特点的特点(续续)n1.集多种数据库语言于一体集多种数据库语言于一体(续续)nSQL语言集数据定义语言(语言集数据定义语言(

9、DDL),数据操纵语言),数据操纵语言(DML),数据控制语言(),数据控制语言(DCL)功能于一体。)功能于一体。n可以独立完成数据库生命周期中的全部活动可以独立完成数据库生命周期中的全部活动n定义关系模式,插入数据,建立数据库;定义关系模式,插入数据,建立数据库;n 对数据库中的数据进行查询和更新;对数据库中的数据进行查询和更新;n 数据库重构和维护数据库重构和维护n 数据库安全性、完整性控制等数据库安全性、完整性控制等n用户数据库投入运行后,可根据需要随时逐步修改模式,用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。不影响数据的运行。n数据操作符统一,查找、插入、删除

10、、更新等只需一种数据操作符统一,查找、插入、删除、更新等只需一种操作符操作符SQL的特点的特点(续续)n2.高度非过程化高度非过程化n非关系数据模型的数据操纵语言非关系数据模型的数据操纵语言“面向过程面向过程”,必须使,必须使用类似于指针的机制,指定存取路径用类似于指针的机制,指定存取路径nSQL只要提出只要提出“做什么做什么”,无须了解存取路径。,无须了解存取路径。n例如,使用例如,使用SQL语言表达查询时,用户只需要正确地语言表达查询时,用户只需要正确地表达需要哪些信息,这些信息在哪些关系中,结果元表达需要哪些信息,这些信息在哪些关系中,结果元组应当满足什么条件组应当满足什么条件 n系统将

11、考察多种执行方案,选择并运行一个最优的执行系统将考察多种执行方案,选择并运行一个最优的执行方案得到结果。方案得到结果。n大大减轻了用户负担大大减轻了用户负担n有利于提高数据的独立性有利于提高数据的独立性 SQL的特点的特点(续续)n3.面向集合的操作方式面向集合的操作方式n非关系数据模型采用面向记录的操作方式,操作非关系数据模型采用面向记录的操作方式,操作对象是一条记录对象是一条记录nSQL采用集合操作方式采用集合操作方式n 操作对象、查找结果可以是元组的集合操作对象、查找结果可以是元组的集合n 一次插入、删除、更新操作的对象可以是元一次插入、删除、更新操作的对象可以是元组的集合组的集合SQL

12、的特点的特点(续续)n4.一种语法两种使用方式一种语法两种使用方式 nSQL是独立的语言是独立的语言n能够独立地用于联机交互的使用方式能够独立地用于联机交互的使用方式nSQL又是嵌入式语言又是嵌入式语言n SQL能够嵌入到高级语言(例如能够嵌入到高级语言(例如C,C+,Java)程)程序中,供程序员设计程序时使用序中,供程序员设计程序时使用SQL的特点的特点(续续)n5.功能强大功能强大,语言简洁语言简洁nSQL是一种完整地数据库语言,其功能涵盖数据定义、是一种完整地数据库语言,其功能涵盖数据定义、数据操纵、数据控制等数据管理的主要需求。数据操纵、数据控制等数据管理的主要需求。n但但SQL语言

13、相对比较简洁,其核心动词只有语言相对比较简洁,其核心动词只有9个(个(p81)。)。nSQL 语言的语法简单,与英语口语的风格类似,易学易语言的语法简单,与英语口语的风格类似,易学易用。用。3.2 数据定义数据定义3.2 数据定义数据定义nSQL的数据定义语言的数据定义语言DDL包括定义模式、关系包括定义模式、关系(SQL称之为基本表)、视图、索引、授权等。称之为基本表)、视图、索引、授权等。n本节介绍如何定义基本表、索引和模式,本节介绍如何定义基本表、索引和模式,n3.6节将介绍如何定义和使用视图,节将介绍如何定义和使用视图,n授权定义将在后面章节讨论授权定义将在后面章节讨论SQL的数据类型

14、的数据类型nSQL支持许多内置的数据类型支持许多内置的数据类型n允许用户定义新的域(数据)类型。允许用户定义新的域(数据)类型。nSQL支持的数据类型包括支持的数据类型包括nCHARACTERnCHARACTER VARYINGnBITnBIT VARYINGnINTEGERnSMALLINTSQL的数据类型的数据类型(续续)nSQL支持的数据类型支持的数据类型nNUMERICnFLOATnREALnDOUBLE PRECISIONnDATETIMEnTIMESTAMPnINTERVALSQL的数据类型的数据类型(续续)nCHAR(n):定长字符串,长度:定长字符串,长度n由用户指定。省略由用

15、户指定。省略(n)时,时,长度为长度为1。CHAR的全称是的全称是CHARACTER。nVARCHAR(n):变长字符串,最大长度:变长字符串,最大长度n由用户指定。由用户指定。VARCHAR的全称是的全称是CHARACTER VARYINGn定长和变长字符串的差别主要表现在前者需要固定长度定长和变长字符串的差别主要表现在前者需要固定长度的空间,而后者占用的空间在最大长度范围内是可改变的空间,而后者占用的空间在最大长度范围内是可改变的。的。nBIT(n):定长二进位串,长度:定长二进位串,长度n由用户指定。省略由用户指定。省略(n)时,长时,长度为度为1。nBIT VARYING(n):变长二

16、进位串,最大长度:变长二进位串,最大长度n由用户指定。由用户指定。SQL的数据类型的数据类型(续续)nINT:整数,其值域依赖于具体实现。整数,其值域依赖于具体实现。INT的全称是的全称是INTEGER。nSMALLINT:小整数,其值域依赖于具体实现,但小于小整数,其值域依赖于具体实现,但小于INT的值域的值域nNUMERIC(p,d):p位有效数字的定点数,其中小数点右边位有效数字的定点数,其中小数点右边占占d位。位。nFLOAT(n):精度至少为:精度至少为n位数字的浮点数,其值域依赖于位数字的浮点数,其值域依赖于实现。实现。nREAL:实数,精度依赖于实现。:实数,精度依赖于实现。nD

17、OUBLE PRECISION:双精度实数,精度依赖于实现,:双精度实数,精度依赖于实现,但精度比但精度比REAL高。高。SQL的数据类型的数据类型(续续)nDATETIME:日期时间,包括年、月、日、时、分、秒,:日期时间,包括年、月、日、时、分、秒,格式为格式为YYYY-MM-DD hh-mm-ss。nTIMESTAMP:时间戳,是:时间戳,是DATE和和TIME的结合的结合nINTERVAL:时间间隔。:时间间隔。SQL允许对允许对DATE、TIME和和INTERVAL类型的值进行计算。类型的值进行计算。SQL的数据类型的数据类型(续续)nSQL提供提供DATEPART(field,Va

18、r),从,从DATETIME类型变量类型变量Var中提取字段中提取字段field。n对于对于DATETIME类型的变量,类型的变量,field可以是可以是YEAR、MONTH、DAY、HOUR、MINUTE、SECOND;n例如,如果例如,如果d是是DATETIME类型,则类型,则DATEPART(YEAR,d)返回返回d中的年份。中的年份。定义、修改和删除基本表定义、修改和删除基本表n说明说明:n本章,我们将本章,我们将“表表”和和“关系关系”视为同义词(尽视为同义词(尽管它们实际上有差别)管它们实际上有差别)n将将“属性属性”、“属性列属性列”和和“列列”视为同义词视为同义词n使用使用“元

19、组元组”或或“记录记录”表示表的行。表示表的行。n术语术语“基本表基本表”主要用于表示持久基本表,而主要用于表示持久基本表,而“表表”泛指基本表和导出表(包括视图)泛指基本表和导出表(包括视图)定义、修改和删除基本表定义、修改和删除基本表(续续)n符号约定符号约定 n表示表示X是需要进一步定义或说明语言成分。是需要进一步定义或说明语言成分。nX表示表示X可以缺省或出现一次。可以缺省或出现一次。nX表示表示X可以出现一次。可以出现一次。nX|Y表示或者表示或者X出现,或者出现,或者Y出现,但二者不能同时出现。出现,但二者不能同时出现。nSQL语言的保留字(如语言的保留字(如CREATE)不区分大

20、小写。为醒)不区分大小写。为醒目起见,对于目起见,对于SQL语句中的语句中的SQL的保留字,我们使用大的保留字,我们使用大写。写。nSQL语句用语句用分号分号结束。一个结束。一个SQL语句可以写在一行或多行语句可以写在一行或多行中,各种空白符号用于分隔不同的词。良好的语句的书写中,各种空白符号用于分隔不同的词。良好的语句的书写风格使得程序赏心悦目、易于阅读。风格使得程序赏心悦目、易于阅读。定义基本表定义基本表n创建一个基本表要对基本表创建一个基本表要对基本表命名命名,定义表的每个列,并定,定义表的每个列,并定义表的义表的完整性约束条件完整性约束条件。nSQL语言使用语言使用CREATE TAB

21、LE语句创建基本表,其基本格语句创建基本表,其基本格式如下:式如下:CREATE TABLE (,);n是标识符,对定义的基本表命名;是标识符,对定义的基本表命名;n圆括号中包括一个或多个圆括号中包括一个或多个,零个或多个,零个或多个,中间用,中间用逗号逗号隔开隔开 定义基本表定义基本表(续续)n定义每个属性(列)的名称、类型、缺省值和定义每个属性(列)的名称、类型、缺省值和列上的约束条件,格式如下:列上的约束条件,格式如下:n DEFAULT ,n其中,其中,是标识符,对定义的列命名;是标识符,对定义的列命名;n定义列的取值类型,它可以是定义列的取值类型,它可以是3.2.1节介绍的任节介绍的

22、任意类型,也可以是用户定义的域类型(见意类型,也可以是用户定义的域类型(见5.3节);节);n可选短语可选短语“DEFAULT”定义列上的缺省值,定义列上的缺省值,是是中的一个特定值或中的一个特定值或NULL;n每个列上可以定义零个或多个约束条件,约束列的取每个列上可以定义零个或多个约束条件,约束列的取值值定义基本表定义基本表(续续)n列约束定义格式如下列约束定义格式如下CONSTRAINT n其中可选短语其中可选短语“CONSTRAINT”为列约束命名为列约束命名n常用的列约束包括:常用的列约束包括:nNOT NULL:不允许该列取空值:不允许该列取空值n不加不加NOT NULL限制时,该列

23、可以取空值。限制时,该列可以取空值。nPRIMARY KEY:指明该列是主码,值非空、惟一。:指明该列是主码,值非空、惟一。nUNIQUE:该列上的值必须惟一:该列上的值必须惟一n相当于说明该列为候选码。相当于说明该列为候选码。nCHECK():指明该列的值必须满足的条件,:指明该列的值必须满足的条件,其中其中是一个涉及该列的布尔表达式是一个涉及该列的布尔表达式定义基本表定义基本表(续续)n一个表可以包含零个或多个一个表可以包含零个或多个,用于定义主码、,用于定义主码、其他候选码、外码和表上的其它约束。表约束定义定义形其他候选码、外码和表上的其它约束。表约束定义定义形式如下:式如下:CONST

24、RAINT n其中可选短语其中可选短语“CONSTRAINT”为表约束命名为表约束命名 nPRIMARY KEY(A1,Ak):说明属性列:说明属性列A1,Ak构成构成该关系的主码。当主码只包含一个属性时,也可以用列该关系的主码。当主码只包含一个属性时,也可以用列约束定义主码。约束定义主码。nUNIQUE(A1,Ak):说明属性:说明属性A1,Ak上值必须惟一上值必须惟一n相当于说明相当于说明A1,Ak构成该关系的候选码构成该关系的候选码n当候选码只包含一个属性时,也可以用列约束定义候当候选码只包含一个属性时,也可以用列约束定义候选码。选码。定义基本表定义基本表(续续)nCHECK():说明该

25、表上的一个完整性约束条件。:说明该表上的一个完整性约束条件。通常,通常,是一个涉及该表一个或多个列的布尔表达是一个涉及该表一个或多个列的布尔表达式式n外码比较复杂,它具有如下形式:外码比较复杂,它具有如下形式:FOREIGN KEY(A1,Ak)REFERENCES ()n属性属性A1,Ak是关系(表)的外码是关系(表)的外码n给出被参照关系的表名给出被参照关系的表名n给出被参照关系的主码给出被参照关系的主码n说明违反参照完整性时需要采取的措施说明违反参照完整性时需要采取的措施定义基本表定义基本表(续续)n例例3.1 下面的语句创建教师表下面的语句创建教师表TeachersCREATE TAB

26、LE Teachers (Tno CHAR(7)PRIMARY KEY,Tname CHAR(10)NOT NULL,Sex CHAR(2)CHECK(Sex=男男 OR Sex=女女),Birthday DATETIME,Title CHAR(6),Dno CHAR(4),FOREIGN KEY(Dno)REFERENCES Departments(Dno);主码主码列约束列约束表级约束表级约束定义基本表定义基本表(续续)n创建创建选课选课表表SC用如下语句:用如下语句:CREATE TABLE SC(SnoCHAR(9),CnoCHAR(5),Grade SMALLINT CHECK(Gr

27、ade=0 AND Grade=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Students(Sno),FOREIGN KEY(Cno)REFERENCES Courses(Cno);定义基本表定义基本表(续续)CREATE TABLE Departments(Dno CHAR(4)PRIMARY KEY,Dname CHAR(10),Dheadno CHAR(7),FOREIGN KEY(Dheadno)REFERENCES Teachers(Tno);定义基本表定义基本表(续续)CREATE TABLE Students(Sno

28、CHAR(9)PRIMARY KEY,Sname CHAR(10)NOT NULL,Sex CHAR(2)CHECK(Sex=男男 OR Sex=女女),BirthdayDATETIME,EnrollyearCHAR(4),SpecialityCHAR(20),DnoCHAR(3),FOREIGN KEY(Dno)REFERENCES Department(Dno);定义基本表定义基本表(续续)CREATE TABLE Courses(CnoCHAR(5)PRIMARY KEY,CnameCHAR(20)NOT NULL,PeriodSMALLINT,CreditSMALLINT);定义基本表

29、定义基本表(续续)CREATE TABLE Teaches(TnoCHAR(7),CnoCHAR(5),TCscoreSMALLINT,PRIMARY KEY(Tno,Cno),FOREIGN KEY(Tno)REFERENCES Teachers(Tno),FOREIGN KEY(Cno)REFERENCES Courses(Cno);修改基本表修改基本表n基本表创建好以后,在某些情况下需要修改它的结构。基本表创建好以后,在某些情况下需要修改它的结构。nSQL允许允许n添加列定义添加列定义n删除列删除列n添加表约束添加表约束n删除表约束。删除表约束。n使用使用ALTER TABLE语句修改基

30、本表语句修改基本表修改基本表修改基本表(续续)n1.向基本表添加新的列向基本表添加新的列ALTER TABLE ADD COLUMN nCOLUMN可以省略(下同)可以省略(下同)n和创建基本表相同,但是新添加的列和创建基本表相同,但是新添加的列一般不允许用一般不允许用NOT NULL说明。说明。修改基本表修改基本表(续续)n3.删除已存在的列删除已存在的列ALTER TABLE DROP COLUMN CASCADE|RESTRICT有些版本的有些版本的SQL支持支持CASCADE|RESTRICTnCASCADE表示级联,删除将成功,并且依赖于该列的表示级联,删除将成功,并且依赖于该列的数

31、据库对象(如涉及该列的视图)也一并删除数据库对象(如涉及该列的视图)也一并删除nRESTRICT表示受限,仅当没有依赖于该列的数据库对表示受限,仅当没有依赖于该列的数据库对象时删除才能成功象时删除才能成功n4.添加表约束添加表约束 ALTER TABLE ADD n其中其中与创建基本表相同。与创建基本表相同。修改基本表修改基本表(续续)n5.删除表约束删除表约束 ALTER TABLE DROP CONSTRAINT CASCADE|RESTRICTn其中被删除的约束一定是其中被删除的约束一定是命名的命名的约束,给出约束名约束,给出约束名CASCADE|RESTRICT只在有些版本的只在有些版

32、本的SQL支持支持nCASCADE导致删除约束并且同时删除依赖于该约束的数导致删除约束并且同时删除依赖于该约束的数据库对象据库对象nRESTRICT仅当不存在依赖于该约束的数据库对象时才删仅当不存在依赖于该约束的数据库对象时才删除该约束。除该约束。修改基本表修改基本表(续续)n例例3.2 在在Courses中增加一个新列中增加一个新列Pno,表示课程的先行课的课,表示课程的先行课的课程号,可以用程号,可以用 ALTER TABLE Courses ADD Pno CHAR(5);n删除删除Courses中的中的Pno列可以用列可以用 ALTER TABLE Courses DROP COLUM

33、N Pno;删除基本表删除基本表n当不需要某个基本表时,可以使用当不需要某个基本表时,可以使用DROP TABLE语句将它语句将它删除。语句格式为:删除。语句格式为:DROP TABLE CASCADE RESTRICTSQL以前版本可带以前版本可带CASCADE RESTRICT可选项可选项nCASCADE表示及联删除,依赖于表的数据对象(最常表示及联删除,依赖于表的数据对象(最常见的是视图)也将一同被删除见的是视图)也将一同被删除nRESTRICT表示受限删除,如果基于该表定义有视图,表示受限删除,如果基于该表定义有视图,或者有其他表引用该表(如或者有其他表引用该表(如CHECK、FORE

34、IGN KEY等约束),或者该表有触发器、存储过程或函数等,则等约束),或者该表有触发器、存储过程或函数等,则不能删除。不能删除。n删除基本表导致存放在表中的数据和表定义都将被彻底删删除基本表导致存放在表中的数据和表定义都将被彻底删除。除。删除基本表删除基本表(续续)n例例3.3 如果用如下语句删除如果用如下语句删除SC表表DROP TABLE Course RESTRICT;n则仅当没有依赖于则仅当没有依赖于Course的任何数据库对象才能删除。的任何数据库对象才能删除。如果用如果用DROP TABLE Course CASCADE;n则表则表Course和依赖它的数据库对象都被彻底删除和依

35、赖它的数据库对象都被彻底删除n注意:注意:SQL2005好像不支持好像不支持CASCADE RESTRICT,n基本表的删除是永久的,不可恢复的。基本表中的数据及基本表的删除是永久的,不可恢复的。基本表中的数据及索引将全部被删除掉。在该表上建立的视图依然存在但不索引将全部被删除掉。在该表上建立的视图依然存在但不可使用。因此执行删除基本表的操作时要格外小心。可使用。因此执行删除基本表的操作时要格外小心。创建和删除索引创建和删除索引n索引类似于书的目录。索引类似于书的目录。n索引可以加快表之间的连接速度,加快表的排序和分组工索引可以加快表之间的连接速度,加快表的排序和分组工作。作。n索引属于物理存

36、储的路径概念,而不是逻辑的概念。索引属于物理存储的路径概念,而不是逻辑的概念。n索引由索引由DBA或表的属主负责建立和删除,其他用户不能随或表的属主负责建立和删除,其他用户不能随意建立和删除索引。意建立和删除索引。n索引由索引由DBMS自动选择和维护。索引通常分为惟一性索引自动选择和维护。索引通常分为惟一性索引(每一个索引值对应一个数据行)和非惟一性索引;也可(每一个索引值对应一个数据行)和非惟一性索引;也可以分为聚族索引和非聚族索引。以分为聚族索引和非聚族索引。创建索引创建索引n通常,通常,DBMS自动为主码自动为主码建立索引建立索引n其他索引需要用其他索引需要用CREATE INDEX语句

37、创建。创建索引的语语句创建。创建索引的语句格式为:句格式为:CREATE UNIQUE CLUSTERED INDEX ON (,)n为建立的索引命名为建立的索引命名n是要建立索引的基本表的名字是要建立索引的基本表的名字n索引可以建在该表的一列或多列上,各列名间用逗号分索引可以建在该表的一列或多列上,各列名间用逗号分隔;每个隔;每个后可以用后可以用指定索引值的排列次序指定索引值的排列次序n次序可以是次序可以是ASC(升序)和(升序)和DESC(降序),缺省值(降序),缺省值为为ASC。创建索引创建索引(续续)nUNIQUE表示该索引为惟一性索引。表示该索引为惟一性索引。UNIQUE缺省时,缺省

38、时,创建的索引为非唯一性索引。创建的索引为非唯一性索引。nCLUSTER表示建立的索引是聚簇索引,缺省时为非聚表示建立的索引是聚簇索引,缺省时为非聚簇索引。簇索引。n创建索引不仅创建索引结构,而且将索引的定义存储在创建索引不仅创建索引结构,而且将索引的定义存储在数据字典中。数据字典中。创建索引创建索引(续续)n例例3.4 在在Students的的Dno上创建一个名为上创建一个名为Student_Dept的索引的索引n可以用:可以用:CREATE INDEX Student_Dept ON Students(Dno);n而在而在Teachers上的上的Dno创建一个名为创建一个名为Teacher

39、-Dept的聚簇索的聚簇索引可以用:引可以用:CREATE CLUSTERED INDEX Teacher_Dept ON Teachers(Dno);n注意:学生流动性比较大,注意:学生流动性比较大,Students更新频繁,不适合更新频繁,不适合创建聚簇索引;而教师相对稳定,可以考虑按所在院系创建聚簇索引;而教师相对稳定,可以考虑按所在院系在在Teachers上创建聚簇索引。上创建聚簇索引。删除索引删除索引n索引索引旦建立,就由系统来选择和维护,无需用户干预,旦建立,就由系统来选择和维护,无需用户干预,但当删除一些不必要的索引时,可用下列语句来实现:但当删除一些不必要的索引时,可用下列语句

40、来实现:DROP INDEX ON n删除索引时,系统将删除索引结构,并同时从数据字典删除索引时,系统将删除索引结构,并同时从数据字典中删去有关该索引的定义。中删去有关该索引的定义。n例例3.5 删除索引删除索引Student_Dept。DROP INDEX Student_Dept ON Students;模式的定义和删除模式的定义和删除n支持支持SQL的的DBMS提供了一个提供了一个SQL环境(环境(SQL-environment)nSQL环境包括环境包括n零个或多个数据库零个或多个数据库n零个或多个用户标识符(称作授权标识符)零个或多个用户标识符(称作授权标识符)n零个或多个模块和目录中

41、的模式描述的零个或多个模块和目录中的模式描述的SQL数据。数据。nDBMS为关系的命名提供了一个三级层次结构为关系的命名提供了一个三级层次结构n顶层由数据库组成顶层由数据库组成n每个数据库中包含一些模式(每个数据库中包含一些模式(schema)n而而SQL对象(关系、视图等)都包含在模式内。对象(关系、视图等)都包含在模式内。模式的定义和删除模式的定义和删除(续续)n注意:注意:nSQL环境中的数据库不能重名环境中的数据库不能重名n同一数据库下的模式不能重名同一数据库下的模式不能重名n同一模式下的关系不能重名同一模式下的关系不能重名n一个关系由数据库名、模式名和关系名惟一确定,例如一个关系由数

42、据库名、模式名和关系名惟一确定,例如nDatabase2.Supply-schema.Suppliersn确定确定Database2目录下目录下Supply-schema模式中的模式中的Suppliers关系。如果关系在默认数据库的默认模式中,则可以省关系。如果关系在默认数据库的默认模式中,则可以省略目录名和模式名前缀略目录名和模式名前缀模式的定义和删除模式的定义和删除(续续)n为了进行数据库操作,首先必须连接到数据库为了进行数据库操作,首先必须连接到数据库n当用户(程序)连接到数据库时,系统为该连接建立一当用户(程序)连接到数据库时,系统为该连接建立一个默认的模式。个默认的模式。n模式的创建

43、、设置和删除依赖于具体实现,不包含在模式的创建、设置和删除依赖于具体实现,不包含在SQL标准中标准中n可以用可以用CREATE SCHEMA和和DROP SCHEMA创建和删除创建和删除模式模式创建模式创建模式n谁有权创建模式依赖于实现谁有权创建模式依赖于实现n通常,通常,DBMS规定只有规定只有DBA和或经和或经DBA授权创建模式的授权创建模式的用户才能创建模式用户才能创建模式n创建模式的语句格式有两种创建模式的语句格式有两种n第一种格式第一种格式CREATE SCHEMA n创建一个以创建一个以命名的模式,并可以在创建模式的命名的模式,并可以在创建模式的同时为该模式创建或不创建模式元素。同

44、时为该模式创建或不创建模式元素。n可以是表定义、视图定义、断言定义、授权可以是表定义、视图定义、断言定义、授权定义等。定义等。n这种格式没有授权其他用户访问创建的模式,以后可以这种格式没有授权其他用户访问创建的模式,以后可以用授权语句授权。用授权语句授权。创建模式创建模式(续续)n第二种格式第二种格式CREATE SCHEMA AUTHORIZATION n与第一种的区别在于它将创建的模式授权予与第一种的区别在于它将创建的模式授权予指指定的用户定的用户n当当缺省时,用缺省时,用作为模式名作为模式名n实际上,创建一个模式就相当于创建一个数据库(微软的实际上,创建一个模式就相当于创建一个数据库(微

45、软的前几个版本前几个版本SQL Server只用只用CREATE DATBASE,2005中中才真正体现出模式的概念)。才真正体现出模式的概念)。创建模式创建模式(续续)n例例3.6 为为WangQiang创建一个名为创建一个名为Supply_schema的模式,的模式,可以用:可以用:CREATE SCHEMA Supply_schema AUTHORIZATION WangQiang;n所创建的模式在当前目录下,并为所创建的模式在当前目录下,并为WangQiang所拥有所拥有n如果用如果用CREATE SCHEMA Supply_schema;n则创建一个名为则创建一个名为Supply_s

46、chema的模式,但未向任何的模式,但未向任何用户授权用户授权n如果用如果用 CREATE SCHEMA AUTHORIZATION WangQiang;n则为则为WangQiang创建一个模式,并用创建一个模式,并用WangQiang命名命名创建模式创建模式(续续)n还可以在创建模式的同时创建该模式中的对象还可以在创建模式的同时创建该模式中的对象n例如例如CREATE SCHEMA Supply_schemaCREATE TABLE Suppliers(Sno CHAR(5)PRIMERY KEY,Sname CHAR(20)NOT NULL,Status SMALLINT,Address

47、CHAR(30),Phone CHAR(10);n在创建模式在创建模式Supply_schema的同时还在该模式中定义了的同时还在该模式中定义了一个基本表一个基本表Suppliers删除模式删除模式nDBA和模式的拥有者可以用和模式的拥有者可以用DROP SCHEMA删除模式。删删除模式。删除模式的语句格式为:除模式的语句格式为:DROP SCHEMA CASCADE RESTRICT n其中其中CASCADE和和RESTRICT两者必须选择其一。选择两者必须选择其一。选择CASCADE,则删除,则删除指定模式得同时并删除该模指定模式得同时并删除该模式中的所有数据库对象(基本表、视图、断言等)

48、;选择式中的所有数据库对象(基本表、视图、断言等);选择RESTRICT,则仅当,则仅当指定的模式不包含任何数据指定的模式不包含任何数据库对象时才删除指定的模式,否则拒绝删除。库对象时才删除指定的模式,否则拒绝删除。删除模式删除模式(续续)n例例3.7 语句语句nDROP SCHEMA Supply_schema RESTRICTn仅当模式仅当模式Supply_schema中不包含任何数据库对象时,中不包含任何数据库对象时,才删除模式才删除模式Supply_schema,否则什么也不做。而,否则什么也不做。而nDROP SCHEMA Supply_schema CASCADEn 将直接删除模式

49、将直接删除模式Supply_schema,并同时删除该模式,并同时删除该模式中所有的数据库对象中所有的数据库对象 3.3 数据查询数据查询 数据查询数据查询n查询是数据库的最重要的操作查询是数据库的最重要的操作n在在SQL中,所有查询都用中,所有查询都用SELECT语句实现语句实现n查询在一个或多个关系(基本表或视图)上进行,查询在一个或多个关系(基本表或视图)上进行,其结果是一个关系其结果是一个关系数据查询数据查询(续续)3.3.1 SELECT语句的一般形式语句的一般形式3.3.2 不带不带WHERE的简单查询的简单查询3.3.3 带带WHERE子句的查询子句的查询3.3.4 排序和分组排

50、序和分组3.3.5 连接查询连接查询3.3.6 嵌套查询嵌套查询3.3.7 子查询导出的表子查询导出的表3.3.8 集合运算集合运算SELECT语句的一般形式语句的一般形式nSELECT语句的一般形式如下:语句的一般形式如下:SELECT ALLDISTINCT FROM,WHERE GROUP BY ,HAVING ORDER BY ASCDESC,ASCDESCn其中最基本的结构是其中最基本的结构是SELECT-FROM-WHERE,并且,并且SELECT子句和子句和FROM子句是必须的,其他子句都是可子句是必须的,其他子句都是可选的选的,我们先介绍我们先介绍SELECT语句的基本结构。语

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|