




已阅读5页,还剩256页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库与程序设计,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,第1章数据库技术基础第2章SQLServer基础第3章数据库管理第4章查询和视图第5章存储过程和触发器第6章基于Web的数据库开发技术第7章数据库应用开发案例第8章数据库安全性与维护,目录,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,SQLSERVER数据库管理,数据库是数据库管理系统的核心,是存放数据库对象的容器,是使用数据库系统时首先面对的对象。数据库的效率和性能在很大程度上取决于数据库的设计和优化。数据库管理就是设计数据库、定义数据库和维护数据库的过程。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,第3章SQLSERVER数据库管理,3.1数据库结构3.2数据库的基本操作3.3数据表的基本操作3.4表数据的基本操作3.5数据完整性的实现3.6索引,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象数据库中的数据存储在物理磁盘上,由操作系统进行管理;同时,也保存在数据库中由DBMS统一管理的。但数据存储在物理磁盘上与数据被DBMS管理是两种完全不同的数据组织形式。SQLServer2005数据库管理系统将数据组织成数据表、视图等逻辑对象,这是从逻辑角度来组织与管理数据。为了数据库管理员管理数据的方便和与操作系统实际情况相一致,SQLServer2005将数据库呈现为各种数据库的文件,这是从物理角度来组织与管理数据。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象1、数据库逻辑结构从逻辑角度,SQLServer2005将数据库组织成为各种数据库对象,如数据表、视图、索引、数据类型、存储过程、触发器等。这些数据库对象是用户使用数据库的基本单位。如图3-1所示为SQLServer2005对象资源管理器中所呈现的各种数据库对象。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,图3-1SQLServer2005对象资源管理器中所呈现的各种数据库对象。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象1、数据库逻辑结构(1)表和视图表,即数据表或基本表,它是在数据库中存放的实际关系,用来存储大量的数据。一个数据库中的表可多达20亿个,每个表中可以有1024个列(字段)和无数个行(记录)。视图是为了用户查询方便或根据数据安全的需要而建立的虚表。视图既可以是一个表中数据的子集,也可以由多个表连接而成。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象1、数据库逻辑结构(2)存储过程存储过程是通过T-SQL编写的程序。存储过程包括系统存储过程和用户定义存储过程。用户定义存储过程是由用户编写的,它可以自动执行存储过程中安排的任务。(3)触发器触发器也是一种用T-SQL编写的程序,当表中发生特殊事件时自动执行。例如,可为表的插入、更新或删除操作设计触发器。当执行这些操作时,相应的触发器会自动启动。触发器主要用于保证数据的完整性。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象1、数据库逻辑结构(4)类型数据类型是存储在数据表中的各种用户定义数据类型。(5)规则和默认值规则和默认值用于加强数据库的数据完整性。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象2、数据库物理结构从物理角度看,SQLServer2005数据库以文件的形式存储在计算机硬盘上,一般一个数据库被组织成数据文件和日志文件两种类型的文件。数据文件又分为主数据文件和辅助数据文件两种形式。数据库中的所有数据和对象都存储在下列三种物理文件中:(1)主数据文件(.mdf)也称基本数据文件,该文件包含数据库的启动信息,并用于存储数据。一个数据库必须有且只有一个主数据文件。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象2、数据库物理结构(2)辅助数据文件(.ndf)又称从属文件,当数据库中的数据较多时,主数据文件的容量超过了系统的限制,就需要设置一个或多个辅助数据文件。它含有不包含在主数据文件中的数据。一个数据库可以没有、也可有一个或多个辅助数据文件。(3)日志文件(.ldf)记录了用户对数据库的所有操作。因此,根据日志文件信息可以恢复一个数据库。每个数据库至少有一个日志文件,也可以有多个日志文件。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象3、文件组SQLServer的多个文件可以归纳成为一个文件组(Filegroup)。文件组是数据库中数据文件的逻辑组合。使用文件组可以实现将数据分布在多个磁盘上并在查询过程中使用并行线程同时扫描多个磁盘,从而加快查询速度、改善系统性能。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象3、文件组数据库文件和文件组必须遵循以下规则:一个文件和文件组只能被一个数据库使用。也就是说,一个文件和文件组中不能包含其他数据库的数据;一个数据库文件只能属于一个文件组;日志文件不能被加入文件组中,即文件组只包含主数据文件和辅助数据文件。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象3、文件组文件组有以下三种类型。(1)主文件组:主文件组(PrimaryFilegroup)中包含着主数据文件及相关内容。在创建数据库时,系统自动创建了主文件组,并将主数据文件及系统表的所有页都分配到主文件组中。(2)用户定义文件组:由用户通过SQLServerManagementStudio或T-SQL语句中的FILEGROUP子句创建的文件组称为用户定义文件组(User-DefinedFilegroup)。该组中包含逻辑上一体的数据文件和相关信息,大多数数据库只需要一个文件组和一个日志文件就可很好的运行。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.1数据库对象3、文件组文件组有以下三种类型。(3)默认文件组:在每个数据库中,同一时间只能有一个文件组是默认文件组(DefaultFilegroup)。当进行数据操作时,如果不指定文件组,则系统自动选择默认文件组。使用T-SQL的ALTERDATABASE语句可以指定数据库的默认文件组。在不特别指定的情况下,系统将主文件组认定为默认文件组。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库SQLServer2005中含两种类型的数据库:系统数据库用户数据库系统数据库中记录着SQLServer2005的配置情况、任务情况和用户数据库的情况等系统管理的信息,我们使用系统数据库来操作和管理各种数据库。用户数据库是根据用户要求创建的数据库,保存着用户直接需要的数据信息。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库SQLServer2005提供了4个系统数据库和2个范例数据库。4个系统数据库包括master、model、msdb、tempdb。2个范例数据库是AdventureWorks、AdventureWorksDW,范例数据基于一个虚拟的公司AdventureWorksCycles,这是一个大型的跨国制造公司,它生产金属和复合材料自行车,产品远销北美、欧洲和亚洲市场。范例数据库可以作为SQLServer的学习工具。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库1、master数据库master数据库记录了SQLServer系统的所有系统级别信息,主要有:所有的登录信息系统设置信息SQLServer初始化信息系统中其他系统数据库和用户数据库信息,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库1、master数据库如果计算机上安装了一个SQLServer2005系统,那么系统首先会建立一个master数据库来记录系统的有关登录账户、系统配置、数据库文件等初始化信息;如果用户在这个SQLServer2005系统中建立一个用户数据库(如通用论文管理系统数据库),系统马上将用户数据库的有关用户管理、文件配置、数据库属性等信息写入到master数据库。系统是根据master数据库里的信息来管理系统和其他数据库的。如果master数据库信息被破坏,整个SQLServer2005系统将受到影响,用户数据库将不能被使用。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库2、model数据库model数据库是创建所有用户数据库和tempdb数据库的模版文件。当创建数据库时,系统会将model数据库中的内容复制到新建的数据库中。因为每次启动SQLServer时都会创建tempdb,所以model数据库必须始终存在于SQLServer系统中。当如果修改model数据库,之后创建的所有数据库都将继承这些修改。例如,可以设置权限或数据库选项或者添加对象,例如,表、函数或存储过程。利用model数据库的模版特性,通过更改model数据库的设置,并将常使用的数据库对象复制到model数据库中,可以大大简化数据库及其对象的创建、设置工作,节省大量的时间。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库3、msdb数据库msdb数据库是SQLServer2005代理服务使用的数据库,供代理程序调度警报作业以及记录操作员的操作时使用。SQLServer、SQLServerEnterpriseManager和SQLServerAgent使用Msdb数据库来存储计划信息以及与备份和恢复相关的信息。尤其是SQLServerAgent需要使用它来执行安排工作和警报、记录操作者等操作。例如,当很多用户在使用一个数据库时,经常会出现多个用户对同一数据的修改而造成数据不一致现象,或者是用户对某些数据和对象的非法操作等。为了防止上述现象的发生,SQLServer里面有一套代理程序能够按照系统管理员的设定来监控上述现象的发生,以便及时向系统管理员发出警报。当代理程序调度警报和作业、记录操作员操作的时候,系统要用到或实时产生许多相关信息,这些信息一般存储在msdb数据库里面。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库4、tempdb数据库tempdb数据库用作系统的临时存储过程空间,其主要作用如下:存储用户建立的临时表和临时存储过程存储用户说明的全局变量值为数据排序创建临时表存储过程用户利用游标说明所筛选出来的数据该数据库在SQLServer每次启动时都重新创建,也就是说用户在tempdb数据库里建立的所有对象都将被删除,因此该数据库在系统启动时总是干净的。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.1数据库结构,3.1.2系统数据库和用户数据库无论是系统数据库还是用户数据库,每个SQLServer2005数据库在物理上都由至少一个数据文件和一个事务日志文件组成,系统用文件组的形式把它们作为一个单元来管理。数据文件主要记录数据库的启动信息并用来存储数据。而事务日志文件里包含着用于恢复数据库事务的日志信息,使得数据库操作具有事务功能,以保证数据的一致性和完整性。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2数据库的基本操作,对用户数据库的操作,SQLServer2005中提供了两种方法:一种方法是使用SQLServerManagementStudio对象资源管理器此方法直观简单,以图形化的方式完成数据库的操作;另一种方法是使用TSQL语句此方法可以将创建数据库的代码(或称脚本)保存下来,在其他机器上运行可以操作相同的数据库。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2数据库的基本操作,3.2.1创建用户数据库在这一节中我们首先创建student数据库,该数据库为学生成绩管理提供数据库服务。1、使用“对象资源管理器”创建用户数据库(1)打开SQLServer2005的ManagementStudio,进入对象资源管理器,展开指定的服务器,鼠标右击“数据库”,在快捷菜单中选择“新建数据库”,如图3-2所示。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2数据库的基本操作,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2数据库的基本操作,3.2.1创建用户数据库(2)打开“新建数据库”对话框,在该对话框的“常规”标签页内,如图3-3所示,可以定义:数据库的名称、数据库的所有者、是否使用全文索引、数据文件和日志文件的逻辑名称和路径(物理名称)、文件组、初始大小和增长方式等。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,相关信息的填写,在“数据库名称”文本框中输入要创建的数据库名称:student;“所有者”文本框是选择数据库操作的用户,这里选择默认值表示数据库所有者为登录Windows的管理员账户;在“逻辑名称”文本框里可以修改数据文件和日志文件的逻辑名称。系统默认的数据文件初始大小为3MB、增量为1MB、不限制增长,日志文件为1MB、增量为10%、不限制增长。用户可以在这里修改这些数据库设计参数。单击“路径”框里的“”,系统弹出如图3-4所示的“定位文件夹”的界面,在此可以修改数据库文件存储路径。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,新建数据库mydatabase后的界面,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2数据库的基本操作,3.2.2修改用户数据库建立数据库之后,可以根据需要对数据库的设置进行修改,以满足新的要求。1、使用“对象资源管理器”查看和修改数据库打开ManagementStudio,进入对象资源管理器,展开服务器和数据库;鼠标右击用户数据库student图标,从快捷菜单中选择“属性”,系统弹出如图3-8所示的“数据库属性”界面。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2.2修改用户数据库,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,(1)更改数据库的所有者,打开“数据库属性”的“文件”标签页,单击“所有者”文本框旁边的“”按钮,弹出如图3-9(a)所示界面,单击“浏览”按钮,就可在“查找对象”对话框(图3-9(b)上选择新的数据库的所有者。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,(2)调整数据库的增长属性,打开“数据库属性”的“文件”标签页,单击“自动增长”文本框里的“”按钮,弹出如图3-10所示的设置界面,就可以更改数据库的自动增长属性值了。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,(3)添加文件组,打开“数据库属性”的“文件组”标签页,单击“添加”按钮,弹出如图3-11所示的界面,就可以添加新的文件组。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,(4)限制访问数据库的用户,某些情况下,例如在维护或测试数据库时,数据库管理员需要设定访问数据库的用户数或用户角色。打开如图3-12所示的“数据库属性”的“选项”标签页,单击“限制访问”下拉框。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,(4)限制访问数据库的用户,其中:“Multiple”表示允许多个用户同时访问数据库;“Single”表示只能有一个用户访问数据库,其他用户被中断访问;“Restricted”表示只有db_owner(数据库所有者)、dbcreater(数据库创建者)和sysadmin(系统管理员)三种角色的成员才能访问数据库。注意:SQLServer2005中定义了许多数据库用户角色,每种角色的用户具有特定的数据库操作权限。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2.3重命名用户数据库,数据库创建之后,一般情况下不要更改数据库的名称,因为许多应用程序可能已经使用了该数据库的名称。数据库名称更改之后,需要修改相应的应用程序。如果确实需要更改数据库名称,可以在“对象资源管理器”上直接改名。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2.3重命名用户数据库,1、使用“对象资源管理器”重命名数据库在对象资源管理器上右击要改名的用户数据库,在出现的快捷菜单中单击“重命名”,即可进行更名操作。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.2.4删除用户数据库,1、使用“对象资源管理器”删除数据库在“对象资源管理器”中,选择要删除的数据库,鼠标右击之并选择“删除”选项,出现如图3-13所示的对话框。注意:删除数据库一定要慎重,因为删除后,与此数据库关联的数据库文件和事务日志文件都会被删除,存储在系统数据库中的关于该数据库的所有信息也会被删除。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,删除数据库对话框,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,在SQLServer2005中,数据表是一种很重要的数据库对象,主要用来存储数据。在创建数据库之后,就可以创建数据表。1.创建数据表2.修改表结构3.删除数据表,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.1创建数据表数据表由结构和数据两部分组成。数据表的建立分两步:首先创建表结构;然后输入数据。创建数据表的关键是定义表的结构,通常创建表之前的重要工作是设计表结构,即确定:表的名字、表中各个数据项的列名、数据类型和长度、是否为空值等。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.1创建数据表例如:数据库student中涉及三个数据表,它们分别是用于存储学生信息的student表、用于存储课程信息的course表、用于存储学生成绩的sc表,其表结构分别见表3-1、3-2、3-2。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,例表,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.1创建数据表1、使用“对象资源管理器”创建表结构【例3-7】使用“对象资源管理器”创建student表结构。(1)展开已经创建的student数据库,在“表”选项上右击鼠标,选择“新建表”命令。(2)打开表设计窗口后,依次输入列名、数据类型、长度、允许空等属性,其中sno列要设置为主键,右击该列,选择“设置主键”,如图3-14所示。注意:长度的输入可以在所选数据类型后的括号内直接修改其中数值。(3)完成后点击工具栏中的保存按钮,输入表名“student”,单击确定,如图3-15所示。(4)完成后,在student数据库的“表”选项中,可以看到新建的student表。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,创建表的过程,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,创建表的过程,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,创建表完成后的界面,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.1创建数据表3、查看表结构(1)使用“对象资源管理器”查看在对象资源管理器中,鼠标右击需要查看结构的表,在弹出的快捷菜单中选择“修改(设计)”命令,打开数据表窗口,即可查看数据表结构信息。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.2修改表结构数据表创建以后,在使用过程中可能需要对原先定义的表结构进行修改。对表结构的修改包括:更改表名增加列删除列修改已有列的属性(列名、数据类型等)等等,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.2修改表结构1、使用“对象资源管理器”修改表结构SQLServer允许修改表的名字。但当表名改变后,与此相关的某些对象(如视图、存储过程等)将无效,因为它们都与表名有关。建议一般不要随便更改已有的表名,特别是对那些已经定义了视图等对象的表。修改表名只需鼠标右击相应的表,在快捷菜单中选择“重命名”选项,接着在表名的位置上输入新的表名后回车,即可完成更改表名的操作。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.2修改表结构1、使用“对象资源管理器”修改表结构当表中已有记录后,不要轻易修改表的结构,特别是修改列的数据类型,以免造成错误。例如,表中某列原来的数据类型是decimal型,如果将它改为int型,那么表中原有的记录值将丢掉小数部分,从而引起数值错误。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.2修改表结构1、使用“对象资源管理器”修改表结构【例3-11】给student表增加一列,名为sbirthday,即出生日期,日期类型,允许空。具体操作步骤如下:(1)展开student数据库,右击student表,在快捷菜单中选择“修改(设计)”选项。(2)打开表设计器,增加一列,如图3-18。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,修改表结构界面(1),高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,修改表结构界面(2),高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,修改表结构界面(3),高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,修改表结构界面(4),高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.3数据表的基本操作,3.3.3删除数据表1、使用“对象资源管理器”删除数据表【例3-15】删除student数据库中的scls表(假设已建立)。具体操作如下:(1)展开student数据库,鼠标右击scls表,在快捷菜单中选择“删除”选项。(2)打开“删除对象”对话框,单击“确定”,如图3-19,删除scls表。(3)展开student数据库“表”选项,scls表被删除。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,删除数据表,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,删除数据表,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,数据表由两部分组成:表结构和表数据。在创建数据表时也要分两步完成,首先建立表结构,然后添加表数据(即记录)。当两者都建立之后,一个完整的数据表就建立了。表结构可以修改,表数据在使用过程中也会随时需要进行修改,包括添加、更新或删除。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录student数据库中三个表的数据见表3-4、3-5、3-6。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,例题数据表的数据,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录1、使用“对象资源管理器”添加记录【例3-17】给student表输入数据。具体步骤如下(1)展开student数据库,右击student表,在快捷菜单中选择“打开表”选项,如图3-20。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,(2)打开student表,依次输入各记录值,如图3-21,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,输入数据后的三个数据表,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,添加记录,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录3、添加记录的注意事项在向表中添加记录时,无论使用“对象资源管理器”,还是使用T-SQL语句,都应注意以下几个问题:(1)表中数据的类型、长度、允许空等属性必须与定义表结构时一致。如:student表的sbirthday列是datetime类型,应按如“2000-2-6”的格式输入,这样系统才会接受,否则将出现“类型不一致”的提示。course表的cno列长度是3个字节,如果输入超过此长度,如“00000000001”,则会出现“错误”的提示。course表中的pre_cno列允许空,则可以不输入数据,如第1个记录和第6个记录就没有提供pre_cno列的值;有些不允许为空的列则必须输入数据。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录(2)主键列的数据不能有重复。如:studeng表的sno列为主键,各记录中的sno不能有重复数据,否则会出现“违反了PRIMARYKEY约束”的提示。sc表的sno列和cno列一起做为主键,各记录中的这两列不能同时相同,但一列相同、一列不同可以。(3)某些列要遵守其约束的规定。如:sc表的grade列要遵守CHECK约束,即该列的数值必须大于0,否则将会出现“违反了CHECK约束”的提示。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录(4)外键列中的数据必须是其参照表、参照列中已有的数据,因此输入数据时,应先输入其参照表。如:sc表的sno列、cno列是外键,参照表、列分别是student表的sno列和course表的cno列。sc表的sno列中的数据必须都是student表的sno列中已有的数据,它的cno列中的数据必须都是course表的cno列中已有的数据。如果输入其它数据,将会出现“FOREIGNKEY约束冲突”的提示。如图3-23。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.1添加记录显然,在这三个表输入数据时,应先输入student表和course表的数据,再输入sc表的数据。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.2修改记录1、使用“对象资源管理器”修改记录右击需要修改数据的表,在快捷菜单中选择“打开表”选项,打开表数据编辑器,直接修改即可。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.3删除记录1、使用“对象资源管理器”删除记录【例3-23】删除sc_2008002表中的第2条纪录。具体步骤如下:(1)展开student数据库,右击sc_2008002表,在快捷菜单中选择“打开表”选项。(2)打开表数据编辑器,单击第2条记录最左边方框,使整个记录呈被选中状态(淡蓝色)。(3)右击被选中的第2条记录,在快捷菜单中选择“删除”选项,如图3-24所示。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,删除记录,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.4表数据的基本操作,3.4.3删除记录(4)弹出删除记录的提示信息对话框,如图3-25所示,单击“是”按钮,即可删除该记录。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,数据完整性,又称数据库完整性,是指数据的正确性、有效性和相容性,目的是防止错误数据进入数据库。所谓正确性是指数据的合法性,如日期型数据中“月”只能从1到12,否则就是非法数据;所谓有效性是指数据是否属于所定义的有效范围,如人的年龄不能是负数;性别只能是男或女等;所谓相容性是指表示同一事实的两个数据必须相同,不一致就是不相容。如表示年龄一个人的用数值“32”表示,另一个人用字符“三十二”表示,这样用来表示年龄的数据就不相容了。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。在评价数据库的设计时,数据完整性的设计是数据库设计好坏的一项重要指标。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.1数据完整性在MicrosoftSQLServer2005系统中,有3种数据完整性类型:实体完整性参照完整性域完整性,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.1数据完整性1、实体完整性实体完整性,也可以称为行完整性,要求表中的所有行有一个唯一的标识符,这种标识符一般称为主键值。例如,对于一个学校的所有学生来说,学号是唯一的,利用学号可以唯一地确定某个同学,因此可以把学号作为主键对待。主键值是否能够被修改或表中的数据是否能够被全部删除都要依赖于主键表和其他表之间要求的完整性(外键约束,参照完整性)。在SQLServer中,利用PRIMARYKEY约束、UNIQUE约束实现实体完整性。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.1数据完整性2、参照完整性约束参照完整性是保证参照表(外键所在的表)与被参照表(主键所在的表)中数据的一致性。如果被参照表中的一行被一个外键所参考,那么这一行数据便不能直接被删除,用户也不能直接修改主键值。例如,在student数据库中,sc表的sno被定义为外键,其参照的表及列是student表的sno列,则student表中的sno列值就不能随意删除和修改。在SQLServer中,利用FOREIGNKEY约束实现参照完整性。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.1数据完整性3、域完整性域完整性,也可以称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常使用有效性检查来实现,还可以通过限制数据类型、格式或者可能的取值范围来实现。例如,设置学生入校的日期大于他的出生日期;在性别列中,限制其取值范围为“男”和“女”,这样就不能在该列输入其他一些无效的值。最简单的域完整性方法是数据类型,例如,在出生日期列中定义该列的数据类型是DATETIME,则该列就不会出现其他一些不符合日期格式的数据。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.1数据完整性3、域完整性在SQLServer中,利用NULL|NOTNULL约束、CHECK约束、默认、规则来实现。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,SQLServer提供的实现数据库完整性的这些方法又可以归纳为约束、默认、规则三种数据库对象。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.2约束约束是通过限制列中数据、行中数据和表之间数据来保证数据完整性的非常有效的方法。约束可以确保把有效的数据输入到列中,并维护表和表之间的特定关系。定义约束时,可以把约束放在一列上,也可以把约束放在多个列上。如果把约束放在一个列上,则该约束称为列级约束,它只能由约束所在的列引用。如果把约束放在多个列上,则把该约束称为表级约束,这时可以由这多个列来引用该约束。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.2约束当创建约束时,可以指定约束的名称。否则,MicrosoftSQLServer系统将提供一个复杂的、系统自动生成的名称。对于一个数据库来说,约束名称必须是唯一的。SQLServer提供以下几种约束来实现数据完整性:PRIMARYKEY约束FOREIGNKEY约束NULL|NOTNULL约束UNIQUE约束CHECK约束,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.2约束1、PRIMARYKEY约束PRIMARYKEY约束,也称主键约束,作为一个表的主属性,可以惟一标识表中的记录。在输入数据时,主键列不能为空且不能有重复值。每个表(都应该有且)只能有一个主键。该约束用于强制实体完整性。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.2约束1、PRIMARYKEY约束(1)使用“对象资源管理器”管理PRIMARYKEY约束设置PRIMARYKEY约束选中需要管理的表,右击之,在快捷菜单中选择“设计(修改)”选项;打开该表设计器,选中需要设置为主键的列,右击之,在快捷菜单中选择“设置主键”或单击工具栏中的“设置主键”按钮,设置结果如图3-26。如果主键由多列组成,先选中其中的一列,然后按住“Ctrl”键不放,同时用鼠标选择其他列,最后选择工具栏的“设置主键”按钮,即可将多列组合设置成主键。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,主键的设置,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,主键出现重复值,系统弹出的错误信息提示,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,3.5数据完整性的实现,3.5.2约束1、PRIMARYKEY约束(1)使用“对象资源管理器”管理PRIMARYKEY约束删除主键若想删除主键设置,操作步骤同上,这时对应菜单和命令按钮都显示为“移除主键”。,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,高等教育“十一五”国家级规划教材数据库与程序设计山东大学出版社,删除主键,高等教育“十一五”国家级规划教材数据库与程序设计山东大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高端医疗设备性能保证及紧急维修响应服务合同
- 生物医药研发人员竞业禁止与商业机密保护合同范本
- 2025年新能源汽车共享租赁事故责任免除与维护保养服务合同
- 2025年智慧城市网络安全应急响应与维护服务合同
- 2025年度企业员工职业素养提升与技能培训政府采购服务合同
- 2025年地下综合管廊施工安装劳务合同实施细则
- 2025年度全球液化天然气多式联运服务合同
- 2025年初创科技企业全面财务托管及资金规划服务合同
- 2025年度大型数据中心网络安全保障与优化升级合同
- 二零二五年度文化旅游区开发商物业移交及文旅服务合同
- 2025至2030中国密封圈行业项目调研及市场前景预测评估报告
- 非全日制用工劳动合同书
- 实习安全知识培训课件
- 2025年国家基本公共卫生监督协管测试题及答案
- 2025年食品安全抽样考试试题题库(含答案)
- DZ∕T 0399-2022 矿山资源储量管理规范(正式版)
- 放射科质控汇报
- 2023年山东威海乳山市事业单位招聘带编入伍高校毕业生12人笔试备考题库及答案解析
- 结构方案论证会汇报模板参考83P
- 《企业人力资源管理专业实践报告2500字》
- 万东GFS型高频高压发生装置维修手册
评论
0/150
提交评论