数据库第3章剖析

上传人:今*** 文档编号:107639423 上传时间:2019-10-20 格式:PPT 页数:110 大小:1.70MB
返回 下载 相关 举报
数据库第3章剖析_第1页
第1页 / 共110页
数据库第3章剖析_第2页
第2页 / 共110页
数据库第3章剖析_第3页
第3页 / 共110页
数据库第3章剖析_第4页
第4页 / 共110页
数据库第3章剖析_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《数据库第3章剖析》由会员分享,可在线阅读,更多相关《数据库第3章剖析(110页珍藏版)》请在金锄头文库上搜索。

1、信息学院计算机系,1,数据库原理,An Introduction to Database System,大连工业大学信息学院计算机系,第3章 关系数据库语言SQL,大连工业大学信息学院计算机系,SQL特点,SQL:(Structured Query Language),综合统一 高度非过程化 面向集合的操作方式 灵活的使用方式 语言简洁,易学易用,Data Definition Language Data Manipulation Language Data Control Language,只需要提出“做什么” 不需要指明“怎么做”,作为交互语言独立使用 作为子语言嵌入到高级语言中,大连工业

2、大学信息学院计算机系,SQL操作对象,基本表(Table) 基本表是本身独立存在的表,一个(或几个)基本表对应一个存储文件,还可以带若干索引文件。所有存储文件和索引文件就构成了关系数据库的内模式。 视图(View) 视图是从一个或几个基本表(或视图)导出的表,是一个虚表。视图所对应的数据并不独立存储在数据库中,而是分别存储在导出该视图的基本表所对应的存储文件中。数据库只存储视图的定义,使用时根据用户的数据访问要求,结合视图的定义对相应的基本表进行存取。,大连工业大学信息学院计算机系,SQL概述,SQL数据定义语言 用来创建、修改或删除数据库中的各种对象(表、视图、索引等等)。,大连工业大学信息

3、学院计算机系,SQL概述,SQL查询语言 按照指定的组合、条件表达式或排序来检索已存在的数据库中的数据,并不改变数据。 语句: SELECT FROM WHERE,大连工业大学信息学院计算机系,SQL概述,SQL数据操纵语言DML 对已经存在的数据库进行记录的插入、删除和修改等操作。 语句: INSERT、UPDATE、DELETE。,大连工业大学信息学院计算机系,SQL概述,SQL数据控制语言 授予或收回数据库的某种权限; 控制数据操纵事务发生的时间及效果; 语句: GRANT、REVOKE、COMMIT、ROLLBACK,大连工业大学信息学院计算机系,数据定义建库,建立数据库 格式: CR

4、EATE DATABASE ; 例如:建立学生数据库。 CREATE DATABASE Student;,大连工业大学信息学院计算机系,数据定义建表,建立数据库基本表 格式: CREATE TABLE (列级完整性约束条件 ,列级完整性约束条件 ,);,大连工业大学信息学院计算机系,数据定义建表,数据类型 SQL Server 2008所支持的部分数据类型,大连工业大学信息学院计算机系,数据定义建表,完整性约束,在定义基本表时,对于某些列和表要进行完整性约束条件定义,以实现实体完整性、参照完整性和用户定义的完整性。 通常完整性约束根据其作用的范围分为列级约束和表级约束。 列级约束通常包含在列的

5、定义中,对该列进行约束。 表级约束通常被放在该表最后一列定义之后,对整个表进行约束。 有些约束既是列级约束,又可以是表级约束。,大连工业大学信息学院计算机系,数据定义建表,完整性约束默认值(DEFAULT)约束,列级约束:DEFAULT可以为某一列指定默认值。 当用户插入或修改元组时,在没有为该列赋值的情况下,可以用指定的默认值填入该列。其定义格式为: CONSTRAINT DEFAULT 注意,使用CONSTRAINT可以为约束指定一个唯一的名字,如果不需要指定可以省略CONSTRAINT短语(此时系统会自动为其命名)。,大连工业大学信息学院计算机系,数据定义建表,完整性约束非空值(NOT

6、NULL)约束,空值(NULL)是当前不知道、不确定或无法填入的值。 空值不能理解为0或空白符。 例如:某个学生选修某门课程的成绩是0和NULL。 0:表示该学生该课程已经有了成绩(成绩为0); NULL:表明该学生此门课程还没有成绩(比如,该学生还没有参加考试或考完试成绩还没有录入)。 当某列的取值不能为空值时(新建和修改元组),则可以在列级完整性约束定义中设置为非空值(NOT NULL)约束。其定义格式为: CONSTRAINT NOT NULL,大连工业大学信息学院计算机系,数据定义建表,完整性约束唯一值(UNIQUE)约束,用于限定基本表上的某个列或某些列的组合(称为唯一性键),在不同

7、元组中的取值不能相同(空值除外)。 UNIQUE约束既可以作为列级约束,也可以作为表级约束。作为表级约束时可以约束多个列的组合。UNIQUE约束定义格式为: CONSTRAINT UNIQUE () 列名表:需要进行唯一性约束的列组合中的每一个列名。 当作为列级约束时,UNIQUE只作用于其所在的列,无需指定列名表。,大连工业大学信息学院计算机系,数据定义建表,完整性约束主键(PRIMARY KEY)约束,唯一地标识表中的一个元组,实现实体完整性规则。 主键约束和唯一性约束不同 在一个表中只能定义一个主键约束,但可以定义多个唯一性约束。 主键中的任何列都不允许出现空值,而唯一性约束中没有此限制

8、。 主键约束既可以作为列级约束,也可以作为表级约束,其定义格式为: CONSTRAINT PRIMARY KEY () 作为列级约束时可以省略列名表。,大连工业大学信息学院计算机系,数据定义建表,完整性约束外键(FOREIGN KEY)约束,外键是一个表(称外键表、从表或参照关系)中的一个或多个列的组合,它的取值引用另一个表(称主键表、主表或被参照关系)的主键或唯一性键的值。 外键的取值,要么为空值,要么是引用表的某个主键或唯一性键的值。外键约束既可以作为列级约束,也可以作为表级约束,其定义格式为: CONSTRAINT FOREIGN KEY() REFERENCES () ON DELET

9、E ON UPDATE ,分别设置当删除被参照关系(主键表)的元组或修改其某个主键值,违反参照完整性时的处理策略,是缺省选项,表示采用限制删除或更新(即拒绝该操作)处理方式。,采用级联删除或更新处理方式,采用置空值删除或更新处理方式。,大连工业大学信息学院计算机系,数据定义建表,完整性约束检查(CHECK)约束,可以定义插入或修改某个元组时,元组应满足的约束条件,其定义格式为: CONSTRAINT CHECK () 条件表达式是由列名、SQL所支持的运算符(将在后续部分介绍)和函数等构成的逻辑表达式。 既可以作为“列级”约束,也可以作为“表级”约束。 作为“列级”约束,每一列只能有一个CHE

10、CK约束,但可以用逻辑运算符AND(与)、OR(或)等构成符合条件。,大连工业大学信息学院计算机系,数据定义建表,完整性约束说明,在上述约束定义中,除NOT NULL和DEFAULT外,其他四种约束都既可以作为“列级”约束,也可以作为“表级”约束。 但需要注意: PRIMARY KEY、FOREIGN KEY和UNIQUE约束,如果作用在多列的组合上,必须作为“表级”约束定义; 如果CHECK约束定义的是多列之间的取值约束(即这些列的取值满足一定的关系),则必须作为“表级”约束定义。,大连工业大学信息学院计算机系,数据定义建表的例子,用SQL语句创建图书借阅数据库的三张表:Book(图书)表、

11、Patron(读者)表和Lend(借阅)表。 Book表 CREATE TABLE Book ( CallNo CHAR(20) CONSTRAINT PK_CallNo PRIMARY KEY, Title VARCHAR(50) CONSTRAINT NL_Title NOT NULL, Author CHAR(10), Publisher CHAR(20), ISBN CHAR(17) CONSTRAINT UE_ISBN UNIQUE, PubDate SMALLDATE, Pages INT, Price NUMERIC(10,2), Number INT, AvailableNum

12、ber INT, CONSTRAINT CK_Number CHECK(AvailableNumber=Number);,大连工业大学信息学院计算机系,数据定义建表的例子,Patron表 CREATE TABLE Patron ( PatronID CHAR(11) CONSTRAINT PK_PatronID PRIMARY KEY, Name CHAR(10) CONSTRAINT NL_Name NOT NULL, Gender CHAR(2) CONSTRAINT CK_Gender CHECK(Gender=男 OR Gender=女), BirthDate DATE, Type C

13、HAR(10) CONSTRAINT NL_Type NOT NULL, Department VARCHAR(40) CONSTRAINT NL_Department NOT NULL);,大连工业大学信息学院计算机系,数据定义建表的例子,Lend表 CREATE TABLE Lend ( CallNo CHAR(20) REFERENCES Book(CallNo), PatronID CHAR(11) REFERENCES Patron(PatronID), LendTime SMALLDATETIME DEFAULT getdate(), ReturnTime SMALLDATETIM

14、E, PRIMARY KEY(CallNo, PatronID, LendTime); Lend表的另一种定义形式 CREATE TABLE Lend ( CallNo CHAR(20), PatronID CHAR(20), LendTime DATETIME DEFAULT getdate(), ReturnTime DATETIME, PRIMARY KEY(CallNo, PatronID, LendTime), FOREIGN KEY(CallNo) REFERENCES Book(CallNo), FOREIGN KEY(PatronID) REFERENCES Patron(Pa

15、tronID);,大连工业大学信息学院计算机系,数据定义基本表修改和删除,SQL通过ALTER TABLE语句对基本表进行修改,可以完成增加列和完整性约束、修改列的定义以及删除列和完整性约束等功能。,SQL Server支持的ALTER TABLE语句的部分格式 ALTER TABLE ADD -增加新列 |ADD CONSTRAINT-增加完整性约束 |ALTER COLUMN -修改列定义 |DROP COLUMN -删除列 |DROP CONSTRAINT ; -删除完整性约束,大连工业大学信息学院计算机系,数据定义基本表修改和删除例,【例4-1】向读者表Patron中增加一个新列E_M

16、ail(电子邮件),该列的数据类型为VARCHAR(40)。 ALTER TABLE Patron ADD E_Mail VARCHAR(40);,【例4-2】向借阅表Lend增加一个CHECK约束,要求归还时间(ReturnTime)必须晚于借阅时间(LendTime)。 ALTER TABLE Lend ADD CHECK(LendTimeReturnTime);,【例4-3】为读者表Patron中新增加的列E_Mail添加一个UNIQUE约束。 ALTER TABLE Patron ADD UNIQUE(E_Mail);,【例4-4】为读者表Patron中的Gender(性别)列增加一个默认值约束,定义其默认值为“男”。 A

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

最新文档


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

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