数据库数据的定义(SQL语言)

上传人:宝路 文档编号:50484326 上传时间:2018-08-08 格式:PPT 页数:43 大小:291.47KB
返回 下载 相关 举报
数据库数据的定义(SQL语言)_第1页
第1页 / 共43页
数据库数据的定义(SQL语言)_第2页
第2页 / 共43页
数据库数据的定义(SQL语言)_第3页
第3页 / 共43页
数据库数据的定义(SQL语言)_第4页
第4页 / 共43页
数据库数据的定义(SQL语言)_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《数据库数据的定义(SQL语言)》由会员分享,可在线阅读,更多相关《数据库数据的定义(SQL语言)(43页珍藏版)》请在金锄头文库上搜索。

1、第二章 关系数据库1 关系数据结构及形式化定义2 数据的定义(SQL语言)关系的完整性关系操作关系数据的定义lSQL语言l数据的定义SQL概述lSQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言lSQL是一个通用的、功能极强的关系数据库语言SQL语言功能概述四部分:数据定义功能、数据控制功能、数据查询功 能和数据操纵功能。 二、数据类型lSQL中域的概念用数据类型来实现l定义表的属性时 需要指明其数据类型及长度 l选用哪种数据类型 n取值范围 n要做哪些运算 二、数据类型数据类类型含义义CHAR(n)长长度为为n的定长长字符串VARCHAR(n)

2、最大长长度为为n的变长变长 字符串INT长长整数(也可以写作INTEGER)SMALLINT短整数NUMERIC(p,d)定点数,由p位数字(不包括符号、小数点)组组成,小数后面有d位 数字 REAL取决于机器精度的浮点数Double Precision取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少为为n位数字DATE日期,包含年、月、日,格式为为YYYY-MM-DDTIME时间时间 ,包含一日的时时、分、秒,格式为为HH:MM:SS数据定义 SQL的数据定义功能: 模式定义、表定义、视图和索引的定义 数据库的定义l数据库定义的语法格式:lCREATE DATABASE 例:创建

3、一个学生选课数据库,取名为StudentInfo关键字CREATE DATABASE StudentInfo数据库的删除l数据库删除的语法格式:lDROP DATABASE 例:将数据库StudentInfo删除关键字DROP DATABASE StudentInfo定义基本表使用SQL语言中的CREATE TABLE语句实现,其一般格式为: CREATE TABLE (列级完整性约 束定义 , 列级完整性约 束定义 , 表级完整性约束定义 ) 学生学号姓名性别系别年龄课程选课课程号课程名学分成绩关系模式关系模式l学生(学号,姓名,性别,年龄,所在系 )l课程(课程号,课程名,学分)l选课(学

4、号,课程号,成绩)关系列名说明数据类型约束说明Sno学号字符串,长度为10主键Sname姓名字符串,长度为8非空值Ssex性别字符串,长度为1非空值Sage年龄整数允许空值Sdept所在系字符串,长度为15非空值列名说明数据类型约束说明 Cno课程号字符串,长度 为6主键Cname课程名字符串,长度 为20非空值Credits学分整数允许为 空值列名说明数据类型约束说明 Sno学号字符串,长度为10主键 Cno课程号字符串,长度为 6主键Grade成绩整数允许为 空值Courses表students表 SC表学生表Student例5 建立“学生”表Student,学号是主码。CREATE TA

5、BLE Student (Sno CHAR(10) PRIMARY KEY,/* 列级完整性 约束条件*/ Sname CHAR(8) , Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(15); 主码课程表Course例6 建立一个“课程”表CourseCREATE TABLE Course( Cno CHAR(6) PRIMARY KEY,Cname CHAR(20), Ccredit SMALLINT,); 学生选课表SC例7 建立一个“学生选课”表SC CREATE TABLE SC(Sno CHAR(10), Cno CHAR(6), Grade SMAL

6、LINT,PRIMARY KEY (Sno,Cno), ); 如果完整性约束条件涉及到该表的多个属性列, 则必须定义在表级上,否则既可以定义在列级 也可以定义在表级。 在列级完整性约束定义处可以定义的约 束NOT NULL:限制列取值非空。PRIMARY KEY:指定本列为主码。FOREIGN KEY:定义本列为引用其他表的外 码。使用形式为: FOREIGN KEY() REFERENCES ( ) UNIQUE:限制列取值不重复。CHECK:限制列的取值范围。DEFAULT:给定列的默认值。约束定义l 列取值非空约束NOT NULL 例:sname char(10) NOT NULL约束定

7、义(续)l 表主码约束l在定义列时定义主码(仅用于单列主码) 列定义 PRIMARY KEY 例: SNO char(7) PRIMARY KEYl在定义完列时定义主码(用于单列或多列主 码,表级约束) PRIMARY KEY () 例: PRIMARY KEY(SNO)PRIMARY KEY(SNO,CNO)约束定义(续)外码引用约束l指明本表外码列引用的表及表中的主码列。 FOREIGN KEY () REFERENCES ()例:FOREIGN KEY (sno)REFERENCES 学生表(sno)约束定义(续)l默认值约束l格式:DEFAULT 默认值l例:定义系的默认值为“计算机系

8、”。DEFAULT 计算机系约束定义(续)lCHECK约束l格式:CHECK (约束表达式)l例:定义成绩大于等于0。CHECK ( grade = 0 )约束定义(续)lUNIQUE约束l在列级约束定义(仅用于单列约束) 列定义 UNIQUE 例: SNAME char(7) UNIQUEl在表级约束定义(用于单列或多列组合约束) UNIQUE ()例: UNIQUE (SNO,CNO)关系列名说明数据类型约束说明 Sno学号字符串,长度为10主键 Sname姓名字符串,长度为8取值唯一 Ssex性别字符串,长度为1取“男”或“女” Sage年龄整数取值范围为 (15 ,45) Sdept所

9、在系字符串,长度为15默认值 “计算机系” 列名说明数据类型约束说明Cno课程号字符串,长度为6主键Cname课程名字符串,长度为 20非空值Credits学分整数取值范围为 (0, 20) 列名说明数据类型约束说明Sno学号字符串,长度为10外键,参照students的主 键 Cno课程号字符串,长度为6外键,参照courses的 主键 Grade成绩整数允许为 空值Courses表students表 SC表主键为(Sno, Cno) 创建学生表CREATE TABLE Student (Sno char ( 7 ) PRIMARY KEY,Sname char ( 10 ) NOT NUL

10、L,Ssex char (2) CHECK (Ssex = 男 OR Ssex = 女), Sage tinyint CHECK (Sage = 15 AND Sage 0),Semester int CHECK (Semester 0),Period int CHECK (Period 0),PRIMARY KEY(Cno) ) 练习lP74 5删除表l当确信不再需要某个表时,可以将其删除l删除表时会将与表有关的所有对象一起删 掉,包括表中的数据。l删除表的语句格式为:DROP TABLE l例:删除test表的语句为: DROP TABLE test数据的定义l基本表的定义与删除 l修改表

11、结构修改表结构 l在定义完表之后,如果需求有变化 ,比如添加列、删除列或修改列定 义,可以使用ALTER TABLE语句实 现。lALTER TABLE语句可以对表添加列 、删除列、修改列的定义、定义主 码、外码,也可以添加和删除约束 。 修改表结构语法ALTER TABLE ALTER COLUMN | ADD | DROP COLUMN | ADD PRIMARY KEY(列名 , n ) | ADD FOREIGN KEY(列名) REFERNECES 表 名(列名)、 | ADD DEFAULT默认值 FOR (列名) | ADD CHECK(约束表达式)示例l例为SC表添加“修课类别

12、”列,此列 的定义为:XKLB char(4)只能为空, 或默认,不 能为NOTNULLALTER TABLE SCADD XKLB char(4) NULL 示例l例3将新添加的XKLB的类型改为char(6)。ALTER TABLE SCALTER COLUMN XKLB char(6)示例l例4删除Course表的XKLB列。 ALTER TABLE Course DROP COLUMN XKLB 例题l将SC表中的Cno设置为course表中Cno列 的外码练习l按下面要求用SQL语句修改表结构l在Students表中插入学生宿舍号一列,定义为: Room char (6)l为Stud

13、ents表中Sage列添加检查约束,要求 Sage的取值范围为(15,45)l将Courses表中的Cname的字符串长度改为16l将Courses表中的Cname的取只设置为唯一取值l删除Students表中学生宿舍号列l为SC表中Grade列添加检查约束,要求Grade的 取值范围为0,100数据完整性约束 l l数据完整性是指数据库中存储的数据数据完整性是指数据库中存储的数据 是有意义的或正确的。是有意义的或正确的。 主要包括三大类:主要包括三大类: 实体完整性实体完整性 参照完整性参照完整性 用户定义的完整性用户定义的完整性实体完整性l l实体完整性是保证关系中的每个元组实体完整性是保

14、证关系中的每个元组 都是可识别的和惟一的。都是可识别的和惟一的。l l l而且表中不允许存在如下的记录而且表中不允许存在如下的记录:无主码值的记录主码值相同的记录参照完整性l l用于描述实体之间的联系。用于描述实体之间的联系。l l参照完整性一般是指多个实体(表)之间的参照完整性一般是指多个实体(表)之间的 关联关系。关联关系。 l l一般用一般用外码外码实现。实现。 外码:取作本表(子表)属性之一的外表(父表外码:取作本表(子表)属性之一的外表(父表 ,主表)主码。,主表)主码。l l主码值先在主表中生成,后在子表中引用主码值先在主表中生成,后在子表中引用外码引用例学生课程修 课(学号,姓名,)(课程号,课程名, )(学号, 课程号, 成绩, )参照完整性规则l参照完整性规则就是定义外码与主码之 间的引用规则。l对于外码,一般应符合如下要求:或者值为空;或者等于其所应用的关系中的某个元组 的主码值。用户定义的完整性l按应用语义,属性数据有:类型与长度限制:方便计算机操方便计算机操 作作取值范围限制:防止属性值与应防止属性值与应 用语义矛盾用语义矛盾语义许可取值范围约束例:成绩取n0 100,n优、良、中、及格、不及格

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

当前位置:首页 > 中学教育 > 教学课件

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