SQL数据库创建表与完整性约束课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《SQL数据库创建表与完整性约束课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 创建 完整性 约束 课件
- 资源描述:
-
1、4.1.3 SQL语言功能概述SQL功能功能命令动词命令动词数据查询数据查询SELECT数据定义数据定义CREATE、DROP、ALTER数据操纵数据操纵INSERT、UPDATE、DELETE数据控制数据控制GRANT、REVOKE四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。4.2 SQL的数据类型 数值型 字符串型 日期时间型 货币型数值型准确型 整数Bigint:8字节,Int:4字节Smallint:2字节,Tinyint:1字节 Bit:1位,存储1或0小数Numeric(p,q)或Decimal(p,q),其中:p为数字位长度,q:小数位长度。近似型 Float
2、:8字节 Real:4字节字符串型 普通编码字符串类型 统一字符编码字符串类型 二进制字符串类型普通编码字符串类型 Char(n):定长存储,n=8000 Varchar(n):不定长存储(按实际长度存储),长度最大不超过n,n=8000 注:n 为字符个数 Text:存储大于8000字节的文本统一字符编码字符串类型 nchar(n):定长存储,n=4000 nvarchar(n):不定长存储,长度最大不超过n,n=4000 ntext:存储大于8000字节的文本 特点:每个字符占两个字节二进制字符串类型 Binary(n):固定长度,n=8000。Varbinary(n):可变长度,n 80
3、00。注:n为二进制数据的字节数 image:大容量、可变长二进制字符数据,可用于存储文件。日期时间型日期时间型 Datetime:8字节,年月日时分秒毫秒(例:2001/08/03 10:30:00.000)SmallDateTime:4字节,年月日时分 (例:2001/08/03 10:30:00)日期、时间的输入格式货币类型 Money:8 个字节,精确到货币单位的千分之十。Smallmoney:4 个字节,精确到货币单位的千分之十。限制到小数点后 4 位。可以带有适当的货币符号。例如,100 英镑可表示为 100。4.3 基本表的定义、删除及修改 4.3.1 基本表的定义与删除 4.3
4、.2 修改表结构 4.3.1 基本表的定义与删除 1定义基本表 使用SQL语言中的CREATE TABLE语句实现,其一般格式为:CREATE TABLE (列级完整性约束定义,列级完整性约束定义 ,表级完整性约束定义 )在列级完整性约束定义处可以定义的约束 NOT NULL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARY KEY:指定本列为主码。FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:FOREIGN KEY()REFERENCES()几点说明 NOT NULL和DEFAULT只能是列级完整性约
5、束;其他约束均可在表级完整性约束处定义。注意以下几点:第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;第二,如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARY KEY(列1,列2 );第三,如果在表级完整性约束处定义外码,则“FOREIGN KEY()”部分不能省。约束定义 列取值非空约束 NOT NULL例:sname char(10)NOT NULL约束定义(续)表主码约束表主码约束 在定义列时定义主码(仅用于单列主码)列定义 PRIMARY KEY例:SNO char(7)PRIMARY KEY 在定义完列
6、时定义主码(用于单列或多列主码)PRIMARY KEY()例:PRIMARY KEY(SNO)PRIMARY KEY(SNO,CNO)约束定义(续)外码引用约束外码引用约束 指明本表外码列引用的表及表中的主码列。FOREIGN KEY()REFERENCES()例:FOREIGN KEY(sno)REFERENCES 学生表(sno)约束定义(续)默认值约束默认值约束 格式:DEFAULT 默认值 例:定义系的默认值为“计算机系”。DEFAULT 计算机系约束定义(续)CHECKCHECK约束约束 格式:CHECK(约束表达式)例:定义成绩大于等于0。CHECK(grade=0)约束定义(续)
7、UNIQUEUNIQUE约束约束 在列级约束定义(仅用于单列约束)列定义 UNIQUE例:SNAME char(7)UNIQUE 在表级约束定义(用于单列或多列组合约束)UNIQUE()例:UNIQUE(SNO,CNO)用于限制在一个列中不能有重复的值。用于限制在一个列中不能有重复的值。用在事实上具有惟一性的属性列上,比如每用在事实上具有惟一性的属性列上,比如每个人的身份证号码、驾驶证号码等均不能有个人的身份证号码、驾驶证号码等均不能有重复值。重复值。注意:注意:允许有一个空值;允许有一个空值;在一个表中可以定义多个在一个表中可以定义多个UNIQUE约束;约束;可以在一个列或多个列上定义可以在
8、一个列或多个列上定义UNIQUE约约束。束。创建学生表CREATE TABLE Student(Sno char(7)PRIMARY KEY,Sname char(10)NOT NULL,Ssex char(2)CHECK(Ssex=男 OR Ssex=女),Sage tinyint CHECK(Sage=15 AND Sage 0),Semester tinyint CHECK(Semester 0),Period int CHECK(Period 0),PRIMARY KEY(Cno)创建SC表CREATE TABLE SC(Sno char(7)NOT NULL,Cno char(10)
9、NOT NULL,Grade tinyint,CHECK(Grade=0 and Grade=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno)删除表 当确信不再需要某个表时,可以将其删除 删除表时会将与表有关的所有对象一起删掉,包括表中的数据。删除表的语句格式为:DROP TABLE ,例:删除test表的语句为:DROP TABLE test4.3.2 修改表结构 在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使
10、用ALTER TABLE语句实现。ALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。修改表结构语法ALTER TABLE ALTER COLUMN|ADD COLUMN|DROP COLUMN|ADD PRIMARY KEY(列名,n )|ADD FOREIGN KEY(列名)REFERNECES 表名(列名)示例 例2为SC表添加“修课类别”列,此列的定义为:XKLB char(4)ALTER TABLE SC ADD XKLB char(4)NULL 示例 例3将新添加的XKLB的类型改为 char(6)。ALTER TABLE SC A
11、LTER COLUMN XKLB char(6)示例 例4删除Course表的Period列。ALTER TABLE Course DROP COLUMN Period 指指数数据的正确性、有效性和相容性据的正确性、有效性和相容性 然而大多然而大多数数情情况况下,我下,我们们所提到的完整性,所提到的完整性,实际实际是指完整性是指完整性规则规则为为保保证证完整性,完整性,数数据据应该满应该满足的足的约约束束条条件,又件,又称为称为完整性完整性约约束束完整性的原义完整性的原义关系模型中的完整性关系模型中的完整性 关系完整性关系完整性 在关系模型中的地位在关系模型中的地位 三要素之一(关系三要素之一
12、(关系,关系完整性关系完整性,关系操作)关系操作)三种类型三种类型 实体完整性;实体完整性;参照完整性;参照完整性;用户定义完整性;用户定义完整性;三种关系完整性规则三种关系完整性规则 解决现实世界的三个问题解决现实世界的三个问题 如何保证一个实体是可识别(区分)的如何保证一个实体是可识别(区分)的 方法:实体完整性方法:实体完整性 如何保证能够从一个实体找到另一个相关联的实体,而不如何保证能够从一个实体找到另一个相关联的实体,而不会出现找不到的情况会出现找不到的情况 方法:参照完整性方法:参照完整性 如何保证用于描述实体的属性,其取值是合理的如何保证用于描述实体的属性,其取值是合理的 方法:
13、用户定义完整性方法:用户定义完整性三种关系完整性规则三种关系完整性规则 实体完整性实体完整性 目的:保证每个元组(所代表的实体)是可标识目的:保证每个元组(所代表的实体)是可标识(区分)的(区分)的 规则:元组在主码的每个属性上取唯一值,且不规则:元组在主码的每个属性上取唯一值,且不能为空能为空 意义:意义:关系往往对应一个实体集,这时关系中的每个元关系往往对应一个实体集,这时关系中的每个元组对应一个实体组对应一个实体 现实世界中的实体是可区分的,关系中的元组也现实世界中的实体是可区分的,关系中的元组也必须是可区分的必须是可区分的 主码起到唯一标识(区分)每个元组的作用,所主码起到唯一标识(区
展开阅读全文