资源描述:
《SQL课件第03章2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三章管理表第二部分本章知识要点了解表的类型及创建熟悉各种数据类型掌握列的各种属性掌握修改表和列的操作熟悉保持数据完整性的各种约束了解表的索引和视图1.修改表的结构1)命令格式ALTERTABLE<数据表名>{ALTERCOLUMN<属性列名>类型(宽度)[NULL
2、NOTNULL]
3、ADD<属性列名>类型(宽度)[NULL
4、NOTNULL][完整性约束][,…n]
5、DROPCOLUMN[<属性列名>[CASCADE︱RESTRICT]][,…n]
6、DROP[CONSTRAINT<约束名>
7、ALL][,…
8、n]}3.4维护数据表2)功能ALTERTABLE:将要修改的当前数据库中的指定数据表的表名。ALTERCOLUMN:修改当前数据库中的指定数据表的指定属性。ADD:向当前数据库中的指定数据表增加指定属性或列级完整性约束。DROPCOLUMN:删除当前数据库中的指定数据表中的指定属性。DROP:删除当前数据库中的指定数据表中的指定列级完整性约束。【例3.15】修改当前数据库“studentcourse”中S表的系属性改成char(25),增加一个入学时间字段,它的数据类型为datetime,并设置默认值为
9、getdate(),最后删除入学时间字段。方法一:使用SQLServerManagementStudio方法二:使用命令。UsestudentcourseGoALTERTABLEsALTERCOLUMN系char(25)GoALTERTABLEsADD入学时间datetimeGoALTERTABLEsADDCONSTRAINTDF_sjDEFAULT(getdate())for入学时间3.4维护数据表2.修改表的名称1)命令格式Sp_rename<原数据表名>,<新数据表名>2)功能重命名当前数据库中的指
10、定数据表名。【例3.16】重命名数据库bookshop的数据表book名称,改为“书籍资料”。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。ExecSp_rename‘book’,‘书籍资料’3.2.6修改数据表1)命令格式DROPTABLE表名2)功能删除表【例3.17】删除当前数据库中的表S。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。DROPTABLES注意:如果只删除表中数据行,而保留表结构Deletetables3
11、.2.7删除数据表3.5表数据完整性数据完整性是为了防止数据库中出现不符合语义的数据,为了维护数据的完整性,数据库管理系统必须提供一种机制来检查数据库的数据是否满足语义规定的条件,这些加在数据库之上的语义约束条件就是数据库中的数据完整性约束条件。83.5.1表主键主键(PRIMARYKEY)约束使用数据表中的一列数据或者多列数据来惟一标识一行数据。也就是说,在数据表中不能存在主键相同的两行数据。而且,位于主键约束下的数据应使用确定的数据,不能输入NULL来代替确定的数值。在管理数据时,应确保每一个数据表都
12、拥有自己惟一的主键,从而实现数据的实体完整性。9CREATEdatabasebookshopGoCREATETABLEbook(书号intidentity(1000,1)PRIMARYKEYCLUSTERED,书名char(20)notnull,出版社char(20),出版日期datetimeDEFAULT(getdate()),单价smallintcheck(单价>0),数量smallintcheck(数量>=0),总价as单价*数量,电子邮件地址varchar(25),check(电子邮件地址like
13、'%@%'),check(出版社in('高教','浙大','电子','中央')))3.5.2外键外键(FOREIGNKEY)约束定义了表之间的关系,主要用来维护两个表之间的一致性。当一个表中的一个列或者多个列的组合和其他表中的主关键字定义相同时,就可以将这些列或者列的组合定义为外关键字,并设定它适合与哪个表中的哪些列相关联。113.5.3CHECK约束CHECK约束通过检查输入表列的数据的值来维护值域的完整性,它就像一个过滤器依次检查每一个要进入数据库的数据,只有符合条件的数据才允许通过。12第13页【例
14、3.2.4】要在当前数据库StudentsInfo中的加入Enrollment表,表中各列的要求见表3-3。第14页CREATETABLEEnrollment(SnoCHAR(10)NOTNULL,CnoCHAR(6)NOTNULL,GradeINT,CONSTRAINTEPKPRIMARYKEY(Sno,Cno),CONSTRAINTESlinkFOREIGNKEY(Sno)REFERENCESStudents(Sno),C