模块3数据表管理.ppt_第1页
模块3数据表管理.ppt_第2页
模块3数据表管理.ppt_第3页
模块3数据表管理.ppt_第4页
模块3数据表管理.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2010年6月,课件制作人:王亚楠,1,模块3 数据表管理,CH4,2010年6月,课件制作人:王亚楠,2,目录,本章目标 了解:表的概念和类型 理解:表的设计要素 掌握:创建、修改与删除表结构的DDL语句 掌握:插入、更新与删除表数据的DML语句 掌握:约束的类型和实现方法,本章内容 4.1 表概述 4.2 设计表 4.3 定义表的结构 4.4 操纵表的数据 4.5 定义约束,2010年6月,课件制作人:王亚楠,3,4.1 表概述,4.1.1 表的概念 4.1.2 表的类型,表(Table)是按照行(Row)和列(Column)的格式组织和存储数据的数据库对象。 表的操作: 定义表的结构 :

2、DDL 操纵表的数据 :DML,2010年6月,课件制作人:王亚楠,4,4.1 表概述(续),4.1.1 表的概念 4.1.2 表的类型,(1)基本表 (2)分区表 (3)临时表 (4)系统表,2010年6月,课件制作人:王亚楠,5,4.2 设计表,4.2.1 表的设计要素 4.2.2 数据类型 4.2.3 表的设计实例,2010年6月,课件制作人:王亚楠,6,表的设计实例-student数据库,2010年6月,课件制作人:王亚楠,7,4.2.1 表的设计要素,关系模型已经建立(第3步),如何进行物理结构设计?(第4步),学生(学号,姓名,出生日期,性别,家庭地址,联系电话,所属班号FK),2

3、010年6月,课件制作人:王亚楠,8,4.2.1 表的设计要素(续),表的属性信息:列、列的数据类型、基本属性; 空值属性(Null ability) 计算列(Caculated column) 标识列(Identity column) 设置约束的位置及约束的类型; 设置索引的位置及索引的类型。,2010年6月,课件制作人:王亚楠,9,4.2.2 数据类型,系统数据类型 别名数据类型(T-SQL UDT) 用户定义类型(CLR UDT),字符:char、varchar 精确数值:int、money 近似数值:float、real 二进制:binary、image 日期时间:datetime u

4、nicode、特殊,2010年6月,课件制作人:王亚楠,10,4.3 定义表的结构,4.3.1 创建表结构:CREATE TABLE 4.3.2 查看表结构 4.3.3 修改表结构:ALTER TABLE 4.3.4 删除表结构:DROP TABLE,2010年6月,课件制作人:王亚楠,11,4.3.1 创建表结构,1. 使用SQL Server Management Studio创建表结构 2. 使用T-SQL语句创建表结构,【例4-3】创建班级表class,表结构参见表4-8,不包括约束信息。,2010年6月,课件制作人:王亚楠,12,4.3.1 创建表结构(续),CREATE TABLE

5、 table_name ( column_name data_type NULL |NOT NULL INDENTITY (seed, increment) |column_name AS computed_column_expression ,n ,.n ),2010年6月,课件制作人:王亚楠,13,【例4-4】创建学生表student,表结构参见表4-9,不包括约束信息。 【例4-5】创建带有标识列、计算列的表,表名为compute_table。,2010年6月,课件制作人:王亚楠,14,4.3.3 修改表结构,1. 使用SQL Server Management Studio修改表结构

6、2. 使用T-SQL语句修改表结构,【例4-7】修改表compute_table,在该表上增加一列column5,数据类型为int;在该表上删除列column4;重命名该表的表名为compute。,2010年6月,课件制作人:王亚楠,15,4.3.3 修改表结构(续),ALTER TABLE table_name ALTER COLUMN column_name data_type NULL|NOT NULL |ADD column_name data_type NULL| NOT NULL ,n |DROP COLUMN column_name ,n |ADD ,n |DROP CONSTR

7、AINT constraint_name ,n ,【例4-8】修改学生表student,向表中增加2列。增加“民族”列,列名为st_nation,数据类型为char(2),允许空值;增加“籍贯”列,列名为st_native,数据类型为char(6),允许空值。,2010年6月,课件制作人:王亚楠,16,4.3.4 删除表结构,1. 使用SQL Server Management Studio删除表结构 2. 使用T-SQL语言删除表结构 DROP TABLE table_name ,n,2010年6月,课件制作人:王亚楠,17,4.4 操纵表的数据,4.4.1 插入数据:INSERT 4.4.

8、2 更新数据:UPDATE 4.4.3 删除数据:DELETE,2010年6月,课件制作人:王亚楠,18,4.4.1 插入数据,插入数据:指将一条或多条记录添加到表中。 T-SQL使用INSERT语句实现数据插入。 插入单个记录 插入多个记录,INSERT INTO table_name(column1, column2,) VALUES (value1, value2,),INSERT INTO table_name(column_list) SELECT select_statement,2010年6月,课件制作人:王亚楠,19,4.4.1 插入数据(续),【例4-12】向学生表stude

9、nt中插入一条记录:2005010101,王辰,1988-10-10,女,北京市朝阳区,84981234,01,该记录对应表中的所有列。,【例4-13】向学生表student的部分列中插入一条记录。学号:2005010102,姓名:张意,出生日期:1989-12-1,性别:男,班号:01。,【例4-14】创建一个人员考评表kaoping_table,该表包括3个字段:编号id,数据类型为char(10);姓名name,数据类型为varchar(10);评价pingjia,数据类型为varchar(10)。将学生表student中的学号和姓名数据插入到考评表kaoping_table中。,201

10、0年6月,课件制作人:王亚楠,20,4.4.1 插入数据(续),注意: INSERTVALUES语句一次只能向表中插入一条记录。 当向表中所有列插入数据时,列名可以省略不写,但列值必须与表中定义的列名顺序一致。建议写出列名。 当向表中插入数据的顺序与列顺序不同时,必须写列名。 当向表中某些列插入数据,某些列不插入数据时,必须写列名。 INSERT语句不能为计算列、标识列指定列值。,2010年6月,课件制作人:王亚楠,21,4.4.2 更新数据,更新数据又称修改数据,指对表中的数据进行修改操作。 T-SQL使用UPDATE语句实现数据更新。,UPDATE table_name SET colum

11、n = modified_value ,.n WHERE search_condition,2010年6月,课件制作人:王亚楠,22,4.4.2 更新数据(续),【例4-15】修改学生表student中的一行记录,将学号值为“2005010101”的学生的出生日期改为“1989-10-10”,电话改为“010_84981234”。,【例4-16】修改学生表student中的所有行记录,将学生的家庭地址改为“北京市海淀区”。,2010年6月,课件制作人:王亚楠,23,4.4.3 删除数据,删除数据是指对表中的数据进行删除操作。 T-SQL使用DELETE语句实现数据删除,DELETE FROM

12、table_name WHERE search_condition,【例4-17】删除考评表kaoping_table的所有记录。,2010年6月,课件制作人:王亚楠,24,4.5 定义约束,4.5.1 约束概述 4.5.2 PRIMARY KEY约束 4.5.3 UNIQUE约束 4.5.4 FOREIGN KEY约束 4.5.5 CHECK约束 4.5.6 DEFAULT约束 4.5.7 数据库关系图,2010年6月,课件制作人:王亚楠,25,4.5.1 约束概述,1. 提出问题,学号值重复? 性别值不规范? 学生表student中的班号取值超出了班级表class中的班号取值的范围 ?,2

13、010年6月,课件制作人:王亚楠,26,4.5.1 约束概述(续),2. 数据完整性 数据完整性:是指数据的一致性和正确性。 分类:4种 (1)实体完整性 (2)域完整性 (3)参照完整性 (4)用户定义完整性,2010年6月,课件制作人:王亚楠,27,4.5.1 约束概述(续),3. 约束,约束的应用范围: 列级约束:是表中列定义的一部分,只能应用于表中的一个列属性。 表级约束:约束与列相同级别,允许应用于表的多个列属性。,2010年6月,课件制作人:王亚楠,28,4.5.1 约束概述(续),约束的定义格式,CONSTRAINT constraint_name ,关键字 约束名 约束类型 约

14、束属性 CONSTRAINT pk_ PRIMARY KEY (主键列) CONSTRAINT ix_ UNIQUE (唯一键列) CONSTRAINT ck_ CHECK (逻辑表达式) CONSTRAINT df_ DEFAULT 默认值 FOR 默认列 CONSTRAINT fk_ FOREIGN KEY (外键列) REFERENCES 父表(主键列),2010年6月,课件制作人:王亚楠,29,4.5.1 约束概述(续),约束的定义方式 企业管理器:表的属性 T-SQL: 第一种方式是在创建表结构(CREATE TABLE)时,定义约束; 第二种方式是在修改表结构(ALTER TABL

15、E)时,增加约束。,CREATE TABLE 表名 ( 列名 数据类型 NOT NULL 列级约束, 表级约束 ),ALTER TABLE 表名 ADD 表级约束,2010年6月,课件制作人:王亚楠,30,4.5.2 PRIMARY KEY约束,主键(PRIMARY KEY)约束:通过设置主键来强制实体完整性。 主键(PRIMARY KEY)是指能够唯一标识表中的每一行记录的一个列或多个列,多个列组合而成的主键称为联合主键。 主键列不允许空值。 主键列不允许重复值,联合主键允许单列的取值重复,但所有列的组合值必须唯一。 表中只允许定义一个主键。,【例4-19】对班级表class的班号列cl_i

16、d定义主键约束。(SSMS),【例4-20】修改学生表student的表结构,对学号列st_id定义主键约束。 (T-SQL),2010年6月,课件制作人:王亚楠,31,4.5.3 UNIQUE约束,唯一键(UNIQUE)约束:用于确保记录在非主键列的值不重复 相同点:都用于强制实体完整性,保证表中行数据的唯一性。 不同点: UNIQUE约束用于非主键的一列或多列组合。 一个表中可以定义多个UNIQUE约束,但只能定义一个PRIMARY KEY约束。 定义UNIQUE约束的列允许空值,但定义PRIMARY KEY约束的列不允许空值。,【例4-21】对班级表class的班名列cl_name定义唯

17、一键约束。(SSMS),【例4-22】创建系表dept,并定义主键约束和唯一键约束信息。 (T-SQL),2010年6月,课件制作人:王亚楠,32,4.5.4 FOREIGN KEY约束,外键(FOREIGN KEY)约束:通过设置外键来强制参照完整性。 外键(FOREIGN KEY):定义了表之间的参照关系。 设置外键的表称为:参照表或子表 设置主键的表称为:被参照表或父表 特点: 级联更新 级联删除,【例4-23】对班级表class的所属系号列cl_dtid定义外键约束 (SSMS),【例4-24】修改学生表student的表结构,对所属班号列st_clid定义外键约束,并设置级联更新与级

18、联删除。 (T-SQL),2010年6月,课件制作人:王亚楠,33,4.5.5 CHECK约束,检查(CHECK)约束:用于限制列的取值范围,以保证数据库中数据的域完整性。 关键:逻辑表达式,【例4-25】修改学生表student的表结构,对性别列st_gender定义检查约束。(SSMS),【例4-26】创建课程表course,并定义主键约束和检查约束信息。 (T-SQL),2010年6月,课件制作人:王亚楠,34,4.5.6 DEFAULT约束,默认(DEFAULT)约束:通过设置默认值来强制域完整性。 注意: 每一列中只能定义一个DEFAULT约束。 DEFAULT约束允许指定一些系统值

19、和函数。 DEFAULT约束不允许默认值参照于其他列或其他表的值。 如果一列既不允许空值,也没有指定DEFAULT约束,则必须明确指定该列的值。,【例4-27】修改课程表course的表结构,对课时列cr_time定义默认约束。(SSMS),2010年6月,课件制作人:王亚楠,35,4.5.7 数据库关系图,【例4-28、29、30、31】创建教师表teacher 、成绩表score、排课表schedule,包括约束信息。并创建关系图 (T-SQL),2010年6月,课件制作人:王亚楠,36,本章小结,表结构的构成: 列信息: 列名 数据类型 空值(标识、计算)属性 列级约束 约束信息:表级约

20、束,2010年6月,课件制作人:王亚楠,37,本章小结(续)约束,PRIMARY KEY约束 UNIQUE约束 CHECK约束 DEFAULT约束 FOREIGN KEY约束,实体完整性 域完整性 参照完整性,(1)主键列不允许空值。 (2)主键列不允许重复值。 (3)表中允许有多个候选键唯一标识行,但只允许有一个候选键作为主键。,(1)一个表中可以定义多个UNIQUE约束,但只能定义一个PRIMARY KEY约束。 (2)定义UNIQUE约束的列允许空值,但定义PRIMARY KEY约束的列不允许空值,逻辑表达式,设置外键的表称为:参照表或子表 设置主键的表称为:被参照表或父表,CONSTR

21、AINT constraint_name ,2010年6月,课件制作人:王亚楠,38,本章小结(续)表的操纵,定义表的结构(“型”,Type):DDL 创建表结构CREATE TABLE 修改表结构ALTER TABLE 删除表结构DROP TABLE 操纵表的数据(“值”,Value):DML 插入数据INSERT 更新数据UPDATE 删除数据DELETE 检索数据SELECT,2010年6月,课件制作人:王亚楠,39,实训项目,项目1:创建表 目的:掌握SQL Server Management Studio和CREATE TABLE语句创建表的两种方法。 内容:创建sales数据库的4张表,这4张表的E-R模型和关系模型如下;物理结构参见书。其中表product的创建语句为: CREATE TABLE pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论