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

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

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

1、,CREATE TABLE (列级完整性约束 ,列级完整性约束 . . 表级完整性约束) ALTER TABLE ADD 完整性约束 DROP ALTER COLUMN ,第三章 关系数据库标准语言 -SQL,授课内容,3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图,3.1 SQL概述,SQL概述,历史 1974年,由Boyce和Chamber提出。 1975-1979年,在由IBM的San Jose研究室研制的System R上实现,称为Sequel,现在称为SQL (Struceured Query Languang)。 19

2、86年10月,美国国家标准局(American National Standard Institute,简称ANSI)的数据库委员会批准了SQL作为关系数据库语言的美国标准。 1987年,国际标准组织(International Organization for Standardization,简称ISO)也通过了这一标准。,SQL概述,标准化 SQL86: SQL89:120页,增加了对完整性约束的支持。 SQL92:622页,是SQL-89的超集,增加了许多新特性,如新的数据类型,更丰富的数据操作,更强的完整性、安全性支持等。 SQL99:1700页,新标准增加了对象数据、递归、触发器的支

3、持能力。 SQL2003:3600页。,SQL概述,SQL的特点 综合统一 集DDL、DML、DCL功能于一体。 可以独立完成数据库生命周期中的全部活动 建立数据库,定义关系模式,插入数据; 对数据库中的数据进行查询和更新; 数据库重构和维护 数据库安全性、完整性控制等,SQL概述,SQL的特点 高度非过程化 用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路径。 存取路径的选择由系统自动完成。 面向集合的操作方式 操作对象,操作结果都是元组集合 一次一集合:一次插入、删除、更新多条元组,SQL概述,SQL的特点 以同一种语法结构提供两种使用方式 SQL是自含式语言 SQL是嵌入式语言

4、 语言简洁,易学易用 SQL语言完成核心功能只用9个动词,语法接近英语口语。,SQL语言的基本概念,基本概念: 基本表(Base Table)是本身独立存在的表,每个(多个)基本表对应一个存储文件,一个表可以带若干索引。 视图(View)是从一个或多个基本表中导出的表,数据库中只存放视图的定义而不存放视图对应的数据,可以将其理解为一个虚表。用户可以在视图上再定义视图 存储文件的逻辑结构组成了关系数据库的内模式。,SQL语言的基本概念,SQL语言支持数据库的三级模式结构, 所有基本表模式 部分视图和部分基本表外模式, 所有存储文件内模式,SQL语言的基本概念,SQL语言的基本概念,产品(产品号,

5、产品名,规格,单价,生产车间,生产负责人,产品成本,产品合格率,质量等级) 销售主管:产品号,产品名,规格,单价,产品成本 质检主管:产品号,产品名,规格,生产车间,生产负责人,产品合格率,质量等级 可以以视图的形式定义外模式。,3.2 学生课程数据库,学生课程数据库,student(sno, sname, ssex, sage, sdept) course(cno, cname, cpno, ccredit) cpno为外码 sc(sno, cno, grade) sno为外码,cno为外码,3.3 数据定义,数据定义,较为复杂 单独成 为一节,创建数据库,创建数据库 CREATE DATA

6、BASE ; create database test; 打开数据库 USE ; use test; 删除数据库 DROP DATABASE ; drop database test; 一个数据库在打开的时候是不能删除的,SQL SERVER中的数据类型,SQL SERVER中的数据类型,TINYINT: 1byte 0 255 之间的整型数据 SMALLINT: 2byte -215215-1之间的整型数据 INT: 4byte -231231-1之间的整型数据 BIGINT: 8byte -263263-1之间的整型数据,SQL SERVER中的数据类型,REAL :单精度浮点型 4byt

7、e -3.40E+38 3.40E+38。 FLOAT:双精度浮点型 8byte -1.79E+308 1.79E+308。 DECIMAL( p, s ):固定精度和小数位的数字数据 p表示可以存储的十进制数字的最大个数 ,s指表示小数点右边可以存储的十进制数字的最大个数 。0=s=p DECIMAL( 5, 2 ),-999.99999.99,SQL SERVER中的数据类型,CHAR( n ):长度固定为n个字符的字符串类型 n byte, n最大为8000。 CHAR( 5 ) 如果表中的某列的数据类型定义为CHAR( 5 ),用户给的一个值是abc,则系统默认在字符串右边以空格填补剩

8、余的位置, abc 。 VARCHAR( n ):长度最大为n个字符的变长字符串类型 占用字节数不固定,n最大为8000。 VARCHAR( 5 ),abcde, 12345,abcde, 123,SQL SERVER中的数据类型,SMALLDATETIME: 4byte, 从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。 DATETIME: 8byte 从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒) getdate()函数,返回当前日期时间 select getdate

9、();,基本表的建立,示例: student( sno, sname, ssex, sage, sdept ) sno:char(5); sname:varchar(20); ssex:char(2) sage:smallint sdept:varchar(20); create table student ( sno char(5), sname varchar(20), ssex char(2), sage smallint, sdept varchar(20) );,(,),基本表的建立,语法格式 CREATE TABLE ( , ); :所要定义的基本表的名字,同一个数据库中的表名不能

10、重复 :组成该表的各个属性的定义 null|not null 同一个表中的列名不能重复。 null:表明该列允许有空值;not null:说明该列不允许有空值。 如果在列定义中没有指明null|not null,则默认为null,基本表的建立,示例: student( sno, sname, ssex, sage, sdept ) sname列不允许取空值 create table student ( sno char(5), sname varchar(20) not null, ssex char(2), sage smallint, sdept varchar(20) );,基本表的建立

11、,完整性约束的实现 SQl语言创建表时可以通过两种形式来实现各种完整性约束 列级完整性约束:在定义列的时候定义的完整性约束。 表级完整性约束:在所有列定义结束之后定义的完整性约束。,CREATE TABLE ( 列级完整性约束 , 列级完整性约束 表级完整性约束 );,基本表的建立,示例: student( sno, sname, ssex, sage, sdept ) sno列是主码 create table student ( sno char(5) primary key, sname varchar(20) not null, ssex char(2), sage smallint,

12、sdept varchar(20) );,列级完整性约 束,主码,primary key,基本表的建立,示例: student( sno, sname, ssex, sage, sdept ) sno列是主码 create table student ( sno char(5), sname varchar(20) not null, ssex char(2), sage smallint, sdept varchar(20), primary key(sno) );,表级完整性约 束,主码,基本表的建立,示例: sc( sno, cno, grade ) (sno, cno)列是主码 cre

13、ate table sc ( sno char(5) primary key, cno char(1) primary key, grade int ); create table sc ( sno char(5), cno char(1), grade int, primary key(sno, cno) );,表级完整性约 束,主码,基本表的建立,如果完整性约束条件涉及到该表的多个属性列,完整性约束条件必须定义在表级上 如果完整性约束条件只涉及到该表的一个属性列,完整性约束条件既可以定义在列级上也可以定义在表级上。,基本表的建立,Create table 的完整性约束 NOT NULL 属

14、性值禁止为空 UNIQUE 取唯一值 PRIMARY KEYA1,A2,An主码-若干属性列 CHECK(P) P为条件表达式,基本表的建立,示例:course(cno, cname, cpno, ccredit) cno列是主码,cname列不允许有重复值 create table course ( cno char(1) primary key, cname varchar(20) constraint UQ_course_cname unique, cpno char(1), ccredit smallint ); create table course ( cno char(1), c

15、name varchar(20), cpno char(1), ccredit smallint, primary key(cno), unique(cname) );,unique,基本表的建立,示例:course(cno, cname, cpno, ccredit) cno列是主码,cname列不允许有重复值,ccredit大于零 create table course ( cno char(1) primary key, cname varchar(20) unique, cpno char(1), ccredit smallint constraint CK_course_ccredi

16、t check(ccredit0) ); create table course ( cno char(1) primary key, cname varchar(20) unique, cpno char(1), ccredit smallint, check(ccredit0) );,check(ccredit0),基本表的建立,示例:course(cno, cname, cpno, ccredit) cno列是主码,cname列不允许有重复值,ccredit大于0小于等于4 create table course ( cno char(1) primary key, cname varchar(20) unique, cpno char(1), ccredit smallint, check(ccredit0 and c

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

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

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