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

上传人:小飞机 文档编号:5985647 上传时间:2023-09-11 格式:PPT 页数:43 大小:239.50KB
返回 下载 相关 举报
数据库数据的定义(SQL语言).ppt_第1页
第1页 / 共43页
数据库数据的定义(SQL语言).ppt_第2页
第2页 / 共43页
数据库数据的定义(SQL语言).ppt_第3页
第3页 / 共43页
数据库数据的定义(SQL语言).ppt_第4页
第4页 / 共43页
数据库数据的定义(SQL语言).ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《数据库数据的定义(SQL语言).ppt》由会员分享,可在线阅读,更多相关《数据库数据的定义(SQL语言).ppt(43页珍藏版)》请在三一办公上搜索。

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

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

3、(学号,课程号,成绩),关系,Courses表,students表,SC表,学生表Student,例5 建立“学生”表Student,学号是主码。CREATE TABLE Student(Sno CHAR(10)PRIMARY KEY,/*列级完整性约束条件*/Sname CHAR(8),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(15);,主码,课程表Course,例6 建立一个“课程”表Course CREATE TABLE Course(Cno CHAR(6)PRIMARY KEY,Cname CHAR(20),Ccredit SMALLINT,);,学生

4、选课表SC,例7 建立一个“学生选课”表SCCREATE TABLE SC(Sno CHAR(10),Cno CHAR(6),Grade SMALLINT,PRIMARY KEY(Sno,Cno),);,如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。,在列级完整性约束定义处可以定义的约束,NOT NULL:限制列取值非空。PRIMARY KEY:指定本列为主码。FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:FOREIGN KEY()REFERENCES()UNIQUE:限制列取值不重复。CHECK:限制列的取值范围。DEF

5、AULT:给定列的默认值。,约束定义,列取值非空约束 NOT NULL例:sname char(10)NOT NULL,约束定义(续),表主码约束在定义列时定义主码(仅用于单列主码)列定义 PRIMARY KEY例:SNO char(7)PRIMARY KEY在定义完列时定义主码(用于单列或多列主码,表级约束)PRIMARY KEY()例:PRIMARY KEY(SNO)PRIMARY KEY(SNO,CNO),约束定义(续),外码引用约束,指明本表外码列引用的表及表中的主码列。,FOREIGN KEY()REFERENCES(),例:FOREIGN KEY(sno)REFERENCES 学生

6、表(sno),约束定义(续),默认值约束格式:DEFAULT 默认值例:定义系的默认值为“计算机系”。DEFAULT 计算机系,约束定义(续),CHECK约束格式:CHECK(约束表达式)例:定义成绩大于等于0。CHECK(grade=0),约束定义(续),UNIQUE约束在列级约束定义(仅用于单列约束)列定义 UNIQUE例:SNAME char(7)UNIQUE在表级约束定义(用于单列或多列组合约束)UNIQUE()例:UNIQUE(SNO,CNO),关系,Courses表,students表,SC表,主键为(Sno,Cno),创建学生表,CREATE TABLE Student(Sno

7、char(7)PRIMARY KEY,Sname char(10)NOT NULL,Ssex char(2)CHECK(Ssex=男 OR Ssex=女),Sage tinyint CHECK(Sage=15 AND Sage=45),Sdept char(20)DEFAULT 计算机系),创建课程表,CREATE TABLE Course(Cno char(10)NOT NULL,Cname char(20)NOT NULL,Ccredit int CHECK(Ccredit 0),Semester int CHECK(Semester 0),Period int CHECK(Period

8、0),PRIMARY KEY(Cno),练习,P74 5,删除表,当确信不再需要某个表时,可以将其删除删除表时会将与表有关的所有对象一起删掉,包括表中的数据。删除表的语句格式为:DROP TABLE 例:删除test表的语句为:DROP TABLE test,数据的定义,基本表的定义与删除 修改表结构,修改表结构,在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。ALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。,修改表结构语法,ALTER TABLE ALTER COLUMN|ADD|D

9、ROP COLUMN|ADD PRIMARY KEY(列名,n)|ADD FOREIGN KEY(列名)REFERNECES 表名(列名)、|ADD DEFAULT默认值 FOR(列名)|ADD CHECK(约束表达式),示例,例为SC表添加“修课类别”列,此列的定义为:XKLB char(4),只能为空,或默认,不能为NOT NULL,ALTER TABLE SC ADD XKLB char(4)NULL,示例,例3将新添加的XKLB的类型改为 char(6)。,ALTER TABLE SC ALTER COLUMN XKLB char(6),示例,例4删除Course表的XKLB列。,AL

10、TER TABLE Course DROP COLUMN XKLB,例题,将SC表中的Cno设置为course表中Cno列的外码,练习,按下面要求用SQL语句修改表结构在Students表中插入学生宿舍号一列,定义为:Room char(6)为Students表中Sage列添加检查约束,要求Sage的取值范围为(15,45)将Courses表中的Cname的字符串长度改为16将Courses表中的Cname的取只设置为唯一取值删除Students表中学生宿舍号列为SC表中Grade列添加检查约束,要求Grade的取值范围为0,100,数据完整性约束,数据完整性是指数据库中存储的数据是有意义的或

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号