第三章关系数据库的创建与维护_第1页
第三章关系数据库的创建与维护_第2页
第三章关系数据库的创建与维护_第3页
第三章关系数据库的创建与维护_第4页
第三章关系数据库的创建与维护_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第3章关系数据库的创建与维护数据库管理系统概述123数据库的创建和维护SQLServer数据库基础数据表的创建和维护45数据表约束和数据完整性6索引的创建与维护13.1SQLServer数据库管理系统概述2数据库管理系统(DataBaseManagementSystem,DBMS)是位于应用程序与操作系统之间的一层数据管理软件。数据库应用程序提出数据操作要求,通过DBMS,才能访问数据库。数据库管理员也是通过DBMS对数据库实施管理。DBMS是创建和使用数据库必不可少的软件!1.数据库管理系统3.1SQLServer2005概述3数据定义数据操纵数据库运行管理数据库维护支持数据库语言2.数据库管理系统的主要功能建立数据库,定义数据库的模式结构、数据库的完整性约束规则和安全性控制方式实现对数据库中数据的检索以及更新(包括插入、删除和修改)包括并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部管理和维护数据库的备份和恢复、导入和导出功能,数据库的重组功能和性能监视、分析功能等支持使用数据库语言来使用和管理数据库,关系型DBMS支持SQL语言3.1SQLServer2005概述4SQLServer是Microsoft公司在Windows平台上开发的一个高性能关系数据库管理系统。它支持构建基于网络的信息系统。3.1SQLServer2005概述3.MicrosoftSQLServer2005图形化的操作环境,易学易用支持高性能应用可伸缩性和高度可用性与Internet应用的集成支持数据仓库分析54.SQLServer主要管理工具

SQLServer提供了一整套数据库系统管理工具和实用程序,打开“开始/程序/MicrosoftSQLServer2005”菜单即可看到如下程序组:3.1SQLServer2005概述6SQLServerManagementStudio

SQLServerManagementStudio是一个管理平台,集成了多个图形工具和丰富的脚本支持。用于建立、访问、配置、控制、管理和开发数据库。3.1SQLServer2005概述7启动SQLServerManagementStudio选择“开始/程序/MicrosoftSQLServer2005/SQLServerManagementStudio”菜单出现“连接到服务器”窗口。服务器类型:指明要连接的服务。如果是管理和访问数据库服务器,选择“数据库引擎”。服务器名称:选择或输入该服务器的计算机名称或IP地址,也可输入“.”或“(local)”,表示本机服务器。身份验证:指明验证方式。注意SQLServer身份验证需用户名和密码,默认用户为“sa”

。3.1SQLServer2005概述8SQLServerManagementStudio窗口已在本SQLServerManagementStudio下注册的服务器,可启动或停止服务器,更改连接选项所有数据库对象的树型视图。可以浏览、管理、维护所有数据库对象。当选择某一数据库对象后,中间的“摘要”窗口自动显示该对象所包含的下一级对象或该对象的详细内容。创建数据库对象所需要使用的基本SQL语句段的文件,对复杂脚本定义提供一种快捷支持,可方便地利用模板创建各种数据库对象方便对脚本的集中编辑、保存和管理。可建立一个项目对多个脚本进行管理,多个项目又可作为一个解决方案。9“新建查询”可打开查询编辑器窗口,用于编辑SQL语句,执行和查看结果。例如,查询学生表的信息:SQLServerManagementStudio窗口10SQLServerConfigurationManager管理与SQLServer相关联的服务。启动:“开始/程序/MicrosoftSQLServer2005/配置工具/SQLServerConfigurationManager”。点击左边的“SQLServer2005服务”,右边窗格显示所有SQLServer服务,包括已注册的不同数据库服务器实例的服务。这些服务是SQLServer提供各项管理和服务功能的基础,如果服务停止,相关功能就无法使用。服务有3种状态:停止(红色)、启动(绿色)、暂停(蓝色)。SQLServer的核心服务组件,是实际的数据库服务器,该服务启动后,客户端才可以连接到服务器。一般的数据库功能都由它提供。作业调度和管理,支持数据库定时、自动备份、维护,监视数据库、异常告警等功能,必需和SQLServer服务一起使用。対数据仓库、商务智能和line-of-business解决方案提供分析支持侦听对SQLServer资源的传入请求,提供计算机上安装的SQLServer实例的有关信息支持基于全文索引的数据库表的全文搜索服务可用于数据质量管理和数据清洗。通过数据分析和数据挖掘,实现数据提取、转换和加载。11SQLServer2005网络配置,支持完成本计算机上的SQLServer服务器的网络协议管理,如SharedMemory、TCP/IP、NamedPipes等,主要任务包括:启动或停止某个网络协议,配置网络协议,例如修改协议所用端口、加密方法等。SQLNativeClient配置,支持配置本服务器上运行的客户机程序的网络协议。其他客户机上需要安装并配置SQLNativeClient来支持客户机程序与SQLServer连接。主要功能:指定连接到SQLServer时的协议顺序,配置客户端连接协议,创建SQLServer的别名,使客户端能用自定义连接字符串进行连接。3.1SQLServer2005概述123.2SQLServer数据库基础13数据库不仅存储数据,所有与数据结构、数据完整性约束、数据处理操作有关的信息也都存储其中。

因此,数据库并不是简单的数据集合!3.2SQLServer数据库基础SQLServer管理的主要对象是数据库。14SQLServer中数据库对象有两类:系统数据库和用户自定义数据库。1.SQLServer中数据库的分类

系统数据库:存放SQLServer工作时所需要的系统级信息,系统自动维护和管理。数据库主要作用master从整体上控制SQLServer系统和用户数据库的运行。保存登录标识、系统配置、用户数据库基本信息等。该库非常重要,应设置权限禁止一般用户访问,另外要及时备份model是新建数据库的模板,包含了每个用户数据库都需要的一些系统表,SQLServer以它为基础创建新的数据库msdb支持SQLServerAgent服务,它记录有关作业、警报、操作员等信息tempdb是一个临时数据库,它为SQLServer的查询、存储过程等的执行提供临时存储3.2SQLServer数据库基础15

用户自定义数据库:用户根据数据管理的需要建立的数据库,由用户创建和维护。例如,为了管理教务信息,可建立教务系统数据库,为了实现网上书店,建立图书销售数据库等。

SQLServer自带了3个样本数据库,供用户学习使用:AdventureWorks是个OLTP数据库示例AdventureWorksDW是个OLAP数据库仓库示例AdventureWorksAS是个分析服务数据库示例3.2SQLServer数据库基础16表:存储数据的二维关系表视图:通过查询从一个或多个数据表获得的虚拟表,可简化用户数据显示、增强数据库安全性可编程性:包括存储过程、触发器、规则、函数、默认值等安全性:包括用户、角色、密钥、证书等SQLServer中,一组存储、管理和使用数据的对象构成了数据库的逻辑存储结构。观察master数据库包含的主要对象:2.SQLServer数据库的存储结构数据库的逻辑存储结构17

数据库的物理存储结构主数据文件:用来存储数据库的系统表和所有对象启动信息,并且存储数据库的数据。每个数据库都有且只有1个主数据文件。主数据文件使用.MDF为扩展名。次数据文件:用来存储不能置于主数据文件中的其他数据。每个数据库可以包含0个或多个次数据文件。扩展名为.NDF。事务日志文件:记录SQLServer执行的所有事务以及由这些事务操作引起的数据库的变化,可用于恢复数据库。每个数据库至少包含1个事务日志文件,扩展名为.LDF。每个数据库至少包含2个文件:主数据文件和事务日志文件。3.2SQLServer数据库基础数据库以文件方式存储在磁盘上。所有数据库对象都存储在这些文件中:18用户自定义文件组(User_defined):指用户创建的任何文件组,存储其他次数据文件,可以多个。

主文件组(Primary):包含主数据文件和若干次数据文件。所有系统表都包含在主文件组中

为了更好地对数据文件进行管理和实现分布存储,SQLServer可对数据库文件(不包括事务日志文件)进行分组管理。合理使用文件组对数据进行分布存储,可以提高表中数据的操作性能。3.2SQLServer数据库基础19例如:将两个不同物理磁盘上的数据库文件组成一个文件组,在该组上建立的数据表中的数据会存储在不同的物理设备上,查询操作可并行。合理使用文件组对数据进行分布存储,可以提高表中数据的操作性能。3.2SQLServer数据库基础注意:若不指定用户定义文件组,则所有数据文件都包含在主文件组中。一个文件只能是一个文件组的成员一个文件或文件组只能被一个数据库使用!203.3数据库的创建与维护211.数据库创建数据库创建有多种方式。下面通过实例介绍使用ManagementStudio创建数据库的步骤和方法。【例3.2】在C:\DBExample文件夹下创建数据库School,它包含主数据文件SchoolDB.MDF,初始大小为5MB,事务日志文件SchoolDB_log.LDF,其他按照默认设置不变。3.3数据库的创建与维护①在桌面上选择“我的电脑”,在C:\下新建文件夹,命名为“DBExample”。②在对象资源管理器窗口右击“数据库”,从快捷菜单中选择“新建数据库”命令,将弹出“新建数据库”对话框。22提示:SQLServer以model数据库为模板创建一个新的数据库,其数据文件的默认值为:初始大小3MB,以1MB自动增长,不限制增长;事务日志文件的默认值为:初始大小1MB,按10%的比例自动增长,不限制增长。3.3数据库的创建与维护23④将数据文件的逻辑名称修改为“SchoolDB”,在路径下的文本框输入或点击其后“…”按钮选择修改数据库文件的位置为“C:\DBExample”。在初始大小后的文本框中把3改为5。⑤将日志文件的逻辑名称修改为“SchoolDB_log”,“路径”设置为“C:\DBExample”。⑥单击“确定”按钮,数据库创建完成。③“选择页”默认为“常规”,在“数据库名称”文本框中输入“School”。3.3数据库的创建与维护24使用“我的电脑”查看“C:\DBExample”文件夹,可以看到文件SchoolDB和SchoolDB_log。建好的School数据库在对象资源管理器展开的“数据库”下可以看到,并且系统在School下自动创建了其包含的相关对象。

252.数据库维护对已存在的数据库可以进行如下的修改:增加或删除数据文件改变数据文件的大小和增长方式改变日志文件的大小和增长方式增加或删除日志文件增加或删除文件组重命名数据库名、数据文件和日志文件逻辑名。注意:数据库创建后,磁盘上的数据文件和日志文件名就不能改变了。3.3数据库的创建与维护26修改数据库右单击需修改的数据库,在快捷菜单中选择“属性”命令,弹出“数据库属性”窗口。其中包含8个选项,每个选项下可对数据库的相关属性进行修改。3.3数据库的创建与维护27删除数据库①右击要删除的数据库,在弹出的快捷菜单中选择“删除”命令。②在弹出的“删除对象”对话框中单击“确定”按钮,即可删除要删除的数据库。提示:注意数据库一旦被删除,数据库文件及其数据都被从服务器上的磁盘中删除,该数据库中所有的对象均被删除,即永久性删除,不能恢复,所以删除操作要慎重!3.3数据库的创建与维护283.4数据表的创建与维护29新建一个数据库只是建立了数据库框架和相关的系统对象,接下来的任务是在库中创建各个对象,最基本的是数据表。例如:建立如下教务系统的数据库,要建立6个数据表,并建立表之间的关系。具体定义见教材P37页。3.4数据表的创建与维护301)设计表结构,包括:定义字段(1)创建列名、数据类型(2)设置列属性也称列约束。包括:PRIMARYKEY:主关键字约束UNIQUE:唯一性约束CHECK:检查约束DEFAULT:默认值约束NOTNULL:非空约束IDENTITY:标识规范保存表3)表创建后,可输入一些记录数据来检验表结构。创建数据表的一般过程:2)建立表之间的关系:依次建立各个表,再建立关系。3.4数据表的创建与维护311.SQLServer数据类型数据表中每一列都需要定义明确的数据类型,数据类型决定了该字段的数据取值类型、范围和存储格式。数据类型主要类型符号标识整型bigint、int、smallint、tinyint浮点型float、real、decimal、numeric字符型char、varchar、nchar、nvarchar日期时间型datetime、smalldatetime文本型text、ntext图像型image货币型money、smallmoney位型bit二进制型binary、varbinary其他uniqueidentifierSQLServer的系统数据类型3.4数据表的创建与维护32(1)整型整型用于存储整数,有4种整型分别用于存储不同范围的整数。数据类型数据范围占用存储空间bigint-263~263-18个字节int-231~231-14个字节smallint-215~215-12个字节tinyint0~2551个字节3.4数据表的创建与维护33float和real是近似数值型,以科学计数法表示数据;decimal和numeric是精确数值类型,以明确、完整的精度(固定精度和小数位数)存储数据。(2)浮点型浮点型用于存储含小数的十进制数。

数据类型数据范围精确度占用存储空间float-1.79E+308~1.79E+308可精确到第15位小数8个字节real-3.40E+38~3.40E+38可精确到第7位小数4个字节decimal-1038+1~1038-1完整精度2~17个字节numeric-1038+1~1038-1完整精度2~17个字节3.4数据表的创建与维护34例如:指定某字段为精确数值型,精度为5,小数位数为2,即decimal(5,2)或numeric(5,2),可表示数据范围为:-999.99~999.99。decimal和numeric格式如下:decimal|numeric(p[,s])其中:p为精度,s为小数位数,s的默认值为0。

decimal和numeric的区别在于decimal不能应用于带有Identity的列。3.4数据表的创建与维护35(3)字符型和文本型

用于存储由字母、符号和数字组成的字符串。字符串常量要用单引号作为起止界限。例如:’No1’。SQLServer字符数据类型和文本数据类型数据类型定义格式占用存储空间charchar(n),存储ANSI字符,n表示字符串的长度,1=<n<=8000定长,最大8KBvarcharvarchar(n),存储ANSI字符,n表示字符串可达到的最大长度1=<n<=8000变长,最大8KBncharnchar(n),存储Unicode字符,n表示字符串的长度,1=<n<=4000定长,最大8KBnvarcharnvarchar(n),存储Unicode字符,n表示字符串可达到的最大长度1=<n<=4000变长,最大8KBtexttext,存储ANSI字符变长,大于8KB3.4数据表的创建与维护36char(n)、nchar(n)是定长字符类型,字符串长度超出n的部分被截去;如不足n时,则在串的尾部添加空格以达到长度n。如char(5),当输入'Tom'字符串时,其存储长度为5个字节,实际字符串值为'Tom

'varchar(n)、nvarchar(n)是变长字符类型,长度为字符串的实际字符个数。如varchar(5),当输入‘Tom’字符串时,其存储长度为3个字节,实际字符串值为'Tom'。

Text是文本数据类型,用来存储可变长度的大量字符数据,其存储长度最多可达20亿个ASCII字符。定长和变长的区别通常,当某一字段的字符串长度固定时使用char类型;当字符串长度明显不一致时使用varchar类型。3.4数据表的创建与维护37char(n)和varchar(n)存储ANSI字符,用1个字节(8bits)表示一个字符,每个汉字占2个字节。nchar(n)和nvarchar(n)存储Unicode字符集,用2个字节(16bits)表示一个字符。通常,char(n)和varchar(n)适合存储英文字符串。nchar(n)和nvarchar(n)适合存储中文或中英文混合字符串。例如:char(5)可存储5个英文字符,但只能存储2个汉字,而nchar(5)可存储5个英文或汉字构成的字符串。ANSI和Unicode的区别

ANSI(AmericanNationalStandardInstitite:美国国家标准协会)和Unicode(UniversalMultiple-OctetCodedCharacterSet:通用字符集)是两种不同的编码标准。3.4数据表的创建与维护38(4)日期时间型用来存储日期和时间数据,默认数据格式为:“YYYY-MM-DDHH:MM:SS”。例如:“2012-12-0812:35:29”数据类型数据范围占用存储空间datetime1753年1月1日~9999年12月31日之间的日期时间8个字节smalldatetime1900年1月1日~2079年6月6日之间的日期时间4个字节使用时也可只存储日期或时间。

3.4数据表的创建与维护39(5)图像数据类型用于存储照片、图片等,实际存储的是可变长度的二进制数据,其长度最大可达231-1个字节。注意:SQLServer不能显示image类型的数据,必须由应用程序来存取和显示。

在实际应用中,通常将图像以文件的形式存储在磁盘上,而只将图像文件的路径和文件名以字符串类型记录在数据库中。应用程序读取数据库获得存取路径,然后访问磁盘文件。其他多媒体类型数据处理方法类似。3.4数据表的创建与维护40(6)货币型用十进制数表示货币值。货币型实际上是一种小数,但小数点后只有4位,且自动四舍五入。数据类型数据范围占用存储空间money-922,337,203,685,477.5808~+922,337,203,685,477.5807精度为4位小数8个字节smallmoney-214,748.3648~214,748.3647,精度为4位小数4个字节3.4数据表的创建与维护41(8)uniqueidentifier唯一标识符类型。数据库管理系统会随着记录的加入自动为字段产生唯一标识符。它是一个16字节长的二进制数。(7)位类型bit用来作为逻辑变量使用,其数值有两种取值:1和0

,可分别代表TRUE和FALSE或YES和No等。例如:在Student表中,字段LiveInDorm存储“是否住校”信息使用bit。3.4数据表的创建与维护42教务系统数据库中有关字段类型的选取举例字段名称字段说明类型定义StudentCode学号char(4)StudentName学生姓名nvarchar(20)ClassCode班号char(2)Sex性别nchar(1)Birthday出生日期smalldatetimeLiveInDorm是否住校bitTelephone联系电话nvarchar(40)Photo照片(存放路径和文件名)nvarchar(50)Description个人介绍nvarchar(100)PassWord密码nvarchar(16)学生表Student3.4数据表的创建与维护43课程表Course字段名称字段说明类型定义CourseCode课程号char(3)CourseName课程名称nvarchar(16)Credit学分numeric(3,1)Academy开课学院nvarchar(5)ClassTime上课时间nvarchar(20)ClassPlace上课地点nvarchar(20)ClassHour上课学时tinyintLabHour实验学时tinyintTotalSeats最大学生数smallintLeftSeats剩余名额smallintTeacherCode任课教师char(4)Description课程简介textGradeAnalysis成绩分析评价nvarchar(100)3.4数据表的创建与维护44成绩表Grade字段名称字段说明类型定义StudentCode学号char(4)CourseCode课程号char(3)Grade成绩numeric(4,1)WriteStamp录入时间datetime3.4数据表的创建与维护452.数据表创建【例3.3】在数据库School中建立学生表Student,完成各字段的定义。①在对象资源管理器中,选择“数据库/School/表”,右击后从快捷菜单中选择“新建表”命令,弹出“表设计”窗口。②在表设计窗口,根据表的设计结构依次完成每个字段的名称和数据类型设置。④在对象资源管理器展开“数据库/School/表”可以看到创建好的数据表dbo.Student。③在完成所有字段设计后,可在“属性”窗格的“(名称)”处输入表名“Student”,单击工具栏上的“”按钮或“文件/保存”菜单或关闭表设计窗口,数据表创建完成。3.4数据表的创建与维护46属性设置区:字段描述、默认值、小数精度及位数等数据表名称设置设计表中字段保存按钮47修改表结构

增加字段、删除字段、修改字段属性等。

3.数据表维护①在对象资源管理器中右击要修改的“表”,在弹出菜单中选择“修改”命令,出现“表设计”窗口。②在“表设计”窗口,选中需要修改的一行,右击后弹出快捷菜单可以对表设置主键、插入列、删除列等。也可通过拖动行来调整字段的顺序。③对表的结构修改完毕后,保存对表结构修改。3.4数据表的创建与维护48更改表名删除数据表①在对象资源管理器中,右击要删除的表,在快捷菜单中选择“删除”命令。①在对象资源管理器中选择要改名的表右击,在快捷菜单上选择“重命名”命令。②在表名位置输入新的表名即可。②在弹出的“删除对象”对话框中,选择“确定”按钮,即可删除该表。3.4数据表的创建与维护494.数据表记录插入

在实际运行的信息系统中,数据表必须在完全创建好后(字段建好、各项数据完整性约束设置完成),才添加记录。而且最好是通过应用程序添加。

在系统开发过程中,可以通过手工添加一些记录来检查数据表定义是否合理,调试程序功能是否可用等。3.4数据表的创建与维护50手工将记录添加在数据表的尾部,可以向表中插入多条记录。例如:向Student表添加记录。操作方法:①在对象资源管理器中,右击数据表dbo.Student,②选“打开表”,出现数据窗口“表-dbo.Student”。③在该数据窗口中,可插入记录、修改记录和删除记录。右击数据表dbo.Student3.4数据表的创建与维护51①将光标定位在表尾的下一行,逐字段输入值,按方向键“->”或“<Tab>”键可以移向下一个字段。②当一条记录最后一个字段输入完按“回车”键,光标自动转到下一行第一个字段,可插入下一条记录。

③输入完数据,单击“”按钮或“文件/保存”菜单。或单击“表-dbo.Student”窗口的“关闭”按钮,添加的记录就保存到数据表中。插入记录:

注意:“不允许为空”字段必须输入值。525.数据表记录维护①定位将要删除的记录,右击后在弹出的快捷菜单中选择“删除”命令。删除记录修改记录定位将要修改的记录字段,对该字段值进行编辑修改。②弹出删除确认对话框,单击“是”按钮即删除选择的记录。3.4数据表的创建与维护533.5数据表约束和数据完整性控制

54数据的完整性控制:指保护数据库中的数据的正确性、有效性和相容性,防止数据库中存在不符合语义的数据,防止错误信息进入数据库,并且使数据符合所描述的业务规则。SQLServer使提供了定义约束、检查和保持数据符合约束的完整性控制机制。通过限制表的字段、记录以及表之间的数据一致来保证数据完整性。3.5数据表约束和数据完整性控制

55SQLServer常用完整性约束机制完整性约束作用实体完整性主关键字约束(PrimaryKey)

保证表中记录行的唯一性唯一性约束(Unique)保证在非关键字字段不出现重复值域完整性

默认值约束(Default)对没有插入值的列自动添加表定义时对该列设置的默认值非空值约束(NotNull)限定某一列必须有值,即不允许空值检查约束(Check)限定某一列中可接受的值或数据格式参照完整性外关键字(ForeignKey)

通过表间关系约束字段值的有效性3.5数据表约束和数据完整性控制

56【例3.4】在数据库School中定义学生表T_Student的主键为“StudentCode”。【例3.5】在数据库School的学生表Student中不允许出现姓名且生日相同的记录,并按姓名升序和生日降序排列,即对“StudentName”和“Birthday”字段组合定义唯一性约束。

实体完整性

主关键字约束(PrimaryKey)唯一性约束(Unique)

主关键字是能保证表中记录唯一性的一个或多个字段的组合。主键的值不能重复,且不能为空。一个表只能有一个主键。

唯一性约束可保证非主键列不输入重复值。对非主键字段或字段的组合强制唯一性。对允许空值的字段强制唯一性。

1.

实体完整性主要体现在表中记录的唯一性。57【例3.4】在数据库School中定义学生表T_Student的主键为“StudentCode”。

3.5数据表约束和数据完整性控制

58①

打开Student表的“表设计”窗口,右击任一字段行,从快捷菜单中选择“索引/键”命令,进入“索引/键”窗口。②

选择“添加”命令,将名称修改为“IX_StudentNameBirth”。点击“列”后“…”按钮,打开索引列窗口,分别在两行中选择“StudentName”、“Birthday”,并选择排序顺序,点击“确定”返回“索引/键”页。在“是唯一的”其后下拉列表框中选择“是”。【例3.5】在数据库School的学生表Student中不允许出现姓名且生日相同的记录,并按姓名升序和生日降序排列,即对“StudentName”和“Birthday”字段组合定义唯一性约束。

59域完整性默认值约束(Default)

非空值约束(NotNull)

检查约束(Check)

默认值约束使用户能够定义一个值,每当用户没有在某一列中输入值时,则系统将所定义的值提供给这一列

非空值约束要求记录中的每一列必须有值检查约束限制某一列中可接受的值或格式

2.域完整性主要体现在表中字段值的有效性。【例3.6】在数据库School的学生表T_Student中,设置性别Sex字段的默认值为“男”。

【例3.7】在数据库School的学生表T_Student中,设置StudentCode、StudentName、ClassCode、Sex字段为非空值,其他字段允许为空。

【例3.8】在数据库School的学生表T_Student中,设置Sex列的值只允许是“男”或“女”。

60【例3.6】在数据库School的学生表T_Student中,设置性别Sex字段的默认值为“男”。

①打开Student表的“表设计”页面,选择“Sex”字段②在“列属性”窗格中的“默认值或绑定”处填写‘男’。注意因为Sex字段是字符类型,‘男’采用西文单引号扩起来。③当保存表时,该约束设置即保存在数据库中。613.5数据表约束和数据完整性控制

【例3.7】在数据库School的学生表T_Student中,设置StudentCode、StudentName、ClassCode、Sex字段为非空值,其他字段允许为空。

①打开Student表的“表设计”窗口,一个字段在新建立时默认允许空(√),如果要设置为非空,只需要点击该字段在允许空位置的单元格将“√”去掉即可,再次点击又可以设置允许空“√”。②当保存表时,该约束设置即保存在数据库中。623.5数据表约束和数据完整性控制

【例3.8】在数据库School的学生表T_Student中,设置Sex列的值只允许是“男”或“女”。

①打开Student表的“表设计”窗口,右击任一字段行,从快捷菜单中选择“CHECK约束”命令,进入“CHECK约束”②

选择“添加”命令,将名称修改为“CK_Student_Sex”。③

点击“表达式”后的按钮出现“CHECK约束表达式”对话框,输入:Sex=’男’orSex=’女’④

将“表设计器”列表中的“强制用于INSERT和UPDATE”、“强制用于复制”、“在创建或重新启用时检查现存数据”都改为“是”。633.5数据表约束和数据完整性控制

参照完整性:外关键字(ForeignKey)

3.参照完整性通过表间关系约束字段的值的有效性。

两个建立关系的表中,在主表中相关字段定义了主键或唯一性约束,在从表中将相关字段定义为外键。这样,外键的取值必须是主键中存在的值或空值。【例3.9】在数据库School的学生表Student和Class表间建立关系,实施参照完整性约束。在该关系中,将Class的ClassCode字段设置为主键,将Student的ClassCode设置为外键,并实施参照完整性。

643.5数据表约束和数据完整性控制

【例3.9】在数据库School的学生表Student和Class表间建立关系,实施参照完整性约束。

打开外表Student表的“表设计”窗口,右击并选择“关系”命令,出现“外键关系”对话框。②

单击“添加”按钮,点击“表和列规范”后的按钮,出现“表和列”对话框,将主键表改为“Class”,关系的主键字段为ClassCode,在“外键表”Student下选择外键字段ClassCode。③

关系名自动变为“FK_Student_Class,该名可修改。④

在“外键关系”窗口的“表和列规范”、“INSERT和UPDATE规范”进行设置,实施参照完整性。⑤

选择“关闭”按钮完成关系创建。653.5数据表约束和数据完整性控制

3.6索引的创建和维护

661.什么是索引3.6索引的创建与维护索引与字典检字索引的原理是一样的,可实现快速找到内容。一个字典可有多个索引,如拼音、部首、五角号码等。索引是由表中的一列或者若干列的值与其对应的记录在数据表中地

温馨提示

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

评论

0/150

提交评论