创建数据库表与约束课件.ppt

上传人:小飞机 文档编号:1606470 上传时间:2022-12-10 格式:PPT 页数:37 大小:676.50KB
返回 下载 相关 举报
创建数据库表与约束课件.ppt_第1页
第1页 / 共37页
创建数据库表与约束课件.ppt_第2页
第2页 / 共37页
创建数据库表与约束课件.ppt_第3页
第3页 / 共37页
创建数据库表与约束课件.ppt_第4页
第4页 / 共37页
创建数据库表与约束课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《创建数据库表与约束课件.ppt》由会员分享,可在线阅读,更多相关《创建数据库表与约束课件.ppt(37页珍藏版)》请在三一办公上搜索。

1、第二章 创建数据库表与约束,内容提要,2.1 表相关的几个基本概念2.2 建立数据库表2.3 建立表间关系2.4 建立检查约束2.5 导入和导出数据2.6 删除表,2.1 表相关的几个基本概念,一、数据完整性 数据完整性是要求数据库中的数据具有准确性。准确性是通过数据库表的设计和约束来实现的。 SQL Server提供了以下4种类型的约束(Constraint):1、实体完整性约束 实体完整性约束要求表中的每一行数据都反映不同的实体,不能在表中存在完全相同的数据行。 实现方法:索引、唯一约束、主键约束或标识列属性。,2、域完整性约束 域完整性约束是给定列的输入有效性。 实现方法:限制数据类型、

2、检查约束、输入格式、外键约束、默认值、非空约束。 例如:学生的成绩若定义为整数类型则不能输入带小数的分数;学生选修的课程必须是课程表中实际存在的课程。,3、引用完整性 在输入或删除数据行时,引用完整性约束来保持表之间已经定义的关系。 在强制引用完整性时, SQL Server禁止用户进行下列操作:(1)当主表中没有关联的记录时,将记录添加到相关表中。(2)更改主表中的值导致相关表中的记录孤立。(3)从主表中删除记录,但仍存在与该记录匹配的相关记录。 实现方法:通过主键和外键之间的引用关系来实现。,学生表:(主表),成绩表:(子表),4、自定义完整性约束 用户根据具体应用来定义特定的规则。如定义

3、学生年龄必须在10到30之间。 实现方法:定义规则、存储过程或触发器。,二、主键(Primary Key)和外键(Foreign Key)1、主键 表中有一列或几列组合的值能用来唯一地标识表中的每一行,这样的一列或者多列的组合叫做表的主键。 如:学号可以作为学生表的主键,课程号可以作为课程表的主键,(学号,课程号)作为成绩表的主键(组合键)说明:(1)一个表只能有一个主键,主键约束确保了表中的行是唯一的。 (2)表中可以没有主键,但是通常情况下应当为表设置一个主键。,思考:在主键列输入的数值,允许为空吗?一个表可以有多个主键吗?在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不

4、允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗?,2、外键 简单地说,就是“子表”中对应于“主表”的列,在子表中称为外键或者引用键。它的值要求与主表的主键或者唯一键相对应,外键用来强制引用完整性。例如在成绩表中,学号为外键。一个表可以有多个外键。,2.2 建立数据库表,一、创建数据库表 在SQL Server Management Studio中,展开“studentdb”数据库节点,然后在“表”上右击选择“新建表”,在出现的表设计器中可以输入表中各列的信息,如列名、数据类型、是否允许空,如下图所示:,图2-1 在SQL Server Management Studio中创建stud

5、ents表,输完各列信息以后,单击保存按钮,输入表名称:students。在对象资源管理器中展开“表”节点即可看到students已经存在。 这只是建立了表的框架,还需要输入记录数据。方法:在students上右击选择“打开表”,依次输入各条记录。 在students表中,我们用到了nchar和datetime两种数据类型,在SQL Server 中提供了丰富的数据类型供我们选择。下面介绍一下常用的数据类型。,二、SQL Server 中常用的数据类型1、数字数据类型,2、文本数据类型 可以存储由任意字母、符号或数字字符组成的数据。根据字符长度可以分为固定长度、可变长度两种,根据字符定义方法又

6、分为非Unicode数据类型和Unicode数据类型两种。 Unicode(统一码)数据类型用两个字节表示一个字符。它几乎可以表示世界上所有的字符集。 具体说明如下:,3、日期和时间类型 由有效的日期或时间组成。例如:“4/01/98 12:15:00:00:00 PM”、”1:28:29:15:01 AM 8/17/98”。日期和时间类型又分为两种:,4、货币数据类型,5、二进制数据类型 二进制字符串由十六进制数表示。,思考:在创建表时下列列一般定义为何种数据类型?姓名、地址、电话号码等:年龄:出生日期:照片:薪水:,字符型,整型,日期时间型,image,货币型,三、建立主键 建立主键的方法

7、为:选择要建立主键的列(如果主键为组合键,可以按住ctrl键单击选中各列) ,右击选择“设置主键”。 如果在定义表时未定义主键,以后可以在表名上右击选择“修改”,进行设置。,四、设置默认值 有时候,对某项数据进行输入的时候,它总是存在一个默认值,例如女子学院中的学员性别通常应该是“女”。,五、标识列 在有些情况下,存储的信息中很难找到不重复的信息作为列的主键,SQL Server 提供了一个“标识列”,特意对列进行区分,标识列本身没有具体的意义。标识列的实现方式如下:(1)如果一列的数据属于数字类型(例如整数),则可以把该列定义为标识列。(2)定义成标识列后,还需要分别指定“标识种子”和“标识

8、地增量”,默认值都是1。,(3)定义了标识列以后,在每次输入数据的时候,该列随数据行的增加而自动增加数字,并且不会重复,第一次的数字就是“标识种子”值,以后每次按照“标识递增量”增加数值。 标识列通常也被定义为主键,通常说的“自动编号”就是指标识列的数字自动增加。,2.3 建立表间关系,建立表间关系实际上就是实施引用完整性约束,建立主表和子表关系。 前面已经创建了students表,主键为sno。在studentdb数据库中再创建lessons表和scores表。这两个表的定义如下: lessons(lno, lname, credit) ,主键为lno scores(sno, lno, sc

9、ore),主键为(sno,lno),可以按以下步骤建立students和scores这两张表的关系:(1)在scores表的设计窗口中右击,选择“关系”,单击“添加”按钮。(2)单击“表和列规范”最右侧的小按钮,在显示的对话框中选择主表为student,主键字段为sno,对应的外键表scores的字段为sno。(3)单击确定并保存表结构,这样它们之间的主-外键关系就建立了。,要查看表之间的关系,可以在数据库中选择“数据库关系图”选项,然后根据提示信息新建数据库关系图。 还可以用下面的方法建立主-外键关系,如lessons表和scores表之间: 在新建的关系图中添加lessons表,然后将sc

10、ores表的lno列拖动到lessons表的lno列上松手,在出现的对话框中进行设置。,三个表之间的关系图如下所示:,2.4 建立检查约束,检查约束也叫CHECK约束,用于定义列中可接受的数据或者格式,例如scores表中的score数值应当为0100,如果不满足要求应当不允许输入。方法:在设计scores表时,右击选择 “ CHECK约束”,在出现的对话框中单击“添加”按钮,添加一个新的约束。然后单击“表达式”右侧的小按钮,在弹出的“CHECK约束表达式”对话框中输入:0=score and score=100单击“确定”按钮后保存表,该约束建立。可以打开scores表输入或修改数据进行验证

11、。,思考:1、如何定义约束来检查邮件地址(SEmail)输入是否有效?,SEmail LIKE %,2、如何定义约束来检查年龄(Sage)是否在1050之间?,Sage=10 and Sage=50,3、要求学号(sno)必须为10位数字,且以2009打头 :,sno like 20090-90-90-90-90-90-9,2.5 导入和导出数据,有时候,需要把存储在数据库中的数据导出保存成文本文件或Excel文件,或者把Excel文件中的数据导入到数据库表中,这时候就可以使用数据库的导入/导出向导。 方法:右击数据库,选择“任务”中的“导出数据”选项,在向导中选择数据库,单击“下一步”;输入

12、文件名称并确定文件相关选项;选择是否用一条查询语句进行复制;选择表名并设置文本文件的格式;确定是否立即运行,是否保存该转换设置,单击“下一步”一直到完成。,2.6 删除表,对于不再使用的数据表,可以删除以释放磁盘空间,选择该表,右击选择“删除”选项即可。对于建立主外键关系的表,如果要删除主表,则首先要删除相关的子表以保证数据的引用完整性。另外,删除表一定要谨慎,不然会造成有用的数据丢失。,本章总结,创建数据库表需要确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束。创建表的过程是规定数据列属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)的过程。,如果建立了主表和子表的关系,则:子表中的相关项目数据,在主表中必须存在主表中相关项的数据更改了,则子表对应的数据项也必须随之更改在删除子表之前,不能够删除主表,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号