SQL数据库创建表与完整性约束课件.ppt
《SQL数据库创建表与完整性约束课件.ppt》由会员分享,可在线阅读,更多相关《SQL数据库创建表与完整性约束课件.ppt(68页珍藏版)》请在三一办公上搜索。
1、4.1.3 SQL语言功能概述,四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。,4.1.3 SQL语言功能概述SQL功能命令动词数据查询SE,4.2 SQL的数据类型,数值型 字符串型日期时间型货币型,4.2 SQL的数据类型数值型,数值型,准确型 整数Bigint: 8字节, Int:4字节Smallint:2字节, Tinyint:1字节 Bit:1位,存储1或0小数Numeric(p,q)或Decimal(p,q), 其中:p为数字位长度,q:小数位长度。近似型 Float:8字节 Real:4字节,数值型准确型,字符串型,普通编码字符串类型统一字符编码字符串类型二进制
2、字符串类型,字符串型普通编码字符串类型,普通编码字符串类型,Char(n):定长存储,n=8000 Varchar(n):不定长存储(按实际长度存储),长度最大不超过n , n=8000 注:n 为字符个数Text:存储大于8000字节的文本,普通编码字符串类型Char(n):定长存储,n=8000,统一字符编码字符串类型,nchar(n):定长存储,n=4000 nvarchar(n):不定长存储,长度最大不超过n , n=4000 ntext:存储大于8000字节的文本特点:每个字符占两个字节,统一字符编码字符串类型nchar(n):定长存储,n=40,二进制字符串类型,Binary(n)
3、:固定长度,n = 8000。Varbinary(n):可变长度,n 8000 。注:n为二进制数据的字节数image:大容量、可变长二进制字符数据,可用于存储文件。,二进制字符串类型Binary(n):固定长度,n = 80,日期时间型,Datetime:8字节,年月日时分秒毫秒(例:2001/08/03 10:30:00.000 ) SmallDateTime:4字节,年月日时分 (例: 2001/08/03 10:30:00 )日期、时间的输入格式,日期时间型Datetime:8字节,年月日时分秒毫秒,货币类型,Money: 8 个字节,精确到货币单位的千分之十。Smallmoney:
4、4 个字节,精确到货币单位的千分之十。限制到小数点后 4 位。可以带有适当的货币符号。例如,100 英镑可表示为 100。,货币类型Money: 8 个字节,精确到货币单位的千分之十。,4.3 基本表的定义、删除及修改,4.3.1 基本表的定义与删除 4.3.2 修改表结构,4.3 基本表的定义、删除及修改 4.3.1 基本表的定义与,4.3.1 基本表的定义与删除,1定义基本表 使用SQL语言中的CREATE TABLE语句实现,其一般格式为:CREATE TABLE ( 列级完整性约束定义, 列级完整性约束定义 , 表级完整性约束定义 ),4.3.1 基本表的定义与删除1定义基本表,在列级
5、完整性约束定义处可以定义的约束,NOT NULL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARY KEY:指定本列为主码。FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:FOREIGN KEY() REFERENCES (),在列级完整性约束定义处可以定义的约束NOT NULL:限制列,几点说明,NOT NULL和DEFAULT只能是列级完整性约束;其他约束均可在表级完整性约束处定义。注意以下几点:第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;第二,如果表的主码由多个列
6、组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARY KEY(列1,列2 );第三,如果在表级完整性约束处定义外码,则“FOREIGN KEY ()”部分不能省。,几点说明NOT NULL和DEFAULT只能是列级完整性约束,约束定义, 列取值非空约束 NOT NULL例:sname char(10) NOT NULL,约束定义 列取值非空约束,约束定义(续), 表主码约束在定义列时定义主码(仅用于单列主码)列定义 PRIMARY KEY例: SNO char(7) PRIMARY KEY在定义完列时定义主码(用于单列或多列主码)PRIMARY KEY ()例: P
7、RIMARY KEY(SNO) PRIMARY KEY(SNO,CNO),约束定义(续) 表主码约束,约束定义(续),外码引用约束,指明本表外码列引用的表及表中的主码列。, FOREIGN KEY ()REFERENCES (),例: FOREIGN KEY (sno) REFERENCES 学生表(sno),约束定义(续)外码引用约束指明本表外码列引用的表及表中的主,约束定义(续),默认值约束格式:DEFAULT 默认值例:定义系的默认值为“计算机系”。 DEFAULT 计算机系,约束定义(续)默认值约束,约束定义(续),CHECK约束格式:CHECK (约束表达式)例:定义成绩大于等于0。
8、 CHECK ( grade = 0 ),约束定义(续)CHECK约束,约束定义(续),UNIQUE约束在列级约束定义(仅用于单列约束)列定义 UNIQUE例: SNAME char(7) UNIQUE在表级约束定义(用于单列或多列组合约束)UNIQUE ()例: UNIQUE (SNO,CNO),约束定义(续)UNIQUE约束,用于限制在一个列中不能有重复的值。用在事实上具有惟一性的属性列上,比如每个人的身份证号码、驾驶证号码等均不能有重复值。注意:允许有一个空值;在一个表中可以定义多个UNIQUE约束;可以在一个列或多个列上定义UNIQUE约束。,用于限制在一个列中不能有重复的值。,创建学
9、生表,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 =45), Sdept char (20 ) DEFAULT 计算机系),创建学生表CREATE TABLE Student (,创建课程表,CREATE TABLE Course ( Cno char(10) NOT NULL, Cname char(20) NOT
10、NULL, Ccredit tinyint CHECK (Ccredit 0), Semester tinyint CHECK (Semester 0), Period int CHECK (Period 0), PRIMARY KEY(Cno) ),创建课程表CREATE TABLE Course (,创建SC表,CREATE TABLE SC ( Sno char(7) NOT NULL, Cno char(10) NOT NULL, Grade tinyint, CHECK (Grade = 0 and Grade = 100), PRIMARY KEY ( Sno, Cno ), FO
11、REIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) ),创建SC表CREATE TABLE SC (,删除表,当确信不再需要某个表时,可以将其删除删除表时会将与表有关的所有对象一起删掉,包括表中的数据。删除表的语句格式为:DROP TABLE , 例:删除test表的语句为:DROP TABLE test,删除表当确信不再需要某个表时,可以将其删除,4.3.2 修改表结构,在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABL
12、E语句实现。ALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。,4.3.2 修改表结构 在定义完表之后,如果需求有变化,比如,修改表结构语法,ALTER TABLE ALTER COLUMN | ADD COLUMN | DROP COLUMN | ADD PRIMARY KEY(列名 , n ) | ADD FOREIGN KEY(列名) REFERNECES 表名(列名),修改表结构语法ALTER TABLE ,示例,例2为SC表添加“修课类别”列,此列的定义为:XKLB char(4)ALTER TABLE SC ADD XKLB ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 创建 完整性 约束 课件

链接地址:https://www.31ppt.com/p-1288869.html