东华大学数据库与软件工程05-1_第1页
东华大学数据库与软件工程05-1_第2页
东华大学数据库与软件工程05-1_第3页
东华大学数据库与软件工程05-1_第4页
东华大学数据库与软件工程05-1_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、SQLSQL(Structured Query LanguageStructured Query Language)结构化查询语言,是关系数据库的标准语言。结构化查询语言,是关系数据库的标准语言。SQLSQL是一个通用的、功能极强的关系数据库语是一个通用的、功能极强的关系数据库语言。言。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL5.1 SQL的功能及特点的功能及特点1.SQL语句分类语句分类数据定义语句数据定义语句 DDL数据操纵语句数据操纵语句 DML数据控制语句数据控制语句 DCL第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL第第5 5章章 关系数据

2、库标准语言关系数据库标准语言SQLSQL2. SQL的特点的特点SQL具有自主式语言和嵌入式语言两种具有自主式语言和嵌入式语言两种使用方式。使用方式。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQLSQL具有语言简洁、易学易用的特点。具有语言简洁、易学易用的特点。SQL功能功能命令动词命令动词数据定义数据定义CREATE DROP ALTER数据操纵数据操纵SELECT INSERT UPDATE DELETE数据控制数据控制GRANT REVOKE 第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQLSQL支持三级数据模式结构。支持三级数据模式结构。SQL视图视图

3、2视图视图1基本表基本表2基本表基本表1基本表基本表3基本表基本表4存储文件存储文件2存储文件存储文件1外模式外模式模模 式式内模式内模式第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL基本表基本表n 本身独立存在的表本身独立存在的表n SQL中一个关系就对应一个基本表中一个关系就对应一个基本表n 一个一个(或多个或多个)基本表对应一个存储文件基本表对应一个存储文件n 一个表可以带若干索引一个表可以带若干索引存储文件存储文件n 逻辑结构组成了关系数据库的内模式逻辑结构组成了关系数据库的内模式n 物理结构是任意的,对用户透明物理结构是任意的,对用户透明视图视图n 从一个或几个基本

4、表导出的表从一个或几个基本表导出的表n 数据库中只存放视图的定义而不存放视图对应的数据数据库中只存放视图的定义而不存放视图对应的数据n 视图是一个虚表视图是一个虚表n 用户可以在视图上再定义视图用户可以在视图上再定义视图第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL5.2 数据定义语句数据定义语句 SQL的数据定义包括定义基本表、索引、视的数据定义包括定义基本表、索引、视图和数据库。图和数据库。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL5.2.1 基本表的定义和维护基本表的定义和维护一、定义基本表一、定义基本表CREATE TABLE ( , , );)

5、; 如果完整性约束条件涉及到该表的多个属性列,则必如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定须定义在表级上,否则既可以定义在列级也可以定义在表级。义在表级。数据类型数据类型含义含义CHAR(n)长度为长度为n的定长字符串的定长字符串VARCHAR(n)最大长度为最大长度为n的变长字符串的变长字符串INT长整数(也可以写作长整数(也可以写作INTEGER)SMALLINT短整数短整数NUMERIC(p,d)定点数,由定点数,由p位数字(不包括符号、小数点)组成,小数后面位数字(不包括符号、小数点)组成,小数后面有有d位数字位数字REAL取决于机器精

6、度的浮点数取决于机器精度的浮点数Double Precision取决于机器精度的双精度浮点数取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少为浮点数,精度至少为n位数字位数字DATE日期,包含年、月、日,格式为日期,包含年、月、日,格式为YYYY-MM-DDTIME时间,包含一日的时、分、秒,格式为时间,包含一日的时、分、秒,格式为HH:MM:SS第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL列级完整性的约束条件:针对属性值设置的限制条件。列级完整性的约束条件:针对属性值设置的限制条件。1) NOT NULL1) NOT NULL或或NULLNULL约束。约束。N

7、OT NULLNOT NULL约束不允许字段值为空,而约束不允许字段值为空,而NULLNULL约束允许字段值为空。约束允许字段值为空。2) UNIQUE2) UNIQUE约束。惟一性约束,即不允许列中出现重复的属性值。约束。惟一性约束,即不允许列中出现重复的属性值。3) 3) DEFAULTDEFAULT约束约束。默认值约束。默认值约束。 DEFAULTDEFAULT约束名默认值约束名默认值FORFOR列名列名4) 4) CHECKCHECK约束约束。检查约束。检查约束。CONSTRAINTCONSTRAINT约束名约束名CHECK (CHECK (约束条件表达式约束条件表达式) )第第5 5

8、章章 关系数据库标准语言关系数据库标准语言SQLSQL表级完整性约束条件:涉及到关系中多个列的限制条件。表级完整性约束条件:涉及到关系中多个列的限制条件。1) UNIQUE1) UNIQUE约束。惟一性约束。约束。惟一性约束。2) PRIMARY KEY2) PRIMARY KEY约束。定义主码,保证惟一性和非空性。约束。定义主码,保证惟一性和非空性。 CONTRAINTCONTRAINT约束名约束名PRIMARY KEY (PRIMARY KEY (列组列组) )3) FOREIGN KEY3) FOREIGN KEY约束。用于定义参照完整性。约束。用于定义参照完整性。 CONTRAINTC

9、ONTRAINT约束名约束名FOREIGN KEY(FOREIGN KEY(外码外码) ) REFERENCES REFERENCES被参照表名被参照表名( (与外码对应的主码名与外码对应的主码名) )第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL【例【例5-15-1】用】用SQLSQL建立学生课程库中的基本建立学生课程库中的基本表。其表结构为:表。其表结构为:学生(学号,姓名,年龄,性别,所在系)学生(学号,姓名,年龄,性别,所在系)课程(课程号,课程名,先行课)课程(课程号,课程名,先行课)选课(学号,课程号,成绩)选课(学号,课程号,成绩)CREATE TABLE CR

10、EATE TABLE 学生学生( (学号学号 CHAR(5) NOT NULL UNIQUECHAR(5) NOT NULL UNIQUE, 姓名姓名 CHAR(8) NOT NULLCHAR(8) NOT NULL, 年龄年龄 SMALLINTSMALLINT, 性别性别 CHAR(2)CHAR(2), 所在系所在系 CHAR(20)CHAR(20), DEFAULT DEFAULT C1C1 20 FOR 20 FOR 年龄,年龄, CONSTRAINT CONSTRAINT C2C2 CHECK( CHECK(性别性别 IN (IN (男男,女女); 第第5 5章章 关系数据库标准语言关

11、系数据库标准语言SQLSQLCREATE TABLE CREATE TABLE 课程课程( (课程号课程号 CHAR(5) PRIMARY KEYCHAR(5) PRIMARY KEY, 课程名课程名 CHAR(20)CHAR(20), 先行课先行课 CHAR(5)CHAR(5);第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQLCREATE TABLE CREATE TABLE 选课选课( (学号学号 CHAR(5)CHAR(5), 课程号课程号 CHAR(5)CHAR(5), 成绩成绩 SMALLINTSMALLINT, CONSTRAINT CONSTRAINT C3C3

12、CHECK( CHECK(成绩成绩 BETWEEN 0 AND 100)BETWEEN 0 AND 100), CONSTRAINT CONSTRAINT C4C4 PRIMARY KEY( PRIMARY KEY(学号,课程号学号,课程号) ), CONSTRAINT CONSTRAINT C5C5 FOREIGN KEY( FOREIGN KEY(学号学号) REFERENCES ) REFERENCES 学学生生( (学号学号) ), CONSTRAINT CONSTRAINT C6C6 FOREIGN KEY( FOREIGN KEY(课程号课程号) REFERENCES) REFER

13、ENCES 课程课程( (课程号课程号);第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL二、修改基本表二、修改基本表ALTER TABLEALTER TABLE表名表名 ADD(ADD(新列名数据类型新列名数据类型 完整性约束完整性约束 ,n)n) DROP DROP完整性约束名完整性约束名 MODIFY( MODIFY(列名数据类型列名数据类型 ,n)n);(1) (1) 使用使用ADDADD子句增加新列子句增加新列【例【例5-25-2】向课程表中增加】向课程表中增加“学时学时”字段。字段。 ALTER TABLE ALTER TABLE 课程课程 ADD ADD 学时学时

14、 SMALLINTSMALLINT;第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL(2) 使用使用MODIFY子句修改列的原定义。子句修改列的原定义。(3) 使用使用DROP子句删除指定的完整性约束子句删除指定的完整性约束条件。条件。【例【例5-3】删除学生表中对年龄的默认值的】删除学生表中对年龄的默认值的定义。定义。 ALTER TABLE 学生学生 DROP C1;第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL三、删除基本表三、删除基本表删除基本表的一般格式为:删除基本表的一般格式为: DROP TABLE表名;表名;基本表一旦被删除,表中的数据及在此基

15、本表一旦被删除,表中的数据及在此表基础上建立的索引、视图将自动地全表基础上建立的索引、视图将自动地全部被删除掉。部被删除掉。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL5.2.2 5.2.2 索引的定义和维护索引的定义和维护一、索引的作用一、索引的作用1) 1) 使用索引可以明显地加快数据查询使用索引可以明显地加快数据查询的速度。的速度。2) 2) 使用索引可保证数据的惟一性。使用索引可保证数据的惟一性。3) 3) 使用索引可以加快连接速度。使用索引可以加快连接速度。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL二、建立索引的原则二、建立索引的原则1) 1

16、) 索引的建立和维护由索引的建立和维护由DBADBA和和DBMSDBMS完成。完成。2) 2) 大表应当建索引,小表则不必建索引。大表应当建索引,小表则不必建索引。3) 3) 对于一个基本表,不要建立过多的索引。对于一个基本表,不要建立过多的索引。4) 4) 根据查询要求建索引。根据查询要求建索引。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL三、建立索引格式为:三、建立索引格式为:CREATE UNIQUE CLUSTER INDEXCREATE UNIQUE CLUSTER INDEX索引名索引名 ONON表名表名( (列名列名 次序次序,列名,列名 次次序序);四、删除

17、索引格式为:四、删除索引格式为: DROP INDEX DROP INDEX 索引名;索引名;第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL【例【例5-45-4】为学生】为学生_ _课程数据库中的学生、课程和选课三个表课程数据库中的学生、课程和选课三个表建立索引。其中,学生表按学号升序建立索引;课程表按建立索引。其中,学生表按学号升序建立索引;课程表按课程号升序建惟一索引;选课表按学号升序和课程号降序课程号升序建惟一索引;选课表按学号升序和课程号降序建惟一索引。建惟一索引。CREATE UNIQUE INDEX CREATE UNIQUE INDEX 学号学号 ON ON 学

18、生学生( (学号学号) );CREATE UNIQUE INDEX CREATE UNIQUE INDEX 课程号课程号 ON ON 课程课程( (课程号课程号) );CREATE UNIQUE INDEX CREATE UNIQUE INDEX 选课号选课号 ON ON 选课选课( (学号学号 ASCASC,课程,课程号号 DESC)DESC);第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL5.2.3 视图的定义和维护视图的定义和维护一、视图的优点一、视图的优点 1) 1) 视图能够简化用户的操作。视图能够简化用户的操作。2) 2) 视图机制可以使用户以不同的方式看待同视图

19、机制可以使用户以不同的方式看待同 一数据。一数据。3) 3) 视图对数据库的重构提供了一定程度的逻视图对数据库的重构提供了一定程度的逻辑独立性。辑独立性。4) 4) 视图可以对机密的数据提供安全保护。视图可以对机密的数据提供安全保护。第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL二、视图定义的格式二、视图定义的格式一般格式为:一般格式为: CREATE VIEWCREATE VIEW视图名视图名(列名组列名组) AS AS子查询子查询 WITH CHECK OPTIONWITH CHECK OPTION;第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL【例【例

20、5-65-6】建立计算机系学生的视图。】建立计算机系学生的视图。 CREATE VIEW CREATE VIEW 计算机系学生计算机系学生 AS SELECT AS SELECT 学号,姓名,年龄学号,姓名,年龄 FROM FROM 学生学生 WHERE WHERE 所在系所在系=计算机系计算机系;第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL【例【例5-75-7】由学生、课程和选课三个表,定义一个计算机系的学】由学生、课程和选课三个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩。生成绩视图,其属性包括学号、姓名、课程名和成绩。CREATE VIEW CREATE VIEW 学生成绩学生成绩( (学号,姓名,课程名,成绩学号,姓名,课程名,成绩) AS ) AS SELECT SELECT 学生学生. .学号,学生学号,学生. .姓名,课程姓名,课程. .课程名,选课课程名,选课. .成绩成绩FORM FORM 学生,课程,选课学生,课程,选课WHERE WHERE 学生学生. .学号学号= =选课选课. .学号学号 AN

温馨提示

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

评论

0/150

提交评论