欢迎来到天天文库
浏览记录
ID:52268415
大小:1.39 MB
页数:68页
时间:2020-04-03
《SQL数据库创建表与完整性约束.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.1.3SQL语言功能概述SQL功能命令动词数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。4.2SQL的数据类型数值型字符串型日期时间型货币型数值型准确型整数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<=8000Varchar(n):不定长存储(按实际长度存储),长度最大不超过n,n<=8000注:n为字符个数Text:存储大于8000字节的文本统一字符编码字符串类型nchar(n):定长存储,n<=4000nvarchar(n):不定长存储,长度最大不超过n,n<=4000ntext:存储大于8000字节的文本特点:每个字符占两个字节二进制字符串类型Binary(n):固定长度,n<=8000。Varbinary(n):可变长度,n<=8000。注:n为二进制数据的字节数i
3、mage:大容量、可变长二进制字符数据,可用于存储文件。日期时间型Datetime:8字节,年月日时分秒毫秒(例:‘2001/08/0310:30:00.000’)SmallDateTime:4字节,年月日时分(例:‘2001/08/0310:30:00’)日期、时间的输入格式货币类型Money:8个字节,精确到货币单位的千分之十。Smallmoney:4个字节,精确到货币单位的千分之十。限制到小数点后4位。可以带有适当的货币符号。例如,100英镑可表示为£100。4.3基本表的定义、删除及修改4.3.1基本表的定义与删除4.3.2修改表结构4.3.1基本表的定义与删除1
4、.定义基本表使用SQL语言中的CREATETABLE语句实现,其一般格式为:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束定义]{,<列名><数据类型>[列级完整性约束定义]…}[,表级完整性约束定义])在列级完整性约束定义处可以定义的约束NOTNULL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARYKEY:指定本列为主码。FOREIGNKEY:定义本列为引用其他表的外码。使用形式为:[FOREIGNKEY(<外码列名>)]REFERENCES<外表名>(<外表列名>)几点说
5、明NOTNULL和DEFAULT只能是列级完整性约束;其他约束均可在表级完整性约束处定义。注意以下几点:第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;第二,如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARYKEY(列1{[,列2]…});第三,如果在表级完整性约束处定义外码,则“FOREIGNKEY(<外码列名>)”部分不能省。约束定义①列取值非空约束<列名><类型>NOTNULL例:snamechar(10)NOTNULL约束定义(续)②表主码约束在定义列时定义主码(仅用于单列主码)列定
6、义PRIMARYKEY例:SNOchar(7)PRIMARYKEY在定义完列时定义主码(用于单列或多列主码)PRIMARYKEY(<列名序列>)例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,CNO)约束定义(续)③外码引用约束指明本表外码列引用的表及表中的主码列。[FOREIGNKEY(<本表列名>)]REFERENCES<外表名>(<外表主码列名>)例:FOREIGNKEY(sno)REFERENCES学生表(sno)约束定义(续)④默认值约束格式:DEFAULT默认值例:定义系的默认值为“计算机系”。DEFAULT‘计算机系’约束定义(续)⑤CHEC
7、K约束格式:CHECK(约束表达式)例:定义成绩大于等于0。CHECK(grade>=0)约束定义(续)⑥UNIQUE约束在列级约束定义(仅用于单列约束)列定义UNIQUE例:SNAMEchar(7)UNIQUE在表级约束定义(用于单列或多列组合约束)UNIQUE(<列名序列>)例:UNIQUE(SNO,CNO)用于限制在一个列中不能有重复的值。用在事实上具有惟一性的属性列上,比如每个人的身份证号码、驾驶证号码等均不能有重复值。注意:允许有一个空值;在一个表中可以定义多个UNIQUE约束;可以在一个列或多个列上定义UNIQUE
此文档下载收益归作者所有