1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,数据库技术与应用基础教材编写组,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,第,3,章 数据表的管理与维护,数据表的创建和管理,、,表数据的管理,、,数据完整性管理,创建与管理数据表的方法、数据完整性约束,2,学习目标,了解:,数据完整性的类型。,理解:,使用企业管理器和,T-SQL,命令管理表中内容;使用企业管理器管理和维护表结构;数据库完整性的概念。,掌握:,使用企业管理器和,T-SQL,命令创建表;使用,T-SQL,命令管理和维护表结构;数据完整性的操作。,3,
2、3.1,数据表的创建和管理,3.1.1,使用企业管理器创建数据表,3.1.2 使用T-SQL语言创建数据表,3.1.3 使用企业管理器对数据表进行维护,3.1.4 使用T-SQL语言对数据表进行维护,4,3.1.1,使用企业管理器创建数据表,数据库技术与应用基础教材编写组,演示操作,5,3.1.2,使用,T-SQL,语言创建数据表,CREATE TABLE,database_name.owner.|owner.table_name,(,|column_name AS computed_column_expression,|=CONSTRAINT constraint_name,|PRIMARY
3、 KEY|UNIQUE),ONfilegroup|DEFAULT,TEXTIMAGE_ONfilegroup|DEFAULT,=column_name data_type,COLLATE,DEFAULT constant_expression,6,3.1.2,使用,T-SQL,语言创建数据表,举例,【,例,3.1】,使用查询分析器在数据库,Student_db,中创建,Student,学生信息表,要求包含,S_NO,(学号)、,NAME,(姓名)、,AGE,(年龄)、,SEX,(性别)信息,其中学号不能为空。,操作方法:,7,3.1.2,使用,T-SQL,语言创建数据表,举例,【,例,3.5】
4、,建立一个供货商和货物的数据库,S_P_DB,,此数据库存在以下关系。,(,1,)供货商,S,(,S_NO,,,S_NAME,,,STATUS,,,CITY,)。分别表示供货商代码、名称、身份、所在城市。,(,2,)货物,P,(,P_NO,,,P_NAME,,,WEIGHT,,,CITY,)。分别表示货物的编号、名称、重量和产地。,要求如下:,(,1,)供货商代码不能为空,且值是惟一的,供货商的名称也是惟一的。,(,2,)货物编号不能为空,且值惟一,货物的名称也不能为空。,(,3,)使用以下,T-SQL,语句创建数据库,S_P_DB,,创建关系,S,和关系,P,为表,S,和,P,:,/*,创建
5、数据库,S_P_DB*/,CREATE DATABASE S_P_DB,/*,创建供货商信息表*,/,CREATE TABLE S,(S_NO CHAR(9)NOT NULL UNIQUE,S_NAME CHAR(20)UNIQUE,STATUS CHAR(9),CITY CHAR(10),PRIMARY KEY(S_NO),/*,创建货物信息表*,/,CREATE TABLE P,(P_NO CHAR(9)NOT NULL UNIQUE,P_NAME CHAR(20)UNIQUE,WEIGHT CHAR(9),CITY CHAR(10),PRIMARY KEY(P_NO),8,3.1.3,使
6、用企业管理器对数据表进行维护,使用企业管理器查看数据表的相关设置,9,3.1.3,使用企业管理器对数据表进行维护,使用企业管理器更改数据表名称,10,3.1.3,使用企业管理器对数据表进行维护,使用企业管理器删除数据表,11,3.1.4,使用,T-SQL,语言对数据表进行维护,修改数据表,ALTER TABLE table,ALTER COLUMN column_name,new_data_type (precision ,scale ),COLLATE ,NULL|NOT NULL,|ADD|DROP ROWGUIDCOL,|ADD|column_name AS computed_colum
7、n_expression ,.n,|WITH CHECK|WITH NOCHECK ADD ,.n,|DROP CONSTRAINT constraint_name|COLUMN column ,.n,|CHECK|NOCHECK CONSTRAINT ALL|constraint_name ,.n ,|ENABLE|DISABLE TRIGGER ALL|trigger_name ,.n ,12,3.1.4,使用,T-SQL,语言对数据表进行维护,【,例,3.6】,在,【,例,3.1】,的,Student,学生信息表中增加联系住址,ADDRESS,字段。,增加该字段的语句如下:,ALTER
8、TABLE Student ADD ADDRESS varchar(30),【,例,3.7】,对,【,例,3.6】,中增加的字段,ADDRESS,的宽度由,30,修改为,50,。,修改该字段的语句如下:,ALTER TABLE Student Alter column ADDRESS varchar(50),注意:在新增加字段时,不管原来的表中是否有数据,新增加的字段值一律为空。,【,例,3.8】,删除,【,例,3.6】,中增加的,ADDRESS,字段。,删除该字段的语句如下:,ALTER TABLE Student drop column ADDRESS,13,3.1.4,使用,T-SQL,
9、语言对数据表进行维护,删除数据表,语法格式如下:,DROP TABLE table_name,【,例,3.9】,删除当前数据库中的,Student_1,学生信息表。,删除该表的语句如下:,Drop TABLE Student_1,【,例,3.11】,删除指定数据库中的表。假设,stu,数据库内有,temp1,表,可以在任何数据库内执行如下语句,完成删除,temp1,表的操作。,删除该表的语句如下:,DROP TABLE stu.dbo.temp1,14,3.2,表数据的维护,3.2.1,使用企业管理器管理表数据,3.2.2 使用T-SQL语言管理表数据,15,3.2.1,使用企业管理器管理表数
10、据,使用表设计器浏览、添加、修改、删除数据,16,3.2.1,使用企业管理器管理表数据,使用数据库关系图创建关系,数据库关系图是以图形方式显示部分或全部数据库结构的关系图。,关系图可用来创建和修改表、列、关系、键、索引和约束。,17,3.2.2,使用,T-SQL,语言管理表数据,表数据的添加,INSERT INTO table_or_view(column_list)data_values,【,例,3.13】,假设数据库,Student_db,中已经创建好了课程信息数据表,C_Info,。试将新课程记录(,9720044,,网络技术与应用,选修,,3,)添加到课程信息数据表,C_Info,中。
11、,添加新课程记录的语句如下:,INSERT INTO C_Info VALUES(9720044,网络技术与应用,选修,3,null),18,3.2.2,使用,T-SQL,语言管理表数据,表数据的修改,UPDATE,table_name|view_name,SET,column_name=expression|DEFAULT|NULL,|variable=expression,|variable=column=expression ,.n,FROM ,.n ,19,3.2.2,使用,T-SQL,语言管理表数据,【,例,3.15】,将数据表,C_Info,中所有学分加,1,。,这是无条件的修改数
12、据,使用语句如下:,UPDATE C_Info SET C_Credit=C_Credit+1,【,例,3.16】,将数据表,C_Info,中课程号为,“,9710011,”,的学分减,1,。,这是有条件的修改数据,使用语句如下:,UPDATE C_Info,SET C_Credit=C_Credit-1,WHERE C_NO=9710011,20,3.2.2,使用,T-SQL,语言管理表数据,表数据的删除,DELETE FROM,table_name|view_name,FROM ,.n ,【,例,3.17】,在,student,表中删除所有学生记录,但保留数据表结构。,这是无条件全部删除记
13、录,使用语句如下:,DELETE FROM student,【,例,3.18】,在,C_Info,表中删除课程号为,“,9720045,”,的记录。,这是有条件删除记录。使用语句如下:,DELETE FROM C_Info WHERE C_NO=9720045,21,3.3,数据完整性管理,3.3.1,数据完整性概述,3.3.2,数据完整性的类型,3.3.3,使用企业管理器实现数据完整性的设置,22,3.3.1,数据完整性概述,数据的完整性,是指数据库中数据的正确性、有效性和一致性。,(,1,)正确性是指数据的合法性,例如数值型数据只能包含数字不能包含字母;,(,2,)有效性是指数据是否处在所
14、定义域的有效范围之内;,(,3,)一致性是指同一事实的两个数据应该一致,不一致即是不相容的。,23,3.3.2,数据完整性的类型,数据完整性类型(,4,种),实体完整性,一般用主码约束实现。,域完整性,域完整性是指给定列的输入有效性。如年龄,0,150,,一般用,check,等实现。,引用完整性,一般用外码实现。,用户定义完整性,针对某个特定关系数据库的约束条件。,数据完整性的实现,通过规则、默认、约束和触发器等数据库对象。,24,3.3.3,用企业管理器实现数据完整性设置,【,例,3.19】,使用企业管理器,将,“,课程编号,”,设置成,“,课程信息表,”,的主关键字,并尝试输入已存在的某个课程编号,验证数据库系统如何实现对实体完整性的保护。,【,例,3.20】,使用企业管理器,设置,CHECK,约束,将课程信息表中,“,学分,”,的取值范围设置在,1,到,8,之间,并输入取值范围之外的值,使用验证数据库系统如何实现对域完整性的保护。,演示操作,25,本章小结,表对象,表是包含数据库中所有数据的对象,表定义为列的集合。数据在表中是按行和列的格式组织排列的。,表对象创建的基本方法,企业管理器和,T-SQL,语言。,数据的完整性,是指数据库中数据的正确性、有效性和一致性。,数据完整性有,4,种类型:,实体完整性,域完整性,引用完整性,用户定义完整性。,