4数据表的创建与管理优质PPT.ppt
《4数据表的创建与管理优质PPT.ppt》由会员分享,可在线阅读,更多相关《4数据表的创建与管理优质PPT.ppt(49页珍藏版)》请在冰豆网上搜索。
![4数据表的创建与管理优质PPT.ppt](https://file1.bdocx.com/fileroot1/2022-10/7/db636eff-e372-4d9a-a5d9-b6b68134f72a/db636eff-e372-4d9a-a5d9-b6b68134f72a1.gif)
以4个字节来存储正负数.可存储范围为:
-(-2147483648至2147483647).smallint:
以2个字节来存储正负数.存储范围为:
-(-32768至32767)tinyint:
是最小的整数类型,仅用1字节,范围:
0至255bigint:
以8个字节存储,是SQLServer2000引入的全新的数据类型,可以存储范围:
(-263到263-1),第二大类:
精确数值数据numeric:
表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.格式写为numeric(p,s)例如:
numeric(10,4),表示共有10位数,其中整数6位,小数4位。
decimal:
和numeric类似。
区别:
numeric类型的列可以带有IDENTITY关键字(唯一标识符)。
第三大类:
近似浮点数值数据float:
用8个字节来存储数据.最多可为53位.范围为:
-1.79E+308至1.79E+308.real:
位数为24,用4个字节,数字范围:
-3.04E+38至3.04E+38第四大类:
日期时间数据datatime:
表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.smalldatetime:
表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.,第五大类:
字符串数据char(n):
长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.例如:
char(10)Varchar(n):
变长字符型数据,最短为1字节,最长为8000个字节,尾部的空白会去掉.text:
长专门用于存储数量庞大的变长字符数据,,最长可以存放2G(231-1个字符)的数据.,第六大类:
Unincode字符串数据nchar:
长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.nvarchar:
可变长度,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.ntext:
可变长度,最短为1字节,最长为230-1个unicode数据.尾部的空白会去掉,储存一个字符需要2个字节.,第七大类:
货币数据类型money:
记录金额范围为:
-92233720368577.5808至92233720368577.5807.需要8个字节.smallmoney:
-214748.3648至214748.36487.需要4个字节.第八大类:
标记数据timestamp:
该数据类型在每一个表中是唯一的!
当表中的一个记录更改时,该记录的timestamp字段会自动更新.,第九大类:
二进制码字符串数据binary:
固定长度的二进制码字符串字段,最短为1,最长为8000.varbinary:
与binary差异为数据尾部是00时,varbinary会将其去掉image:
为可变长度的二进制码字符串,最长2G.,4.3表结构的建立和删除,1、表的建立表是包含数据库中所有数据的数据库对象,用来存储各种各样的信息。
在SQLServer2000中,一个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列。
在同一数据库的不同表中,可以有相同的字段,但在同一个表中不允许有相同的字段,而且每个字段都要求数据类型相同。
一般的SQL建表语句形式CREATETABLE表名表约束(列名1数据类型缺省值1,列约束1列名2数据类型缺省值2,列约束2列名n数据类型缺省值n,列约束n),例4-1创建三张表,表结构如下:
Student表结构,Course表结构,Sc表结构,CREATETABLEStudent(SnoCHAR(7)PRIMARYKEY,SnameCHAR(10)NOTNULL,SsexCHAR
(2)DEFAULT男,SageTINYINT,SdeptCHAR(20),),CREATETABLECourse(CnoCHAR(10)PRIMARYKEY,CnameCHAR(20)NOTNULL,CcreditTINYINTDEFAULT3,SemesterTINYINT,),CREATETABLESc(SnoCHAR(7),CnoCHAR(10),GradeFLOAT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno),2、表的删除删除表的命令一般形式DROPTABLE表名例4-2删除教师表DROPTABLEteacher,4.4表结构的扩充和修改1、修改表的命令一般形式ALTERTABLE表名ADD列名数据类型NULL/NOTNULL|ALTERCOLUMN列名数据类型NULL|NOTNULL|DROPCOLUMN列名,例4-3在student中增加住址列ALTERTABLEstudentADDaddressCHAR(50)例4-4修改student表中的sdept字段,将数据类型长度为30ALTERTABLEstudentALTERCOLUMNsdeptchar(30)例4-5把Student表中的Sdept列删除。
ALTERTABLEStudentDROPCOLUMNSdept,2添加主关键字ALTERTABLE表名ADDCONSTRAINT约束名PRIMARYKEY(主键列)3、删除主关键字ALTERTABLE表名DROPCONSTRAINT约束名4补充定义外来关键字ALTERTABLE表名-1ADDCONSTRAINT约束名FOREIGNKEY(外来关键字名)REFERENCES(表名-2)5删除外来关键字ALTERTABLE表名DROP外来关键字名,例4-6补充定义student表的主关键字。
ALTERTABLEStudentADDCONSTRAINTpk_studentPRIMARYKEY(Sno)例4-7、删除course表中的主关键字。
ALTERTABLEcourseDROPpk_course例4-8、修改sc表,在sno字段上创建外键约束。
ALTERTABLEscADDCONSTRAINTfk_sc_studentFOREIGNKEY(sno)REFERENCESstudent(sno),例4-9、删除sc表中sno字段上的外键约束ALTERTABLEscDROPfk_sc_student例4-10、向Student表增加“入学时间”列,其数据类型为日期型。
ALTERTABLEStudentADDScomedateDATETIME例4-11、将年龄的数据类型改为半字长整数。
ALTERTABLEStudentALTERCOLUMNSageSMALLINT,4.5约束,约束定义了必须遵循的用于维护数据一致性和正确性的规则,是强制实现数据完整性的途径。
约束分类:
主键约束外键约束唯一值约束检查约束默认约束,主键约束,表中常有一列或列的组合,其值能惟一标识表中的每一行,这样的一列或列的组合称为表的主键(PRIMARYKEY),通过主键可以强制表的实体完整性。
定义了主键约束的列具有以下特点:
每个表只能定义一个主键。
主键值不可为空(NULL)。
主键值不可重复。
若主键是由多列组成时,某一列上的值可以重复,但多列的组合值必须是惟一的。
外键约束,一个数据库中可能包含多个表,可以通过外键(FOREIGNKEY)使这些表关联起来。
外键是由表中的一列或多列组成的。
如在A表中有一个字段的取值只能是B表中某字段的取值之一,则在A表该字段上创建外键约束,A表称为从表,B表称为主表。
定义外键约束的列具有以下特点:
外键的取值可以为空(NULL)。
外键的取值可以重复,但必须是它所引用列(在主表中)的取值之一。
引用列必须是定义了主键约束或惟一约束的列。
唯一性约束(UNIQUE),UNIQUE用来限制不受主键约束的列上的数据的唯一性。
一个表可以放置多个UNIQUE约束语法:
CONSTRAINTconstraint_nameUNIQUE(列名),例3-12为student表添加身份证号列id,并为id列添加唯一值约束。
ALTERTABLEstudentADDidBIGINTCONSTRAINTunq_idUNIQUE注:
UNIQUE约束列允许有NULL值,但最多只能有一个NULL值,否则认为重复。
例3-13为course表的cname列添加唯一值约束。
ALTERTABLEcourseADDCONSTRAINTunq_cnameUNIQUE(cname),检查约束(CHECK),CHECK约束用来指定某列的可取值范围。
通过限制输入值强制控制域的完整性。
语法:
CONSTRAINTconstraint_nameCHECK(检查条件)例3-14限制student表中的ssex列只能添入值为男或女。
ALTERTABLEstudentADDCONSTRAINTcheck_ssexCHECK(ssex=男orssex=女),默认约束(DEFAULT),DEFAULT约束用于给表中指定列赋予一个常量值(默认值)。
CONSTRAINT约束名DEFAULT默认值FOR列名例3-15为student中的sage列添加默认值“19”。
ALTERTABLEstudentADDCONSTRAINTdefault_sageDEFAULT19FORsage,4.6实现数据完整性,数据完整性是指数据的正确性、一致性和安全性,它是衡量数据库中数据质量好坏的重要标准。
三种完整性类型:
实体完整性参照完整性域完整性,域完整性,域完整性又称为列完整性,用以指定列的数据输入是否具有正确的数据类型、格式以及有效的数据范围。
实体完整性,实体完整性又称为行完整性。
这里的实体是指表中的记录,一个实体就是表的一条记录。
实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。
参照完整性,参照完整性又称为引用完整性,参照完整性保证主表(被参照表)中的数据与从表(参照表)中数据的一致性。
在SQLServer2000中,参照完整性的是通过定义外键与主键之间或外键与惟一键之间的对应关系实现的。
参照完整性,如果定义了两个表之间的参照完整性,则要求如下。
从表不能引用不存在的键值。
如果主表中的键值更改了,那么在整个数据库中,对从表中该键值的所有引用要进行一致的更改。
如果要删除主表中的某一记录,应先删除从表中与该记录匹配的相关记录。
参照完整性示意图,4.7数据操纵,1、插入数据1)用values子句向表中插入数据INSERT语句形式为:
INSERTINTO表名(列名1,列名2)VALUES(常量1,常量2);
例1将新生记录(95011,陈平,男,信息系