1、第二章第二章数据库表的建立与删除数据库表的建立与删除回顾n数据库的作用n数据库的发展过程以及当前流行的数据库n数据库基本概念:数据存储方式、实体和记录、数据库和数据库表、数据冗余和数据完整性n使用SQL Server管理平台创建组、注册n在SQL Server管理平台中和T-SQL语句创建、删除数据库本章目标n使用SQL Server管理平台创建和删除数据库表n使用T-SQL Server语句命令行创建和删除数据库表n设置数据库表的主键、外键和建立表之间的关系n为数据库表增加约束数据完整性数据完整性数据完整性可靠性可靠性准确性准确性n数据存放在表中n“数据完整性的问题大多是由于设计引起的”n创
2、建表的时候,就应当保证以后数据输入是正确的错误的数据、不符合要求的数据不允许输入创建表:保证数据的完整性创建表:保证数据的完整性 = 实施完整性约束实施完整性约束完整性包括n输入的类型是否正确?出生日期不是字符n输入的格式是否正确?身份证号码是18位或15位n是否在允许的范围内?性别只能是”男”或者”女”n是否存在重复输入?学生信息输入了两次n是否符合其他特定要求?班级编号要受班级表的控制列值要求(约束)整行要求(约束)完整性包括域完整性实体完整性引用完整性自定义完整性实体完整性男诸葛亮31031002男刘备31031001女蔡文姬31022003男司马懿31022002男曹操31022001
3、.性别性别姓名姓名学号学号男赵云31031002约束方法:唯一约束、主键约束、标识列约束方法:唯一约束、主键约束、标识列田地赵云1000000000域完整性约束方法:限制数据类型、检查约束、外键约束、约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束默认值、非空约束男诸葛亮31031002男刘备31031001女蔡文姬31022003男司马懿31022002男曹操31022001.性别性别姓名姓名学号学号参照完整性655102000130004约束方法:外键约束约束方法:外键约束310310诸葛亮31031002310310刘备31031001310220蔡文姬31022003310
4、220司马懿31022002310220曹操31022001.班级编号班级编号姓名姓名学号学号SQL Server管理平台的表操作在对象资源管理器中演示打开表、数据输入等操作创建数据库表-数据类型SQL Server的数据类型思考n电话号码一般使用什么数据类型存储?n性别一般使用什么数据类型存储?n年龄信息一般使用什么数据类型存储?n照片信息一般使用什么数据类型存储?n工资一般使用什么数据类型存储?创建数据库表-空约束n学号允许为空吗?n姓名允许为空吗?n家庭地址允许为空吗?n电子邮件信息允许为空吗?n考试成绩允许为空吗?思考创建数据库表-主键n在主键列输入的数值,允许为空吗?n一个表可以有多
5、个主键吗?n在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗?思考n最少性n尽量选择单个键作为主键n稳定性n尽量选择数值更新少的列作为主键选择主键的原则n表中没有合适的列作为主键怎么办?创建数据库表-标识列n标识列允许为字符数据类型吗?n如果标识列A的初始值为1,增长量为2,则输入三行数据以后,再删除两行,下次再输入数据行的时候,标识值从多少开始?思考创建数据库表-默认约束演示建立主-外键关系创建数据库表外键演示建立主-外键关系演示关系图关系图n1、当主表中没有对应的记录时,不能将记录添加到子表成绩表中不能出现在学员信息
6、表中不存在的学号;n2、不能更改主表中的值而导致子表中的记录孤立把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;n3、子表存在与主表对应的记录,不能从主表中删除该行不能把有成绩的学员删除了n4、删除主表前,先删子表先删学员成绩表、后删除学员信息表主表和从表演示建立检查约束创建数据库表检查约束T-SQL 语句命令的表操作create table ( 列名列名1 列的数据类型及宽度等特征,列的数据类型及宽度等特征, 列名列名2 列的数据类型及宽度等特征,列的数据类型及宽度等特征,)T-SQL 语句命令的表操作主键约束空约束默认约束检查约束唯一性约束外键约束输入数据项,验证主键、主外键
7、关系、检查约束输入数据项,验证主键、主外键关系、检查约束创建数据库表结束总结nSQL Server创建表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)保证的过程n实体完整性数据行不能存在重复,引用完整性要求子表中的相关项必须在主表中存在n域完整性实现了对输入到特定列的数值的限制nSQL Server中存在五种约束,分别是:主键约束、外键约束、检查约束、默认约束和唯一性约束n创建数据库表需要:确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束n如果建立了主表和子表的关系,则:子表中的相关项目的数据,在主表中必须存在;主表中相关项的数据更改了,则子表对应的数据项也应当随之 更改;在删除子表之前,不能够删除主表;