SQLSERVER数据库管理课件

上传人:人*** 文档编号:569311101 上传时间:2024-07-28 格式:PPT 页数:261 大小:5.67MB
返回 下载 相关 举报
SQLSERVER数据库管理课件_第1页
第1页 / 共261页
SQLSERVER数据库管理课件_第2页
第2页 / 共261页
SQLSERVER数据库管理课件_第3页
第3页 / 共261页
SQLSERVER数据库管理课件_第4页
第4页 / 共261页
SQLSERVER数据库管理课件_第5页
第5页 / 共261页
点击查看更多>>
资源描述

《SQLSERVER数据库管理课件》由会员分享,可在线阅读,更多相关《SQLSERVER数据库管理课件(261页珍藏版)》请在金锄头文库上搜索。

1、高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社数据库与程序设计 SQL-SERVER数据库管理数据库管理高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社第第1章章数据库技术基础数据库技术基础第第2章章SQLServer基础基础第第3章章数据库管理数据库管理第第4章章查询和视图查询和视图第第5章章存储过程和触发器存储过程和触发器第第6章章基于基于Web的数据库开发技术的数据库开发技术第第7章章数据库应用开发案例数据库应用开发案例第第8章章数据库

2、安全性与维护数据库安全性与维护目 录SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社 SQL SERVERSQL SERVER数据库管理数据库管理 u数据库数据库是数据库管理系统的核心,是存放数据库对象的是数据库管理系统的核心,是存放数据库对象的容器,是使用数据库系统时首先面对的对象。容器,是使用数据库系统时首先面对的对象。u数据库的效率和性能在很大程度上取决于数据库的设计数据库的效率和性能在很大程度上取决于数据库的设

3、计和优化。和优化。u数据库管理就是数据库管理就是设计数据库设计数据库、定义数据库定义数据库和和维护数据库维护数据库的过程。的过程。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社第第3 3章章 SQL SERVERSQL SERVER数据库管理数据库管理 n3.1 3.1 数据库结构数据库结构n3.2 3.2 数据库的基本操作数据库的基本操作n3.3 3.3 数据表的基本操作数据表的基本操作n3.4 3.4 表数据的基

4、本操作表数据的基本操作n3.5 3.5 数据完整性的实现数据完整性的实现n3.6 3.6 索引索引SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象u数据库中的数据存储在物理磁盘上,由操作系统进行管理;数据库中的数据存储在物理磁盘上,由操作系统进行管理;同时,也保存在数据库中由同时,也保存在数据库中由DBMS统一管理的。统一管理的。u但数据存储在物理磁盘

5、上与数据被但数据存储在物理磁盘上与数据被DBMS管理是两种完全管理是两种完全不同的数据组织形式。不同的数据组织形式。uSQLServer2005数据库管理系统将数据组织成数据库管理系统将数据组织成数据表、数据表、视图视图等逻辑对象,这是从逻辑角度来组织与管理数据。等逻辑对象,这是从逻辑角度来组织与管理数据。u为了数据库管理员管理数据的方便和与操作系统实际情况为了数据库管理员管理数据的方便和与操作系统实际情况相一致,相一致,SQLServer2005将数据库呈现为将数据库呈现为各种数据库的各种数据库的文件文件,这是从物理角度来组织与管理数据。,这是从物理角度来组织与管理数据。SQL-SERVER

6、数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l1、数据、数据库逻辑结构构u从逻辑角度,从逻辑角度,SQLServer2005将数据库组织成为各种将数据库组织成为各种数据库对象,如数据库对象,如数据表、视图、索引、数据类型、存储数据表、视图、索引、数据类型、存储过程、触发器过程、触发器等。等。u这些数据库对象是用户使用数据库的基本单位。这些数据库对象是用户使用数据库的基

7、本单位。u如图如图3-1所示为所示为SQLServer2005对象资源管理器中所呈对象资源管理器中所呈现的各种数据库对象。现的各种数据库对象。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构u图图3-1SQLServer2005对象资源管理器中所呈现的各种对象资源管理器中所呈现的各种数据库对象。数据库对象。SQL Server2005SQL Server2005数据库对象数据库对象S

8、QL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l1、数据、数据库逻辑结构构u(1)表和视图表和视图p表表,即,即数据表数据表或或基本表基本表,它是在数据库中存放的实际关系,用来,它是在数据库中存放的实际关系,用来存储大量的数据。存储大量的数据。一个数据库中的表可多达一个数据库中的表可多达2020亿个,每个表中可以有亿个,每个表中可以有10241024个

9、列(字段)个列(字段)和无数个行(记录)。和无数个行(记录)。p视图视图是为了用户查询方便或根据数据安全的需要而建立的虚表。是为了用户查询方便或根据数据安全的需要而建立的虚表。视图既可以是一个表中数据的子集,也可以由多个表连接而成。视图既可以是一个表中数据的子集,也可以由多个表连接而成。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l1、数据、数据库

10、逻辑结构构u(2)(2)存储过程存储过程p存储过程存储过程是通过是通过T-SQLT-SQL编写的程序。编写的程序。p存储过程包括存储过程包括系统存储过程系统存储过程和和用户定义存储过程用户定义存储过程。用户定义存储过。用户定义存储过程是由用户编写的,它可以自动执行存储过程中安排的任务。程是由用户编写的,它可以自动执行存储过程中安排的任务。u(3)触发器触发器p触发器触发器也是一种用也是一种用T-SQLT-SQL编写的程序,当表中发生特殊事件时自动执编写的程序,当表中发生特殊事件时自动执行。行。例如,可为表的插入、更新或删除操作设计触发器。当执行这些操作时,例如,可为表的插入、更新或删除操作设计

11、触发器。当执行这些操作时,相应的触发器会自动启动。相应的触发器会自动启动。p触发器主要用于保证数据的完整性。触发器主要用于保证数据的完整性。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l1、数据、数据库逻辑结构构u(4)类型类型p数据类型数据类型是存储在数据表中的各种是存储在数据表中的各种用户定义用户定义数据类型。数据类型。u(5)规则和默认值规则

12、和默认值p规则规则和和默认值默认值用于加强数据库的数据完整性。用于加强数据库的数据完整性。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l2、数据、数据库物理物理结构构u从物理角度看,从物理角度看,SQLServer2005数据库以文件的形式存储在数据库以文件的形式存储在计算机硬盘上,一般一个数据库被组织成计算机硬盘上,一般一个数据库被组织成数据文件

13、数据文件和和日志文件日志文件两种类型的文件。两种类型的文件。u数据文件数据文件又分又分为主数据文件为主数据文件和和辅助数据文件辅助数据文件两种形式。两种形式。u数据库中的所有数据和对象都存储在下列三种物理文件中:数据库中的所有数据和对象都存储在下列三种物理文件中:p(1)主数据文件主数据文件(.mdf)也称基本数据文件,该文件包含数据库的启动信息,并用于存储数据。也称基本数据文件,该文件包含数据库的启动信息,并用于存储数据。一个数据库必须有且只有一个主数据文件一个数据库必须有且只有一个主数据文件。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出

14、版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l 2、数据、数据库物理物理结构构p(2)辅助数据文件助数据文件(.ndf)又称从属文件,当数据库中的数据较多时,主数据文件的容量又称从属文件,当数据库中的数据较多时,主数据文件的容量超过了系统的限制,就需要设置一个或多个辅助数据文件。它含超过了系统的限制,就需要设置一个或多个辅助数据文件。它含有不包含在主数据文件中的数据。有不包含在主数据文件中的数据。一个数据库可以没有、也可有一个或多个辅助数据文件

15、。一个数据库可以没有、也可有一个或多个辅助数据文件。p(3)日志文件日志文件(.ldf)记录了用户对数据库的所有操作。因此,根据日志文件信息可记录了用户对数据库的所有操作。因此,根据日志文件信息可以恢复一个数据库。以恢复一个数据库。每个数据库至少有一个日志文件,也可以有多个日志文件。每个数据库至少有一个日志文件,也可以有多个日志文件。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n

16、3.1.1数据库对象数据库对象l3、文件、文件组uSQLServer的多个文件可以归纳成为一个文件组()。的多个文件可以归纳成为一个文件组()。u文件组文件组是数据库中数据文件的逻辑组合。是数据库中数据文件的逻辑组合。u使用文件组可以实现将数据分布在多个磁盘上并在查询使用文件组可以实现将数据分布在多个磁盘上并在查询过程中使用并行线程同时扫描多个磁盘,从而加快查询过程中使用并行线程同时扫描多个磁盘,从而加快查询速度、改善系统性能。速度、改善系统性能。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材

17、国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l3、文件、文件组u数据库文件和文件组必须遵循以下规则:数据库文件和文件组必须遵循以下规则:p一个文件和文件组只能被一个数据库使用。也就是说,一个一个文件和文件组只能被一个数据库使用。也就是说,一个文件和文件组中不能包含其他数据库的数据;文件和文件组中不能包含其他数据库的数据;p一个数据库文件只能属于一个文件组;一个数据库文件只能属于一个文件组;p日志文件不能被加入文件组中,即文件组只包含主数据文件日志文件不能被加入文件组中,即文件组只包含主数据文件

18、和辅助数据文件。和辅助数据文件。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l3、文件、文件组u文件组有以下三种类型。文件组有以下三种类型。p(1)主文件主文件组:主文件组(主文件组(Primary)中包含着主数据文件及相关内容。)中包含着主数据文件及相关内容。在创建数据库时,在创建数据库时,系统自动创建了主文件组系统自动创建了主文件组,并将主数据

19、文件及系统表,并将主数据文件及系统表的所有页都分配到主文件组中。的所有页都分配到主文件组中。p(2)用用户定定义文件文件组:由用户通过由用户通过SQLServerManagementStudio或或T-SQL语句中的子句创语句中的子句创建的文件组称为用户定义文件组建的文件组称为用户定义文件组(User-Defined)。)。该组中包含逻辑上一体的数据文件和相关信息,大多数数据库只需要一该组中包含逻辑上一体的数据文件和相关信息,大多数数据库只需要一个文件组和一个日志文件就可很好的运行。个文件组和一个日志文件就可很好的运行。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计

20、山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.1数据库对象数据库对象l3、文件、文件组u文件组有以下三种类型。文件组有以下三种类型。p(3)默默认文件文件组:在每个数据库中,同一时间只能有一个文件组是在每个数据库中,同一时间只能有一个文件组是默认文件组默认文件组(Default)。当进行数据操作时,如果不指定文件组,则系统自动选择默认当进行数据操作时,如果不指定文件组,则系统自动选择默认文件组。文件组。使用使用T-SQL的的ALTERDATAB

21、ASE语句可以指定数据库的默认文语句可以指定数据库的默认文件组。件组。在不特别指定的情况下,系统将主文件组认定为默认文件组在不特别指定的情况下,系统将主文件组认定为默认文件组。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库uSQLServer2005中含两种类型的数据库:中含两种类型的数据库:p系系统数据数据库p用用户数据数据

22、库u系统数据库系统数据库中记录着中记录着SQLServer2005的配置情况、任的配置情况、任务情况和用户数据库的情况等系统管理的信息,我们使务情况和用户数据库的情况等系统管理的信息,我们使用系统数据库来操作和管理各种数据库。用系统数据库来操作和管理各种数据库。u用户数据库用户数据库是根据用户要求创建的数据库,保存着用户是根据用户要求创建的数据库,保存着用户直接需要的数据信息。直接需要的数据信息。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山

23、东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库uSQLServer2005提供了提供了4个系统数据库和个系统数据库和2个范例数据库。个范例数据库。p4个系个系统数据数据库包括包括master、model、msdb、tempdb。p2个范例数据个范例数据库是是AdventureWorks、AdventureWorksDW,范,范例数据基于一个虚例数据基于一个虚拟的公司的公司AdventureWorksCycles,这是一个大是一个大型的跨国制造公司,它生型的跨国制造公司,它生产金属和复合材料自行金属和复合材料自行车,产品品远

24、销北美、北美、欧洲和欧洲和亚洲市洲市场。u范例数据库可以作为范例数据库可以作为SQLServer的学习工具。的学习工具。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库l1、master数据数据库umaster数据库数据库记录了记录了SQLServer系统的所有系统级别信系统的所有系统级别信息,主要有:息,主要有:p所有的登所有

25、的登录信息信息p系系统设置信息置信息pSQLServer初始化信息初始化信息p系系统中其他系中其他系统数据数据库和用和用户数据数据库信息信息SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库l1、master数据数据库u如果计算机上安装了一个如果计算机上安装了一个SQLServer2005系统,那么系统首先会系统,那么系统首先会建

26、立一个建立一个master数据库来记录系统的有关数据库来记录系统的有关登录账户、系统配置、数登录账户、系统配置、数据库文件等初始化信息据库文件等初始化信息;u如果用户在这个如果用户在这个SQLServer2005系统中建立一个用户数据库系统中建立一个用户数据库(如如通用论文管理系统数据库通用论文管理系统数据库),系统马上将用户数据库的有关,系统马上将用户数据库的有关用户管理、用户管理、文件配置、数据库属性等信息写入到文件配置、数据库属性等信息写入到master数据库数据库。u系统是根据系统是根据master数据库里的信息来管理系统和其他数据库的。数据库里的信息来管理系统和其他数据库的。p如果如

27、果master数据数据库信息被破坏,整个信息被破坏,整个SQLServer2005系系统将受到影响,将受到影响,用用户数据数据库将不能被使用。将不能被使用。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库l2、model数据数据库umodel数据库数据库是创建所有用户数据库和是创建所有用户数据库和tempdb数据库的数据库的模版

28、文件模版文件。p当当创建数据建数据库时,系,系统会将会将model数据数据库中的内容复制到新建的数据中的内容复制到新建的数据库中。中。u因为每次启动因为每次启动SQLServer时都会创建时都会创建tempdb,所以所以model数据数据库必须始终存在于库必须始终存在于SQLServer系统中系统中。u当如果修改当如果修改model数据库,之后创建的所有数据库都将继承这些修数据库,之后创建的所有数据库都将继承这些修改。改。p例如,可以例如,可以设置置权限或数据限或数据库选项或者添加或者添加对象,例如,表、函数或存象,例如,表、函数或存储过程。程。u利用利用model数据库的模版特性,通过更改数

29、据库的模版特性,通过更改model数据库的设置,并将数据库的设置,并将常使用的数据库对象复制到常使用的数据库对象复制到model数据库中,可以大大简化数据库及数据库中,可以大大简化数据库及其对象的创建、设置工作,节省大量的时间。其对象的创建、设置工作,节省大量的时间。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库l3、msdb

30、数据数据库umsdb数据库数据库是是SQLServer2005代理服务使用的数据库,供代理程序代理服务使用的数据库,供代理程序调度警报作业以及记录操作员的操作时使用。调度警报作业以及记录操作员的操作时使用。uSQLServer、SQLServerEnterpriseManager和和SQLServerAgent使用使用Msdb数据库来数据库来存储计划信息以及与备份和恢复相关的信息。尤其是存储计划信息以及与备份和恢复相关的信息。尤其是SQLServerAgent需要使用它来执行需要使用它来执行安排工作和警报、记录操作者等操安排工作和警报、记录操作者等操作。作。p例如,当很多用例如,当很多用户在使

31、用一个数据在使用一个数据库时,经常会出常会出现多个用多个用户对同一数据的修改同一数据的修改而造成数据不一致而造成数据不一致现象,或者是用象,或者是用户对某些数据和某些数据和对象的非法操作等。象的非法操作等。为了防止上了防止上述述现象的象的发生,生,SQLServer里面有一套代理程序能里面有一套代理程序能够按照系按照系统管理管理员的的设定来定来监控控上述上述现象的象的发生,以便及生,以便及时向系向系统管理管理员发出警出警报。当代理程序。当代理程序调度警度警报和作和作业、记录操作操作员操作的操作的时候,系候,系统要用到或要用到或实时产生生许多相关信息,多相关信息,这些信息一般存些信息一般存储在在

32、msdb数据数据库里面。里面。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库l4、tempdb数据数据库utempdb数据库数据库用作系统的临时存储过程空间,其主要作用如下:用作系统的临时存储过程空间,其主要作用如下:p存存储用用户建立的建立的临时表和表和临时存存储过程程p存存储用用户说明的全局明的全局变量量值p为数据排序数据

33、排序创建建临时表表p存存储过程用程用户利用游利用游标说明所明所筛选出来的数据出来的数据u该数据库在该数据库在SQLServer每次启动时都重新创建,也就是说用户在每次启动时都重新创建,也就是说用户在tempdb数据库里建立的所有对象都将被删除数据库里建立的所有对象都将被删除,因此该数据库在系统启动,因此该数据库在系统启动时总是干净的。时总是干净的。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.1 3.1 数据库结

34、构数据库结构n3.1.2系统数据库和用户数据库系统数据库和用户数据库u无论是系统数据库还是用户数据库,无论是系统数据库还是用户数据库,每个每个SQLServer2005数数据库在物理上都由至少一个数据文件和一个事务日志文件组成,据库在物理上都由至少一个数据文件和一个事务日志文件组成,系统用文件组的形式把它们作为一个单元来管理。系统用文件组的形式把它们作为一个单元来管理。p数据文件数据文件主要主要记录数据数据库的启的启动信息并用来存信息并用来存储数据。数据。p而事而事务日志文件日志文件里包含着用于恢复数据里包含着用于恢复数据库事事务的日志信息,使得数据的日志信息,使得数据库操作具有事操作具有事务

35、功能,以保功能,以保证数据的一致性和完整性。数据的一致性和完整性。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作u对对用用户户数数据据库库的的操操作作,SQLServer2005中中提提供供了了两种方法两种方法:p一一种种方方法法是是使使用用SQLServerManagementStudio对象象资源管理器源管理器此方法直观简单,以图形化的方式完成数据库的操作;此方法直

36、观简单,以图形化的方式完成数据库的操作;p另一种方法是另一种方法是使用使用TSQL语句句此此方方法法可可以以将将创创建建数数据据库库的的代代码码(或或称称脚脚本本)保保存存下下来来,在在其他机器上运行可以操作相同的数据库。其他机器上运行可以操作相同的数据库。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.1创建用户数据库创建用户数据库u在这一节中我们首先创建在这

37、一节中我们首先创建student数据库,该数据库为数据库,该数据库为学生成绩管理提供数据库服务。学生成绩管理提供数据库服务。l1、使用、使用“对象象资源管理器源管理器”创建用建用户数据数据库u(1)打开)打开SQLServer2005的的ManagementStudio,进,进入对象资源管理器,展开指定的服务器,入对象资源管理器,展开指定的服务器,鼠标鼠标右击右击“数据库数据库”,在快捷菜单中选择,在快捷菜单中选择“新建数据库新建数据库”,如图,如图3-2所示。所示。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十

38、一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.1创建用户数据库创建用户数据库u(2)打打开开“新新建建数数据据库库”对对话话框框,在在该该对对话话框框的的“常常规规”标标签签页页内内,如图如图3-3所示,可以定义所示

39、,可以定义:p数据数据库的名称的名称、p数据数据库的所有者的所有者、p是否使用全文索引、是否使用全文索引、p数据文件和日志文件的数据文件和日志文件的逻辑名称名称和路径和路径(物理名称物理名称)、p文件文件组、p初始大小和增初始大小和增长方式等。方式等。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社相关信息的填写p在在“数据数据库名称名称”文本框中文本框中输入要入要创建的数据建的数据库名称:名称:student;p“所有者所有者”文本框是文本框是选择数据数据库操作操作的用的用户,这里里选择默默认值表示数据表示数据库所有者所有者为登登录Win

40、dows的管理的管理员账户;p在在“逻辑名称名称”文本框里可以修改数文本框里可以修改数据文件和日志文件的据文件和日志文件的逻辑名称。名称。p系系统默默认的数据文件初始大小的数据文件初始大小为3MB、增量增量为1MB、不限制增、不限制增长,日志文件,日志文件为1MB、增量、增量为10%、不限制增、不限制增长。用用户可以在可以在这里修改里修改这些数据些数据库设计参数。参数。p单击“路径路径”框里的框里的“”,系,系统弹出如出如图3-4所示的所示的“定位文件定位文件夹”的的界面,在此可以修改数据界面,在此可以修改数据库文件存文件存储路径。路径。高等教育高等教育“十一五十一五”国家级规划教材国家级规划

41、教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社新建数据库mydatabase后的界面SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2 3.2.2 修改用户数据库修改用户数据库u建立数据库之后,可以根据需要对数据库的设置建立数据库之后,可以根据需要对数据库的设置进行修改,以满足新的要求。进行修改,以满足新的要求。l1、使用、使用“对象象资源管理器源管理器”查看和

42、修改数据看和修改数据库u打开打开ManagementStudio,进入对象资源管理器,进入对象资源管理器,展开服务器和数据库展开服务器和数据库;u鼠标右击鼠标右击用户数据库用户数据库student图标,从快捷菜单中图标,从快捷菜单中选择选择“属性属性”,系统弹出如图,系统弹出如图3-8所示的所示的“数据库数据库属性属性”界面。界面。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规

43、划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2.2 3.2.2 修改用户数据库修改用户数据库SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社(1)更改数据库的所有者u打开打开“数据库属性数据库属性”的的“文件文件”标签页,单击标签页,单击“所有者所有者”文本框旁边的文本框旁边的“”按钮,按钮,弹出如图弹出如图3-9(a)所示界)所示界面,单击面,单击“浏览浏览”按钮,就可在按钮,就可在“查找对象查找对象”对话框对话框(图(图3-9(b)上选择新的数据库的所有者。)上选择新的数据库的所有者。高等教育

44、高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社(2)调整数据库的增长属性u打开打开“数据库属性数据库属性”的的“文件文件”标签页,单击标签页,单击“自自动增长动增长”文本框里的文本框里的“”按钮按钮,弹出如图,弹出如图3-10所所示的设置界面,就可以更改数据库的自动增长属性示的设置界面,就可以更改数据库的自动增长属性值了。值了。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山

45、东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社(3)添加文件组u打开打开“数据库属性数据库属性”的的“文件组文件组”标签页,单击标签页,单击“添加添加”按钮,弹出如图按钮,弹出如图3-11所示的界面,就可以添加新的文件组。所示的界面,就可以添加新的文件组。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社(4)限制访问数据库的用户u某些情况

46、下,例如在维护或测试数据库时,数据库管理员需某些情况下,例如在维护或测试数据库时,数据库管理员需要设定访问数据库的用户数或用户角色。打开如图要设定访问数据库的用户数或用户角色。打开如图3-12所示的所示的“数据库属性数据库属性”的的“选项选项”标签页,单击标签页,单击“限制访问限制访问”下拉框。下拉框。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社(4)限制访问数据库的用户u其中:其中:p“Multiple”表示允表

47、示允许多个用多个用户同同时访问数据数据库;p“Single”表示只能有一个用表示只能有一个用户访问数据数据库,其他用,其他用户被中被中断断访问;p“Restricted”表示只有表示只有db_owner(数据数据库所有者所有者)、dbcreater(数据数据库创建者建者)和和sysadmin(系系统管理管理员)三种角色三种角色的成的成员才能才能访问数据数据库。u注意:注意:SQLServer2005中定义了许多中定义了许多数据库用户角数据库用户角色色,每种角色的用户具有特定的数据库操作权限。,每种角色的用户具有特定的数据库操作权限。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材

48、数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.2.3 3.2.3 重命名用户数据库重命名用户数据库 u数据库创建之后,数据库创建之后,一般情况下不要更改数据库的名称一般情况下不要更改数据库的名称,因为,因为许多应用程序可能已经使用了该数据库的名称。数据库名称更许多应用程序可能已经使用了该数据库的名称。数据库名称更改之后,需要修改相应的应用程序。改之后,需要修改相应的应用程序。u如果确实需要更改数据库名称,可以如果确实需要更改数据库名称,可以在在“对象资源管理器对象资源管理器

49、”上直接改名上直接改名。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2.3 3.2.3 重命名用户数据库重命名用户数据库 l1、使用、使用“对象象资源管理器源管理器”重命名数据重命名数据库u在对象资源管理器上在对象资源管理器上右击要改名的用户数据库,在出现的快右击要改名的用户数据库,在出现

50、的快捷菜单中单击捷菜单中单击“重命名重命名”,即可进行更名操作,即可进行更名操作。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.2.4 3.2.4 删除用户数据库删除用户数据库l1、使用、使用“对象象资源管理器源管理器”删除数据除数据库u在在“对象资源管理器对象资源管理器”中,选择要删除的数据库,鼠标右击中,选择要删除的数据库,鼠标右击之并选择之并选择“删除删除”选项选项,出现如图,出现如图3-13所示的对话框。所示的对话框。u注意:删除数据库一定要慎重,因为删除后,注意:删除数据库一定要慎重,因为删除后,与此数据库关与此数据库关联的

51、数据库文件和事务日志文件都会被删除,存储在系统数据联的数据库文件和事务日志文件都会被删除,存储在系统数据库中的关于该数据库的所有信息也会被删除库中的关于该数据库的所有信息也会被删除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社删除数据库对话框SQL-SERVER数据库管理数据库管理 数据库与程

52、序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n在在SQLServer2005中,数据表是一种很重中,数据表是一种很重要的数据库对象,主要用来存储数据。在创要的数据库对象,主要用来存储数据。在创建数据库之后,就可以创建数据表。建数据库之后,就可以创建数据表。1.创建数据表建数据表2.修改表修改表结构构3.删除数据表除数据表高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操

53、作n3.3.1创建数据表创建数据表u数据表由数据表由结构结构和和数据数据两部分组成。两部分组成。u数据表的建立分两步:数据表的建立分两步:p首先首先创建表建表结构构;p然后然后输入数据入数据。u创建数据表的关键是定义表的结构,通常创建表之前的重要创建数据表的关键是定义表的结构,通常创建表之前的重要工作是工作是设计表结构设计表结构,即确定:,即确定:p表的名字表的名字、p表中表中各个数据各个数据项的列名的列名、数据数据类型和型和长度、是否度、是否为空空值等。等。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SE

54、RVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.1创建数据表创建数据表u例如:例如:p数据数据库student中涉及三个数据表,它中涉及三个数据表,它们分分别是用于存是用于存储学生信息学生信息的的student表、用于存表、用于存储课程信息的程信息的course表、用于存表、用于存储学生成学生成绩的的sc表,其表表,其表结构分构分别见表表3-1、3-2、3-2。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库

55、管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社例表高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.1创建数据表创建数据表l1、使用、使用“对象象资源管理器源管理器”创建表建表结构构u【例例3-7】使用使用“对象资源管理器对象资源管理器”创建创建student表结构。表结构。p(1)展开已)展开已经创建的建的student数据数据库,在,在“表表”选项上右上右击鼠鼠标

56、,选择“新建表新建表”命令。命令。p(2)打开表)打开表设计窗口后,依次窗口后,依次输入列名、数据入列名、数据类型、型、长度、允度、允许空空等属性,其中等属性,其中sno列要列要设置置为主主键,右,右击该列,列,选择“设置主置主键”,如,如图3-14所示。所示。注意:长度的输入注意:长度的输入可以可以在所选数据类型后的括号内直接修改其中数值。在所选数据类型后的括号内直接修改其中数值。p(3)完成后点)完成后点击工具工具栏中的保存按中的保存按钮,输入表名入表名“student”,单击确定,如确定,如图3-15所示。所示。p(4)完成后,在)完成后,在student数据数据库的的“表表”选项中,可

57、以看到新建的中,可以看到新建的student表。表。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社创建表的过程SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库

58、与程序设计 山东大学出版社山东大学出版社创建表的过程SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社创建表完成后的界面SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.1创建数据表创建数据表l3、查看表看表结构构u(1)使用)使用“对象资源管理器对象资源管理器”查看查看u在对象资源管理器中,鼠标在对象资源管理器中,鼠标右击需要查看结构

59、的表右击需要查看结构的表,在,在弹出的快捷菜单中弹出的快捷菜单中选择选择“修改(设计)修改(设计)”命令命令,打开数,打开数据表窗口,即可查看数据表结构信息。据表窗口,即可查看数据表结构信息。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.2 3.3.2 修改表结构修改表结构u数据表创建以后,在使用过程中可能需要对原先定义的数据表创建以后,在使用过程中可能需要对原先定义的表结构进行修改

60、。表结构进行修改。u对表结构的修改包括:对表结构的修改包括:p更改表名更改表名p增加列增加列p删除列除列p修改已有列的属性(列名、数据修改已有列的属性(列名、数据类型等)型等)p等等等等高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.2 3.3.2 修改表结构修改表结构l1、使用、使用“对象象资源管理器源管理器”修改表修改表结构构uSQLServer允许修改表的名字。允许修改表的名字。

61、p但当表名改但当表名改变后,与此相关的某些后,与此相关的某些对象象(如如视图、存、存储过程等程等)将无效,将无效,因因为它它们都与表名有关。都与表名有关。p建建议一般不要随便更改已有的表名一般不要随便更改已有的表名,特,特别是是对那些已那些已经定定义了了视图等等对象的表。象的表。u修改表名修改表名只需鼠标右击相应的表,在快捷菜单中选择只需鼠标右击相应的表,在快捷菜单中选择“重命名重命名”选项,接着在表名的位置上输入新的表名后回车,即可完成选项,接着在表名的位置上输入新的表名后回车,即可完成更改表名的操作。更改表名的操作。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序

62、设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.2 3.3.2 修改表结构修改表结构l1、使用、使用“对象象资源管理器源管理器”修改表修改表结构构u当表中已有记录后,不要轻易修改表的结构,特别是修当表中已有记录后,不要轻易修改表的结构,特别是修改列的数据类型,以免造成错误。改列的数据类型,以免造成错误。p例如,表中某列原来的数据例如,表中某列原来的数据类型是型是decimal型,如果将它改型,如果将它改为int型,那么表中原有的型,那么表中原有的记录值将将丢

63、掉小数部分,从而引起掉小数部分,从而引起数数值错误。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.2 3.3.2 修改表结构修改表结构l1、使用、使用“对象象资源管理器源管理器”修改表修改表结构构u【例例3-11】给给student表增加一列,名为表增加一列,名为sbirthday,即,即出生日期,日期类型,允许空。出生日期,日期类型,允许空。u具体操作步骤如下:具体操作步骤如下:p

64、(1)展开)展开student数据数据库,右,右击student表,在快捷菜表,在快捷菜单中中选择“修改(修改(设计)”选项。p(2)打开表)打开表设计器,增加一列,如器,增加一列,如图3-18。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社修改表结构界面(1)SQL-SERVER数据库管理数据

65、库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社修改表结构界面(2)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社修改表结构界面(3)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规

66、划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社修改表结构界面(4)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.3 数据表的基本操作n3.3.3删除数据表删除数据表l1、使用、使用“对象象资源管理器源管理器”删除数据表除数据表u【例例3-15】删除删除student数据库中的数据库中的scls表(假设已建立)。表(假设已建立)。u具体操作如下:具体操作如下:p(1)展开)展开student数据数据库,鼠鼠标右右击scls表,在快捷菜表,在快捷菜单中中选择“删除除”选项。p(2)打开)打开“删除除对

67、象象”对话框,框,单击“确定确定”,如,如图3-19,删除除scls表。表。p(3)展开)展开student数据数据库“表表”选项,scls表被表被删除。除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社删除数据表删除数据表SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设

68、计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社删除数据表删除数据表SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作u数据表由两部分组成:数据表由两部分组成:表结构表结构和和表数据表数据。u在创建数据表时也要分两步完成,首先建立表结构,然后在创建数据表时也要分两步完成,首先建立表结构,然后添加表数据(即记录)。添加表数据(即记录)。u当两者都建立之后,一个完整的数据表就建立了。当两者都建立

69、之后,一个完整的数据表就建立了。u表结构可以修改,表数据在使用过程中也会随时需要进行表结构可以修改,表数据在使用过程中也会随时需要进行修改,包括修改,包括添加、更新或删除添加、更新或删除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加记录添加记录ustudent数据库中三个表的数据见表数据库中三个表的数据见表3-4、3-5、3-6。高等教育高等教育“十一

70、五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社例题数据表的数据SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加记录添加记录l1、使用、使用“对象象资源管理器源管理器”添加添加记录u【例例3-17】给给

71、student表输入数据。表输入数据。u具体步骤如下具体步骤如下p(1)展开)展开student数据数据库,右,右击student表,在快捷菜表,在快捷菜单中中选择“打开表打开表”选项,如,如图3-20。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版

72、社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作p(2)打开)打开student表,依次表,依次输入各入各记录值,如,如图3-21高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社输入数据后的三个数据表高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学

73、出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社添加记录SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加记录添加记录l3、添加、添加记录的注意事的注意事项u在向表中添加记录时

74、,无论使用在向表中添加记录时,无论使用“对象资源管理器对象资源管理器”,还是使,还是使用用T-SQL语句,都应注意以下几个问题:语句,都应注意以下几个问题:p(1)表中数据的)表中数据的类型、型、长度、允度、允许空等属性必空等属性必须与定与定义表表结构构时一致。一致。如:如:student表的表的sbirthday列是列是datetime类型,应按如类型,应按如“2000-2-6”的格式输入,的格式输入,这样系统才会接受,否则将出现这样系统才会接受,否则将出现“类型不一致类型不一致”的提示。的提示。course表的表的cno列长度是列长度是3个字节,如果输入超过此长度,如个字节,如果输入超过此

75、长度,如“”,则会出现,则会出现“错误错误”的提示。的提示。course表中的表中的pre_cno列允许空,则可以不输入数据,如第列允许空,则可以不输入数据,如第1个记录和第个记录和第6个记个记录就没有提供录就没有提供pre_cno列的值;有些不允许为空的列则必须输入数据。列的值;有些不允许为空的列则必须输入数据。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加记录添加记录u(2)主键列的数据不能有重复。)主键列的数据不能有重复。p如:如:studeng表的表的sno列列为主主

76、键,各,各记录中的中的sno不能有重复不能有重复数据,否数据,否则会出会出现“违反了反了PRIMARYKEY约束束”的提示。的提示。psc表的表的sno列和列和cno列一起做列一起做为主主键,各,各记录中的中的这两列不能两列不能同同时相同,但一列相同、一列不同可以。相同,但一列相同、一列不同可以。u(3)某些列要遵守其约束的规定。)某些列要遵守其约束的规定。p如:如:sc表的表的grade列要遵守列要遵守CHECK约束,即束,即该列的数列的数值必必须大于大于0,否,否则将会出将会出现“违反了反了CHECK约束束”的提示。的提示。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据

77、库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加记录添加记录u(4)外键列中的数据必须是其参照表、参照列中已有的)外键列中的数据必须是其参照表、参照列中已有的数据,因此输入数据时,应先输入其参照表。数据,因此输入数据时,应先输入其参照表。p如:如:sc表的表的sno列、列、cno列是外列是外键,参照表、列分,参照表、列分别是是student表的表的sno列和列和course表的表的cno列。列。sc表的表的sno列中的数

78、列中的数据必据必须都是都是student表的表的sno列中已有的数据,它的列中已有的数据,它的cno列中的列中的数据必数据必须都是都是course表的表的cno列中已有的数据。如果列中已有的数据。如果输入其它入其它数据,将会出数据,将会出现“FOREIGNKEY约束冲突束冲突”的提示。如的提示。如图3-23。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加

79、记录添加记录高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社student表中没有这个学号SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.1添加记录添加记录p显然,在然,在这三个表三个表输入数据入数据时,应先先输入入student表表和和course表的数据,再表的数据,再输入入sc表的数据。表的数据。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版

80、社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.2修改记录修改记录l1、使用、使用“对象象资源管理器源管理器”修改修改记录u右击需要修改数据的表,在快捷菜单中选择右击需要修改数据的表,在快捷菜单中选择“打开表打开表”选选项,打开表数据编辑器,直接修改即可。项,打开表数据编辑器,直接修改即可。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设

81、计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.3删除记录删除记录l1、使用、使用“对象象资源管理器源管理器”删除除记录u【例例3-23】删除删除sc_2008002表中的第表中的第2条纪录。条纪录。u具体步骤如下:具体步骤如下:p(1)展开)展开student数据数据

82、库,右,右击sc_2008002表,在快捷菜表,在快捷菜单中中选择“打开表打开表”选项。p(2)打开表数据)打开表数据编辑器,器,单击第第2条条记录最左最左边方框,使整个方框,使整个记录呈被呈被选中状中状态(淡(淡蓝色)。色)。p(3)右)右击被被选中的第中的第2条条记录,在快捷菜,在快捷菜单中中选择“删除除”选项,如,如图3-24所示。所示。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社删除记录高等教育高等教育“十

83、一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作n3.4.3删除记录删除记录p(4)弹出出删除除记录的提示信息的提示信息对话框,如框,如图3-25所示,所示,单击“是是”按按钮,即可,即可删除除该记录。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程

84、序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现u数据完整性数据完整性,又称数据库完整性,是指数据的正确性、,又称数据库完整性,是指数据的正确性、有效性和相容性,目的是有效性和相容性,目的是防止错误数据进入数据库防止错误数据进入数据库。p所所谓正确性正确性是指数据的合法性,如日期型数据中是指数据的合法性,如日期型数据中“月月”只能从只能从1到到12,否,否则就是非法数据;就是非法数据;p所所谓有效性有效性是指数据是否属于所定是指数据是否属于所定义的有效范的有效范围,如人的年,如人的年龄不不能是能是负数;性数;性别只能是男或女等;只能是男或女等;p所所谓相容性相

85、容性是指表示同一事是指表示同一事实的两个数据必的两个数据必须相同,不一致就是相同,不一致就是不相容。不相容。如表示年龄一个人的用数值如表示年龄一个人的用数值“32”表示,另一个人用字符表示,另一个人用字符“三十二三十二”表示,这样用来表示年龄的数据就不相容了。表示,这样用来表示年龄的数据就不相容了。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现u数据库是否具备完整性关系

86、到数据库系统能否真实地反数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。映现实世界,因此维护数据库的完整性是非常重要的。u在评价数据库的设计时,数据完整性的设计是数据库设在评价数据库的设计时,数据完整性的设计是数据库设计好坏的一项重要指标。计好坏的一项重要指标。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.1数据

87、完整性数据完整性u在在MicrosoftSQLServer2005系统中,有系统中,有3种数据完整性类种数据完整性类型:型:p实体完整性体完整性p参照完整性参照完整性p域完整性域完整性高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.1数据完整性数据完整性l1、实体完整性体完整性u实体完整性实体完整性,也可以称为行完整性,要求表中的所有行有一,也可以称为行完整性,

88、要求表中的所有行有一个唯一的标识符,个唯一的标识符,这种标识符一般称为这种标识符一般称为主键值主键值。p例如,例如,对于一个学校的所有学生来于一个学校的所有学生来说,学号是唯一的,利用学号,学号是唯一的,利用学号可以唯一地确定某个同学,因此可以把学号作可以唯一地确定某个同学,因此可以把学号作为主主键对待。待。p主主键值是否能是否能够被修改或表中的数据是否能被修改或表中的数据是否能够被全部被全部删除都要依除都要依赖于主于主键表和其他表之表和其他表之间要求的完整性要求的完整性(外外键约束,束,参照完整性参照完整性)。u在在SQLServer中,利用中,利用PRIMARYKEY约束、约束、UNIQU

89、E约束约束实现实体完整性。实现实体完整性。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.1数据完整性数据完整性l2、参照完整性、参照完整性约束束u参照完整性参照完整性是保证参照表(外键所在的表)与被参照表(主键所是保证参照表(外键所在的表)与被参照表(主键所在的表)中数据的一致性。在的表)中数据的一致性。u如果被参照表中的一行被一个外键所参考,那么这一行数据便

90、不如果被参照表中的一行被一个外键所参考,那么这一行数据便不能直接被删除,用户也不能直接修改主键值。能直接被删除,用户也不能直接修改主键值。p例如,在例如,在student数据数据库中,中,sc表的表的sno被定被定义为外外键,其参照的,其参照的表及列是表及列是student表的表的sno列,列,则student表中的表中的sno列列值就不能随意就不能随意删除和修改。除和修改。u在在SQLServer中,利用中,利用FOREIGNKEY约束约束实现参照完整性。实现参照完整性。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版

91、社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社学生学生学生选课学生选课课程课程SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.1数据完整性数据完整性l3、域完整性、域完整性u域完整性域完整性,也可以称为,也可以称为列完整性列完整性,指定一个数据集对某一个列是

92、否,指定一个数据集对某一个列是否有效和确定是否允许空值。有效和确定是否允许空值。u域完整性通常使用域完整性通常使用有效性检查有效性检查来实现,还可以通过来实现,还可以通过限制数据类型限制数据类型、格式格式或者或者可能的取值范围可能的取值范围来实现。来实现。p例如,例如,设置学生入校的日期大于他的出生日期;在性置学生入校的日期大于他的出生日期;在性别列中,限制其取列中,限制其取值范范围为“男男”和和“女女”,这样就不能在就不能在该列列输入其他一些无效的入其他一些无效的值。p最最简单的域完整性方法是数据的域完整性方法是数据类型,例如,在出生日期列中定型,例如,在出生日期列中定义该列的列的数据数据类

93、型是型是DATETIME,则该列就不会出列就不会出现其他一些不符合日期格式的数其他一些不符合日期格式的数据。据。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.1数据完整性数据完整性l3、域完整性、域完整性u在在SQLServer中,利用中,利用NULL|NOTNULL约束约束、CHECK约束约束、默认默认、规则规则来实现。来实现。高等教育高等教育“十一五十一五

94、”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现uSQLServer提供的实现数据库完整性的这些方法提供的实现数据库完整性的这些方法又可以归纳为又可以归纳为约束、默认、规则约束、默认、规则三种数据库对象。三种数据库对象。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数

95、据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束u约束约束是通过是通过限制限制列中数据列中数据、行中数据行中数据和和表之间数据表之间数据来保证数据来保证数据完整性的非常有效的方法。完整性的非常有效的方法。u约束可以确保把有效的数据输入到列中,并维护表和表之间的约束可以确保把有效的数据输入到列中,并维护表和表之间的特定关系。特定关系。u定义约束时,定义约束时,可以把约束放在一列上,也可以把约束放在多个可以把约束放在一列上,也可以把约束放在多个列上列上。p如果把如果把约束放在一个列上,束放在一个列上,则该约束称束称为列列级约束束,它只能

96、由,它只能由约束束所在的列引用。所在的列引用。p如果把如果把约束放在多个列上,束放在多个列上,则把把该约束称束称为表表级约束束,这时可以由可以由这多个列来引用多个列来引用该约束。束。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束u当创建约束时,可以指定约束的名称。否则,当创建约束时,可以指定约束的名称。否则,MicrosoftSQLServer系统将

97、提供一个复杂的、系统系统将提供一个复杂的、系统自动生成自动生成的名称。的名称。u对于一个数据库来说,对于一个数据库来说,约束名称必须是唯一的约束名称必须是唯一的。uSQLServer提供以下几种约束来实现数据完整性:提供以下几种约束来实现数据完整性:pPRIMARYKEY约束束pFOREIGNKEY约束束pNULL|NOTNULL约束束pUNIQUE约束束pCHECK约束束高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版

98、社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l1、PRIMARYKEY约束束uPRIMARYKEY约束约束,也称主键约束,作为一个表的主属性,也称主键约束,作为一个表的主属性,可以惟一标识表中的记录。可以惟一标识表中的记录。u在输入数据时,主键列不能为空且不能有重复值。在输入数据时,主键列不能为空且不能有重复值。u每个表每个表(都应该有且)(都应该有且)只能有一个主键。只能有一个主键。u该约束用于强制该约束用于强制实体完整性实体完整性。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-S

99、ERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l1、PRIMARYKEY约束束u(1)使用)使用“对象资源管理器对象资源管理器”管理管理PRIMARYKEY约束约束p设置置PRIMARYKEY约束束选中需要管理的表,右击之,在快捷菜单中选择选中需要管理的表,右击之,在快捷菜单中选择“设计设计(修改修改)”选项;选项;打开该表设计器,选中需要设置为主键的列,右击之,在快捷菜单中选打开该表设计器,选中需要设置为主键的列,右击之,在快捷菜单中选择择“设置主键设置主键”或单击工具栏中的或单

100、击工具栏中的“设置主键设置主键”按钮,设置结果如图按钮,设置结果如图3-26。如果主键由多列组成,先选中其中的一列,然后如果主键由多列组成,先选中其中的一列,然后按住按住“Ctrl”键不放,键不放,同时用鼠标选择其他列同时用鼠标选择其他列,最后选择工具栏的,最后选择工具栏的“设置主键设置主键”按钮,即可按钮,即可将将多列组合设置成主键多列组合设置成主键。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“

101、十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社主键的设置SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社主键出现重复值,系统弹出的错误信息提示SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l1、PRIMARYKEY约束束u(1)使用)使用

102、“对象资源管理器对象资源管理器”管理管理PRIMARYKEY约束约束p删除主除主键若想删除主键设置,操作步骤同上,这时对应菜单和命令按钮都显示为若想删除主键设置,操作步骤同上,这时对应菜单和命令按钮都显示为“移除主键移除主键”。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社删除主键SQL-SER

103、VER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束uFOREIGNKEY约束约束,也称外键约束,标识,也称外键约束,标识表之间的关系表之间的关系(联联系系),可以定义一个列或多个列,这些列参照同一个表或另,可以定义一个列或多个列,这些列参照同一个表或另外一个表中的外一个表中的PRIMARYKEY约束列或约束列或UNIQUE约束列。约束列。u该约束用于强制该约束用于强制参照完整性参照完整性。u在在MicrosoftSQLServer关系型数据库管理系统中,表和

104、表关系型数据库管理系统中,表和表之间经常存在着大量的关系(之间经常存在着大量的关系(联系联系),这些关系(),这些关系(联系联系)都是)都是通过定义通过定义PRIMARYKEY约束和约束和FOREIGNKEY约束实现的。约束实现的。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u(1)使用)使用“对象资源管理器对象资源

105、管理器”管理管理FOREIGNKEY约束约束u【例例3-28】将将sc_2008002表的表的sno列设置外键约束,参照表、列是列设置外键约束,参照表、列是student表的表的sno列。假设列。假设sc_2008002表已建立,其表结构与表已建立,其表结构与sc表结表结构相同。构相同。u具体步骤如下:具体步骤如下:p展开展开student数据数据库,右,右击sc_2008002表,在快捷菜表,在快捷菜单中中选择“设计(修改修改)”选项;p打开打开sc_2008002表表设计器,右器,右击sno列,列,选择“关系关系”选项;p打开打开“外外键关系关系”对话框,如框,如图3-29所示;所示;高等

106、教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3

107、.5.2约束约束l2、FOREIGNKEY约束束高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现p单击“添加添加”按按钮,SQLServer自自动给出一个外出一个外键关系,并关系,并显示其相关属性,如示其相关属性,如图3-30所示;所示;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SE

108、RVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现p单击“外外键关系关系”对话框中框中“表和列表和列规范范”选项,其右列出,其右列出现一一个按个按钮,如,如图3-31所示,所示,单击该按按钮;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社编辑按钮SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现p打开打开“表和列表和列”对话框,如框

109、,如图3-32所示,所示,创建建sno列的外列的外键关系关系高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现p在在该对话框中框中设置关系名置关系名为FK_sc_2008002_sno,主,主键表表选择student表,其列表,其列选sno列,外列,外键表的列表的列选sno列,如列,如图3-33;p设置完置完毕,单击“确定确定”按按钮。高等教育高等教育“十一五十一五”国家级

110、规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u可以按照上述步骤对外键列进行修改和删除。可以按照上述步骤对外键列进行修改和删除。u一旦建立外键约束,一旦建立外键约束,SQLServer系统默认当外键表系统默认当外键表(子表子表)参参照了主键表(照了主键表(父表父表)中的数据时:)中的数据时:p父表中主父表中主键数据的数据的修改、修改、删除除影响或受限制于子

111、表的影响或受限制于子表的p而子表中外而子表中外键数据的数据的修改、插入修改、插入是受限制于父表的是受限制于父表的高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山

112、东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u(2)INSERT和和UPDATE规范规范p更新更新规则:无操作无操作(NOACTION):若父表中某一主键在子表中有对应的外键存在,则不):若父表中某一主键在子表中有对应的外键存在,则不允许修改父表中的主键值;允许修改父表中的主键值;层叠层叠(CASCDE):若父表中某一主键在子表中有对应的外键存在,则修改父表):若父表中某一主键在子表中有对应的外键存在,则修改父表中的主键值的同时也修改子表中对应的外键值。中的主键值的同时也修改子表中对应的外键值。p删除除规范:范:无操作无操作(

113、NOACTION):若父表中某一主键在子表中有对应的外键存在,则不):若父表中某一主键在子表中有对应的外键存在,则不允许删除父表中的主键行(记录);反之亦然;允许删除父表中的主键行(记录);反之亦然;层叠层叠(CASCDE):若父表中某一主键在子表中有对应的外键存在,则删除父表):若父表中某一主键在子表中有对应的外键存在,则删除父表中的主键行(记录)的同时也修改子表中对应的外键行(记录)。中的主键行(记录)的同时也修改子表中对应的外键行(记录)。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库

114、管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束p强制外制外键约束:束:如果选择该选项,则只要使用这些语句在外键表中添加或更新数据时都如果选择该选项,则只要使用这些语句在外键表中添加或更新数据时都将强制约束。将强制约束。p强制用于复制:制用于复制:如果选择该选项,则无论何时将外键表复制到一个不同的数据库,都将如果选择该选项,则无论何时将外键表复制到一个不同的数据库,都将强制关系的参照完整性。强制关系的参照完整性。高等教育高等教育“十一五十一五”国家级规划教材国家级规划

115、教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u(3)创建数据库关系图)创建数据库关系图p当数据当数据库中各数据表建立中各数据表建立PRIMARYKEY约束和束和FOREIGNKEY约束后,束后,SQLServer2005可以根据可以根据这些些约束自束自动创建数据建数据库关系关系图。p所所谓数据数据库关系关系图就是根据所建相关就是根据所建相关约束,用束,用图形表示出各表之形

116、表示出各表之间的关系(的关系(联系系)。)。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u(3)创建数据库关系图)创建数据库关系图p【例例3-31】创建建student数据数据库关系关系图。p具体步具体步骤如下:如下:展开展开student数据库,右击数据库,右击“数据库关系图数据库关系图”,在快捷菜单中选择,在快捷

117、菜单中选择“新新建数据库关系图建数据库关系图”选项;选项;弹出弹出“添加表添加表”对话框,如图对话框,如图3-35,依次添加,依次添加course、sc和和student表。表。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u(3)创建数据库关系图)创建数据库关系图高等教育高等教育“十一五十一五”国家级规划教材国家级规

118、划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l2、FOREIGNKEY约束束u(3)创建数据库关系图)创建数据库关系图u单击单击“关闭关闭”按钮后,建按钮后,建立一个关系图,如图立一个关系图,如图3-36所示。所示。u单击工具栏中单击工具栏中“保存保存”按按钮,在弹出的钮,在弹出的“选择名称选择名称”对对话框中输入一个新的名字,如话框中输入一个新的名字,如Diagram_student,student

119、数数据库的一个关系图建立。据库的一个关系图建立。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社在sc表中插入异常警告SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计

120、数据库与程序设计 山东大学出版社山东大学出版社在sc表中更新异常警告SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社在course表中删除异常警告SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l3、NULL|NOTNULL约束束uNULL|NOTNULL约束,又称空值约束,指定某列允许为约束,又称

121、空值约束,指定某列允许为空或不允许为空,当某列值不确定或列值的有无对该记录没空或不允许为空,当某列值不确定或列值的有无对该记录没有大的影响时,可以设置该列允许为空。有大的影响时,可以设置该列允许为空。u此约束在创建表结构时已经介绍,这里不再讲述。此约束在创建表结构时已经介绍,这里不再讲述。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l4、UNIQU

122、E约束束uUNIQUE约束约束,又称唯一值约束,规定表中某一个列或多个,又称唯一值约束,规定表中某一个列或多个列不能有相同的两行或两行以上的数据存在。列不能有相同的两行或两行以上的数据存在。u这种约束用来强制这种约束用来强制实体完整性实体完整性。u使用使用UNIQUE约束可以确保约束可以确保在非主键列中在非主键列中不输入重复的值。不输入重复的值。u虽然都是强制列值的惟一性,但与主键不同的是:虽然都是强制列值的惟一性,但与主键不同的是:p一个表只能有一个主一个表只能有一个主键且主且主键列不允列不允许空空值p而一个表可以有多个而一个表可以有多个UNIQUE约束且允束且允许空空值高等教育高等教育“十

123、一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l4、UNIQUE约束束u(1)使用)使用“对象资源管理器对象资源管理器”管理管理UNIQUE约束约束p【例例3-32】将将sc_2008002表的表的cno列列设置置为UNIQUE约束。束。p具体步具体步骤如下:如下:展开展开student数据库,右击表数据库,右击表sc_2008002,在快捷菜单中选择,在快捷菜单中选择

124、“设计设计(修改修改)”;打开打开sc_2008002表设计器,选择要建立表设计器,选择要建立UNIQUE约束的一列或约束的一列或多列;多列;右击所选列,在快捷菜单中选择右击所选列,在快捷菜单中选择“索引索引/键键”选项;或者单击工选项;或者单击工具栏上的具栏上的“管理索引键管理索引键”按钮;按钮;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现高等教育高等教育“十一五十

125、一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束打开打开“索引索引/键键”对话框,单击对话框,单击“添加添加”按钮,如图按钮,如图3-37所示;所示;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.

126、5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l4、UNIQUE约束束在在“类型类型”栏选择栏选择“唯一键唯一键”;单击;单击“列列”栏右边按钮,打开栏右边按钮,打开“索引索引列列”对话框,选择对话框,选择cno列;在列;在“名称名称”文本框中键入文本框中键入UNIQUE约束的名称约束的名称“IX_stud_2008002_cno”;设置结果如图设置结果如图3-38所示;所示;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东

127、大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l4、UNIQUE约束束设置完毕单击设置完毕单击“关闭关闭”按钮关闭按钮关闭“索引键索引键”对话框,返回表设计器窗对话框,返回表设计器窗口。最后单击工具栏中的口。最后单击工具栏中的“保存保存”按钮,就完成在按钮,就完成在cno列上创建列上创建UNIQUE约束。约束。p可以按照上述步可以按照上述步骤对UNIQUE约束列束列进行修改和行修改和删除。除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据

128、库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社设置过程图示高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社输入(或修改)数据中UNIQUE约束的异常警告SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完

129、整性的实现数据完整性的实现n3.5.2约束约束l4、UNIQUE约束束u注意:注意:SQLServer要求同一个数据库中各个约束的名称不能要求同一个数据库中各个约束的名称不能相同,即使这些约束是不同的类型。相同,即使这些约束是不同的类型。u指派给指派给UNIQUE约束的名称不能与同一个数据库中所有表的约束的名称不能与同一个数据库中所有表的现有各类型约束的名称相同。现有各类型约束的名称相同。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出

130、版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l5、CHECK约束束uCHECK约束约束,又称,又称条件约束条件约束,是通过指定的逻辑表达式来限,是通过指定的逻辑表达式来限制列的取值范围,只有当逻辑表达式为真时,才满足列的取值制列的取值范围,只有当逻辑表达式为真时,才满足列的取值要求。要求。u该约束用来加强该约束用来加强域完整性域完整性。u可以为每列指定多个可以为每列指定多个CHECK约束。约束。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库

131、管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.2约束约束l5、CHECK约束束u(1)使用)使用“对象资源管理器对象资源管理器”管理管理CHECK约束约束p【例例3-35】对sc_2008002表的表的grade列列设置必置必须大于等于大于等于0的的CHECK约束。束。p具体步具体步骤如下:如下:展开展开student数据库,右击表数据库,右击表sc_2008002,在快捷菜单中选择,在快捷菜单中选择“设计设计(修改修改)”;打开打开sc_2008002表设计器,选择需设置表设计器,选择需设置CHECK约束的列;约束

132、的列;右击该列,在快捷菜单中选择右击该列,在快捷菜单中选择“CHECK约束约束”选项;或者单击工具栏上的选项;或者单击工具栏上的“管理管理CHECK约束约束”按钮;按钮;打开打开“CHECK约束约束”对话框,单击对话框,单击“添加添加”按钮,如图按钮,如图3-40所示;所示;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山

133、东大学出版社山东大学出版社图示SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社图示高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社图示高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育

134、高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社数据输入(或更新)异常警告SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社例2SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认u默认默认是指向数据表插入数据时,如果没有明确给出某列的值

135、,是指向数据表插入数据时,如果没有明确给出某列的值,SQLServer自动为该列输入的值。自动为该列输入的值。u在关系数据库中,每个数据元素必须包含值,即使是空值。在关系数据库中,每个数据元素必须包含值,即使是空值。u对不允许空值的列,就必须输入某个非空值,它要么由用户对不允许空值的列,就必须输入某个非空值,它要么由用户明确输入,要么由明确输入,要么由SQLServer输入默认值。输入默认值。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大

136、学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认u在在SQLServer中,有两种使用默认的方法:中,有两种使用默认的方法:p一是在一是在设计表表时,设置置DEFAULT约束束。可以使用。可以使用“对象象资源管理器源管理器”或或T-SQL语句句创建。建。p二是使用二是使用默默认值。使用。使用T-SQL创建默建默认值,然后,然后绑定到某一列上。定到某一列上。pDEFAULT约束与默束与默认值的不同在于:的不同在于:DEFAULT约束约束不是单独存储,而是依附于某个表的某个列,删除表时也不是单独存储,而是依附于某个表的某个列,删除表时也会将该默认值删除;会

137、将该默认值删除;默认值默认值是单独存储,根据需要可以将其绑定到某一列上,删除表时默认是单独存储,根据需要可以将其绑定到某一列上,删除表时默认值不会被删除。值不会被删除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l1、在、在设计表表时,设置置DEFAULT约束束u可以在创建表或修改表结构时,为某列设置可以在创建表或修改表结构时,为某列设置DEFAU

138、LT约束。约束。u(1)使用)使用“对象资源管理器对象资源管理器”管理管理DEFAULT约束约束p【例例3-38】对student表的表的ssex列列设置默置默认值“男男”。p具体步具体步骤如下:如下:展开展开student数据库,右击数据库,右击student表,选择表,选择“设计设计(修改修改)”选项;选项;打开打开“表设计器表设计器”,单击,单击ssex列,在其列,在其“列属性列属性”的的“默认值或绑定默认值或绑定”栏输入栏输入“男男”,系统自动转换成,系统自动转换成“N男男”,如图,如图3-43所示;所示;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数

139、据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社默认值的设置高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认单击工具栏单击工具栏“保存保存”按钮,保存上述设置。按钮,保存上述设置。u可以按照上述步骤对可以按照上述步骤对DEFAULT约束进行修改和删除。约束

140、进行修改和删除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社默认值在输入记录时的效果n记录失去焦点时的变化记录失去焦点时的变化:高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认

141、默认l2、使用默、使用默认值u默认值默认值是一种数据库对象,在数据库中只需是一种数据库对象,在数据库中只需定义一次定义一次后,就可后,就可以以被多次应用被多次应用于任意表中的一列或多列。于任意表中的一列或多列。u使用使用T-SQL语句创建默认值的语法格式如下:语句创建默认值的语法格式如下:CREATEDEFAULTdefault_nameASconstant_expression高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大

142、学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u规则规则是实现是实现域完整性域完整性的方法之一,用来验证某列数据是否处的方法之一,用来验证某列数据是否处于一个指定的值域范围内,是否与特定的格式相匹配。于一个指定的值域范围内,是否与特定的格式相匹配。u当数据表中列值被更新或插入时,就要检查新值是否遵循规当数据表中列值被更新或插入时,就要检查新值是否遵循规则,如果不符合就拒绝执行更新或插入操作。则,如果不符合就拒绝执行更新或插入操作。u规则在实现功能上规则在实现功能上等同于等同于CHECK约束约束。u规则和默认值类似,规则和默认值类似,是一种数据库对象是一种数据库对象

143、,在数据库中只需,在数据库中只需定定义一次义一次,就可以,就可以被多次应用被多次应用于任意表中的一列或多列上。于任意表中的一列或多列上。u如果要删除,则必须先解除绑定如果要删除,则必须先解除绑定。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u创建规则使用创建规则使用CREATERULE命令,其语法格式如下:命令,其语法格式如下:CREATERULE

144、rule_nameAScondition_expression高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社n用用T-SQL语句语句实现对数据库、数据表及实现对数据库、数据表及数据完整性的操作数据完整性的操作高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社

145、山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.1创建用户数据库创建用户数据库l2、使用、使用T-SQL语句句创建用建用户数据数据库u(1)创建数据库的语法格式)创建数据库的语法格式p使用使用CREATEDATABASE语句句创建数据建数据库,用来定,用来定义数据数据库名、确定数据名、确定数据库文件和数据文件和数据库日志文件的属性日志文件的属性(名称、大小、名称、大小、位置、最大容量、增位置、最大容量、增长特性等特性等)。SQL-SERVER数据库

146、管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.1创建用户数据库创建用户数据库uCREATEDATABASE简化语法格式简化语法格式pCREATEDATABASEdatabase_nameONPRIMARY,.n,.nLOGON,.nSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规

147、划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作p各参数各参数说明如下:明如下:database_name:指定数据库名称,必须唯一且不能超过:指定数据库名称,必须唯一且不能超过128个字符。个字符。ON子句子句:指明数据库数据文件的明确含义(:指明数据库数据文件的明确含义(参数参数)。)。PRIMARY:指定关联的:指定关联的列表定义主列表定义主数据数据文件。在主文件组文件。在主文件组的的项中指定的第一个文件将成为主项中指定的第一个文件将成为主数据数据文件。一个数据库只文件。一个数据库只能有一个主能有一个主数据数据文件。文

148、件。LOGON子句子句:指明事务日志文件的明确含义(:指明事务日志文件的明确含义(参数参数)。如果。如果没有没有LOGON子句,则系统会自动产生一个与数据库名相同的文子句,则系统会自动产生一个与数据库名相同的文件名前缀,容量为所有数据文件大小件名前缀,容量为所有数据文件大小1/4的事务日志文件。的事务日志文件。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作p其中定其中定

149、义为::=(NAME=logical_,=os_,SIZE=sizeKB|MB|GB|TB,MAXSIZE=max_sizeKB|MB|GB|TB|UNLIMITED,=growth_incrementKB|MB|GB|TB|%),nSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作p各各选项含含义如下:如下:NAME:指定文件在:指定文件在SQLServer中的逻辑名称。

150、中的逻辑名称。:指定文件在操作系统中存储的路径和文件名称:指定文件在操作系统中存储的路径和文件名称(物理文件物理文件)。os_的路径必须指定为的路径必须指定为SQLServer所安装服务器上的某个文件夹。所安装服务器上的某个文件夹。SIZE:指定数据库的初始容量大小。:指定数据库的初始容量大小。如果没有指定,则如果没有指定,则SQLServer默认其与默认其与model数据库中的主文件大小一致,其数据库中的主文件大小一致,其他数据库文件和事务日志文件则默认为他数据库文件和事务日志文件则默认为1MB。size中不能使用小数,其最小值为中不能使用小数,其最小值为512K,默认值为,默认值为1MB。

151、主文件的。主文件的size不能小不能小于于model数据库中的主文件。数据库中的主文件。MAXSIZE:指定文件的最大容量。:指定文件的最大容量。如果没有指定,则文件可以不断增长直到充满磁盘。如果没有指定,则文件可以不断增长直到充满磁盘。UNLIMITED指明文件无容指明文件无容量限制。量限制。:指定文件每次增容时增加的容量大小。指定文件每次增容时增加的容量大小。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2

152、3.2 数据库的基本操作数据库的基本操作p:=_nameDEFAULT,.np:控制文件:控制文件组属性。不能属性。不能对数据数据库快照指定文件快照指定文件组。p :文件文件组的的逻辑名称。名称。必须在数据库中唯一,不能是系统提供的名称必须在数据库中唯一,不能是系统提供的名称PRIMARY和和PRIMARY_LOG。名称可以是字符或名称可以是字符或Unicode常量,也可以是常规标识符或分隔标识符。常量,也可以是常规标识符或分隔标识符。名称必须符合标识符规则。名称必须符合标识符规则。pDEFAULT:指定命名文件:指定命名文件组为数据数据库中的默中的默认文件文件组。SQL-SERVER数据库管

153、理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作u(2)在)在“SQL编辑器编辑器”中创建数据库中创建数据库p【例例3-1】创建一个名建一个名为student的用的用户数据数据库,其数据文件初始,其数据文件初始大小大小为3MB,文件大小增,文件大小增长增量增量为10%,不限制增,不限制增长;日志文件初;日志文件初始大小始大小为4MB,文件增,文件增长增量增量为10,不限制增,不限制增长。p具体具体T

154、SQL语句如下:句如下:SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作CREATEDATABASEstudentONPRIMARY(NAME=student,E:studentstudent.mdf,SIZE=3,MAXSIZE=UNLIMITED,)LOGON(NAME=student_log,E:studentstudent_log.ldf,SIZE=4,MAXSI

155、ZE=UNLIMITED,)GOSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库l2使用使用T-SQL语句句查看与修改数据看与修改数据库设置置u(1)打开数据库)打开数据库p当用当用户登登录SQLServer服服务器,器,连接上接上SQLServer后,用后,用户需要需要连接上接上SQLServer服服务器中的一个数据器中的一个数据

156、库,才能使用,才能使用该数据数据库中的数中的数据。据。p一般地,用一般地,用户需要指定需要指定连接接SQLServer服服务器中的哪个数据器中的哪个数据库,或,或者从一个数据者从一个数据库切切换至另一个数据至另一个数据库,可以在,可以在SQL编辑器中利用器中利用USE命命令来打开或切令来打开或切换至不同的数据至不同的数据库。p打开或切打开或切换数据数据库的命令的命令如下:如下:USEdatabase_name其中,其中,database_name表示想打开或切换的数据库名称。表示想打开或切换的数据库名称。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山

157、东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库l2使用使用T-SQL语句句查看与修改数据看与修改数据库设置置u(2)修改数据库的语法格式修改数据库的语法格式p修改数据修改数据库使用使用ALTERDATABASE语句,它可以增加或句,它可以增加或删除数据除数据库中的中的文件,也可以修改文件的属性。其文件,也可以修改文件的属性。其简化的化的语法格式如下:法格式如下:ALTERDATABASEdatabase_nameADD

158、FILE,nTO|ADDLOGFILE,n|REMOVEFILElogical_|MODIFYFILE|MODIFYNAME=new_dbnameSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库l2使用使用T-SQL语句句查看与修改数据看与修改数据库设置置u其中定义为:其中定义为::=(NAME=logical_,NEWNAME=n

159、ew_logical_name,=os_,SIZE=size KB|MB|GB|TB,MAXSIZE=max_sizeKB|MB|GB|TB|UNLIMITED,=growth_incrementKB|MB|GB|TB|%)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库l2使用使用T-SQL语句句查看与修改数据看与修改数据库设置置

160、u各参数说明如下:各参数说明如下:pdatabase_name:指明要修改的数据:指明要修改的数据库的名称。的名称。pADDFILE子句子句:指明要增加的数据:指明要增加的数据库文件,文件的属性由文件,文件的属性由给出。出。pTO:指明要添加到的文件:指明要添加到的文件组。如果。如果为缺省,缺省,则将文件添加到将文件添加到当前的默当前的默认文件文件组中。中。pADDLOGFILE子句子句:指明要增加的事:指明要增加的事务日志文件,日志文件的日志文件,日志文件的属性由属性由给出。出。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等

161、教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库l2使用使用T-SQL语句句查看与修改数据看与修改数据库设置置pREMOVEFILE:从数据:从数据库系系统表中表中删除除逻辑文件的文件的说明并明并删除物理除物理文件。除非文件文件。除非文件为空,否空,否则无法无法删除文件,除文件,删除的数据文件由除的数据文件由logical_给出。但不能从数据出。但不能从数据库中中删除主数据文件或主日志文件。除主数据文件或主日志文件。plogical_:在:在S

162、QLServer中引用文件中引用文件时所用所用逻辑名称。名称。pMODIFYFILE:修改指定文件的文件名、容量大小、最大容量、文:修改指定文件的文件名、容量大小、最大容量、文件增容方式等属性,但件增容方式等属性,但一次只能修改一个属性一次只能修改一个属性。使用此使用此选项时,在文件格式中必,在文件格式中必须用用NAME明确指定文件的名称明确指定文件的名称;如果文件大小是已如果文件大小是已经确定的了,那么新定确定的了,那么新定义的的size必必须比当前的文件容量大。比当前的文件容量大。pMODIFYNAME:用于重命名数据:用于重命名数据库,new_dbname为新的数据新的数据库的名称的名称

163、SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库u(3)使用)使用“SQL编辑器编辑器”修改数据库修改数据库p【例例3-2】向向student数据数据库中添加一个数据中添加一个数据库文件和一个日志文件。在文件和一个日志文件。在“SQL编辑器器”中中输入以下命令:入以下命令:ALTERDATABASEstudentADDFILE(NA

164、ME=student_1,E:studentstudent_1.ndf,SIZE=5MB,MAXSIZE=100MB,)GOSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库u(3)使用)使用“SQL编辑器编辑器”修改数据库修改数据库ALTERDATABASEstudentADDLOGFILE(NAME=student_1_log,E

165、:studentstudent_1_log.ldf,SIZE=5MB,MAXSIZE=100MB,)GOSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库u(3)使用)使用“SQL编辑器编辑器”修改数据库修改数据库p【例例3-3】将数据将数据库student的数据的数据库文件文件student_1.ndf的空的空间扩充到充到20MB。

166、具体。具体TSQL语句如下:句如下:USEStudentGOALTERDATABASEstudentMODIFYFILE(NAME=student_1,SIZE=20MB)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.2修改用户数据库修改用户数据库u(3)使用)使用“SQL编辑器编辑器”修改数据库修改数据库p【例例3-4】删除除student数据数据库中的中的

167、student_1.ndf文件。文件。p在在“SQL编辑器器”中中输入以下命令:入以下命令:ALTERDATABASEstudentREMOVEFILEstudent_1GOSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.3重命名用户数据库重命名用户数据库u使用系统存储过程使用系统存储过程sp_renamedb或或ALTERDATABASE语句。语句。l2、使用

168、、使用T-SQL语句重命名数据句重命名数据库u系统存储过程系统存储过程sp_renamedb的语法格式为:的语法格式为:EXECsp_renamedbdbname=old_name,newname=new_nameu【例例3-5】利用系统存储过程利用系统存储过程sp_renamedb将数据库将数据库student改名为改名为studentls。p具体具体T-SQL语句如下:句如下:EXECsp_renamedbstudent,studentlsp在在SQL编辑器器输入上面入上面语句,然后句,然后单击“执行行”或按或按F5键,即可把数据,即可把数据库student更名更名为studentls。S

169、QL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.3重命名用户数据库重命名用户数据库u【例例3-6】使用使用ALTERDATABASE语句再将数据库语句再将数据库studentls改回为改回为student。ALTERDATABASEstudentlsMODIFYNAME=studentSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大

170、学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.2 3.2 数据库的基本操作数据库的基本操作n3.2.4删除用户数据库删除用户数据库l2、使用、使用T-SQL语句句删除数据除数据库u删除数据库使用删除数据库使用DROPDATABASE语句,它可以从语句,它可以从SQLServer中一次删中一次删除一个或几个数据库。其语法格式如下:除一个或几个数据库。其语法格式如下:DROPDATABASEdatabase_name,nu例如删除名为例如删除名为student的用户数据库可以输入下面的用户数据库

171、可以输入下面SQL语句:语句:DROPDATABASEstudentuu注意注意:如果删除某个正在使用的用户数据库,系统会提示:如果删除某个正在使用的用户数据库,系统会提示“无法对该数无法对该数据库进行删除据库进行删除”。另外,用户数据库一旦被删除,将是永久性、不可恢复。另外,用户数据库一旦被删除,将是永久性、不可恢复的,数据库相应的文件和数据均将从服务器的硬盘上被物理删除。的,数据库相应的文件和数据均将从服务器的硬盘上被物理删除。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材

172、数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u可以用可以用CREATETABLE语句创建表,其语法如下:语句创建表,其语法如下:CREATETABLEdatabase_name.schema_name.|schema_name.table_name(|,n)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设

173、计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u各参数说明如下:各参数说明如下:udatabase_name:指定新建数据表所属的数据库。若不指定,则会将:指定新建数据表所属的数据库。若不指定,则会将新建表存入当前数据库。新建表存入当前数据库。uschema_name:架构名。架构名。utable_name:指定新建的表名。表名必须符合标识符规则。:指定新建的表名。表名必须符合标识符规则。ucolumn_definition:指定表中的列名:指定表中的列名(列的定义)(列的定义)

174、。ucomputed_column_definition:定义需要:定义需要计算列值的表达式计算列值的表达式。设计表。设计表时,表中的某些列的列值可能由同一表中的其他列计算得到。例如,平时,表中的某些列的列值可能由同一表中的其他列计算得到。例如,平均分均分=总分总分/n。utable_constraint:表级约束表级约束,是指定义的约束涉及多列。,是指定义的约束涉及多列。(也可以独(也可以独立定义列级约束)立定义列级约束)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与

175、程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u其中其中column_defination定义为:定义为::=column_namedata_typeNULL|NOTNULLDEFAULTconstant_expression,nSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3

176、 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u说明:说明:ucolumn_definition:指定表中的列名:指定表中的列名(列的定义)(列的定义)。包括:。包括:pcolumn_name:指定列的名称。列名必:指定列的名称。列名必须符合符合标识符符规则,并且在表内唯一。,并且在表内唯一。pdata_type:指定列的数据:指定列的数据类型。型。pNULL|NOTNULL:设置是否置是否为空空值。pDEFAULT:指定列的默:指定列的默认值命令。命令。constant_expression为列默列默认值的常量表的

177、常量表达式,比如指定达式,比如指定“性性别”列的默列的默认值为“男男”,在,在输入数据入数据时,若不,若不输入数据入数据则系系统自自动为其其赋值“男男”。pcolumn_constraint:列列级约束束,是指定,是指定义的的约束只适用于束只适用于该列,即只用来列,即只用来“约束束”该列。列。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表

178、l2、使用、使用T-SQL命令命令创建表建表结构构ucolumn_constraint定义为:定义为::=CONSTRAINTconstraint_namePRIMARYKEY|UNIQUECLUSTERED|NONCLUSTERED|FOREIGNKEYREFERENCESref_table(ref_column)ONDELETENOACTION|CASCADE|SETNULL|SETDEFAULTONUPDATENOACTION|CASCADE|SETNULL|SETDEFAULT|CHECK(logical_expression)SQL-SERVER数据库管理数据库管理 数据库与程序设计

179、数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构ucolumn_constraint:列级约束列级约束,是指定义的约束只适用于该列,即只用来,是指定义的约束只适用于该列,即只用来“约束约束”该列。包括:该列。包括:pCONSTRAINT:指定列的:指定列的约束命令,束命令,constraint_name为列列级约束名称束名称pPRIMARYKEY:

180、主:主键约束,指定某列束,指定某列为主主键pUNIQUE:惟一性:惟一性约束,不允束,不允许该列出列出现重复的属性重复的属性值pCLUSTERED|NONCLUSTERED:建立聚簇索引或非聚簇索引:建立聚簇索引或非聚簇索引pFOREIGNKEY:外:外键约束,指定某列束,指定某列为外外键。如果某列。如果某列为外外键,则该列列的的值必必须是其它表中的某列的是其它表中的某列的值,其中:,其中:ref_table:被参照表:被参照表ref_column:被参照列:被参照列CASCADE:层叠:层叠pCHECK:检查约束,束,logical_expression为约束条件表达式束条件表达式SQL-S

181、ERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构ucomputed_column_defination定义为:定义为::=column_nameAScomputed_column_expressionCONSTRAINTconstraint_namePRIMARYKEY|UNIQUECLUSTERED

182、|NONCLUSTERED|FOREIGNKEYREFERENCESref_table(ref_column)ONDELETENOACTION|CASCADEONUPDATENOACTION|CHECK(logical_expression)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u

183、computed_column_expression p定定义计算列的算列的值的表达式。的表达式。计算列并不是物理地存算列并不是物理地存储在表中的虚在表中的虚拟列,除非此列列,除非此列标记为PERSISTED。该列由同一表中的其他列通列由同一表中的其他列通过表达式表达式计算得到。例如,算得到。例如,计算列可以定算列可以定义为costASprice*qty。表达式可。表达式可以是非以是非计算列的列名、常量、函数、算列的列名、常量、函数、变量,也可以是量,也可以是用一个或多个运算符用一个或多个运算符连接的上述元素的任意接的上述元素的任意组合。表合。表达式不能是子达式不能是子查询,也不能包含,也不能

184、包含别名数据名数据类型。型。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构utable_constraint定义为:定义为::=CONSTRAINTconstraint_namePRIMARYKEY|UNIQUECLUSTERED|NONCLUSTERED(columnASC|DESC,n

185、)|FOREIGNKEY(column,n)REFERENCESref_table(ref_column,n)ONDELETENOACTION|CASCADE|SETNULL|SETDEFAULTONUPDATENOACTION|CASCADE|SETNULL|SETDEFAULT|DEFAULTconstant_expressionFORcolumn|CHECK(search_conditions)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计

186、 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构utable_constraint:表级约束,是指定义的约束涉及多列:表级约束,是指定义的约束涉及多列(也可以独立定义列级约束)(也可以独立定义列级约束)。u列级约束的约束条件只涉及到一列数据,如果涉及到多列列级约束的约束条件只涉及到一列数据,如果涉及到多列属性,则要定义为表级约束。包括:属性,则要定义为表级约束。包括:pASC|DESC:索引:索引值按升序或降序排列按升序或降序排列p其他参数的含其他参数的含义与列与列级约束中的同名参数

187、一致束中的同名参数一致SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u【例例3-8】使用使用T-SQL语句创建语句创建course表结构。表结构。USEstudentGOCREATETABLEcourse(cnonvarchar(3)NOTNULLPRIMARYKEY,cnamenvarc

188、har(30)NOTNULLUNIQUE,csemesternvarchar(1),ccreditint)u其中:课程号其中:课程号cno设置为非空且主键,课程名设置为非空且主键,课程名cname非空且不能有重复值非空且不能有重复值SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u使用使用T

189、-SQL语句创建语句创建student表结构。表结构。CREATETABLEstudent.dbo.student(snonvarchar(7)NOTNULLPRIMARYKEY,snamenvarchar(10)NOTNULL,ssexnvarchar(1),sdeptnvarchar(20)NOTNULL,sidfybit,sresumetext)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据

190、表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u【例例3-9】使用使用T-SQL语句创建语句创建sc表结构。表结构。u方法一:方法一:USEstudentGOCREATETABLEsc(snonvarchar(7)NOTNULLFOREIGNKEYREFERENCESstudent(sno),cnonvarchar(3)NOTNULLFOREIGNKEYREFERENCEScourse(cno),gradedecimal(4,1)NOTNULLCHECK(grade0),CONSTRAINTc1PRIMARYKEY(sno,cno

191、)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u其中:其中:sno和和cno一起做为主键;一起做为主键;sno为外键,参照表和参照列为外键,参照表和参照列为为student表的表的sno;cno为外键,参照表和参照列为为外键,参照表和参照列为course表表的的cno;grade设置设置

192、CHECK约束,规定约束,规定grade的值必须大于的值必须大于0。u注意:该表的注意:该表的PRIMARYKEY约束的建立方式与前面约束的建立方式与前面course表表的约束建立方式略有不同:此表是把它用表级约束的形式描述的,的约束建立方式略有不同:此表是把它用表级约束的形式描述的,表级约束名为表级约束名为c1,而在,而在course表则用列级约束的形式描述的。表则用列级约束的形式描述的。当约束涉及多个列时,需用表级约束。当约束涉及多个列时,需用表级约束。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家

193、级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l2、使用、使用T-SQL命令命令创建表建表结构构u方法二:方法二:usc表结构也可以都用表级约束来建立。表结构也可以都用表级约束来建立。USEstudentGOCREATETABLEsc(snonvarchar(7)NOTNULL,cnonvarchar(3)NOTNULL,gradedecimal(4,1)NOTNULL,CONSTRAINTc1PRIMARYKEY(sno,cno),CONSTRAINTc2FOREIGNK

194、EY(sno)REFERENCESstudent(sno),CONSTRAINTc3FOREIGNKEY(cno)REFERENCEScourse(cno),CONSTRAINTc4CHECK(grade0)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.1创建数据表创建数据表l3、查看表看表结构构u(2)使用系统存储过程)使用系统存储过程sp_help查看查看

195、p语法格式如下:法格式如下:pEXECUTEsp_helptablenamep注意:注意:该语句同句同样在在SQL编辑器中器中输入、运行。入、运行。p【例例3-10】查看看student表表结构。构。EXECUTEsp_helpstudentSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u

196、修改表结构使用修改表结构使用ALTERTABLE语句,其简化的语法格式如下:语句,其简化的语法格式如下:ALTERTABLEdatabase_name.schema_name.|schema_name.table_nameALTERCOLUMNcolumn_namenew_data_typeNULL|NOTNULL|WITHCHECK|WITHNOCHECKADD|,n|DROPCONSTRAINTconstraint_name|COLUMNcolumn_name,n|WITHCHECK|WITHNOCHECKCHECK|NOCHECKCONSTRAINTALL|constraint_name

197、,nSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u其中其中column_defination和和table_constraint的定义与创建表结的定义与创建表结构语法中对应的含义一致。各参数说明如下:构语法中对应的含义一致。各参数说明如下:uALTERTABLEpdatabase_nam

198、e:指定要修改的表所属的数据:指定要修改的表所属的数据库。ptable_name:指定要修改的表。:指定要修改的表。uALTERCOLUMN:修改某列的定义:修改某列的定义pcolumn_name:指定要修改的列。:指定要修改的列。pnew_data_type:指定新的数据:指定新的数据类型。型。uADD:添加一个或多个列或约束的定义。:添加一个或多个列或约束的定义。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.

199、3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构uWITHCHECK|WITHNOCHECKADD:指定已经存在于表中:指定已经存在于表中的数据是否需要使用新添加的或刚启用的的数据是否需要使用新添加的或刚启用的FOREIGNKEY约束或约束或CHECK约束来验证。约束来验证。p例如,在某一列上添加例如,在某一列上添加CHECK约束,但束,但该列中存在与新的列中存在与新的CHECK约束束违背的数据,此背的数据,此时若在表的修改若在表的修改语句中加上句中加上WITHNOCHECK,则可利可利用用WITHNOCHECK来防

200、止来防止对现有行有行验证约束,从而允束,从而允许该约束的添加。束的添加。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构uDROP:指定要删除的约束或列的名称。无法删除

201、以下列:指定要删除的约束或列的名称。无法删除以下列:p用于用于索引索引的列;的列;p用于用于CHECK、FOREIGNKEY、UNIQUE或或PRIMARYKEY约束的列;束的列;p与默与默认值(由(由DEFAULT关关键字定字定义)相关)相关联的列,或的列,或绑定到默定到默认对象的象的列;列;p绑定到定到规则的列。的列。uCHECK|NOCHECKCONSTRAINT:启用或禁用:启用或禁用FOREIGNKEY约束或约束或CHECK约束。约束。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国

202、家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-12】将将course表的表的cname列宽度改为列宽度改为50。USEstudentGOALTERTABLEcourseALTERCOLUMNcnamenvarchar(50)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大

203、学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-13】给给course表添加一列先行课课号,要求:列名表添加一列先行课课号,要求:列名为为pre_cno,类型,类型nvarchar(3),允许空。,允许空。USEstudentGOALTERTABLEcourseADDpre_cnonvarchar(3)NULLSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与

204、程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-14】删除删除student表中表中ls列(假设已建立)。列(假设已建立)。USEstudentGOALTERTABLEstudentDROPCOLUMNlsSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据

205、表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-26】将将sc_2008002表的表的sno列设为主键。列设为主键。u假设假设sc_2008002表已建立,其表结构同表已建立,其表结构同sc表。表。USEstudentGOALTERTABLEsc_2008002ADDCONSTRAINTPK_sno_cnoPRIMARYKEY(sno,cno)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计

206、数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-27】删除删除sc_2008002表的表的PK_sno_cno约束。约束。ALTERTABLEsc_2008002DROPCONSTRAINTPK_sno_cnoSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的

207、基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-29】将将sc_2008002表的表的cno列设为外键,参照表、列为列设为外键,参照表、列为course表及表及其其cno列。列。USEstudentGOALTERTABLEsc_2008002ADDCONSTRAINTFK_sc_2008002_cnoFOREIGNKEY(cno)REFERENCEScourse(cno)u【例例3-30】将将sc_2008002表的表的cno列的外键约束删除。列的外键约束删除。ALTERTABLEsc_2008002DROPCONSTRAI

208、NTFK_sc_2008002_cnoSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-33】对对sc_2008002表的表的grade列设置列设置UNIQUE约束。约束。USEstudentGOALTERTABLEsc_2008002ADDCONSTRAINTIX_sc_2008

209、002_gradeUNIQUE(grade)u例例3-34删除删除sc_2008002表中表中grade列的列的UNIQUE约束。约束。ALTERTABLEsc_2008002DROPCONSTRAINTIX_sc_2008002_gradeSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u

210、【例例3-36】对对sc_2008002表的表的sno列设置必须为值的列设置必须为值的CHECK约束。约束。USEstudentGOALTERTABLEsc_2008002ADDCONSTRAINTCK_sc_2008002_snoCHECK(sno=2008002)u【例例3-37】删除删除sc_2008002表表sno列的列的CHECK约束。约束。ALTERTABLEsc_2008002DROPCONSTRAINTCK_sc_2008002_snoSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划

211、教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.2修改数据表修改数据表l2、使用、使用T-SQL语句修改表句修改表结构构u【例例3-39】将将course表的表的ccredit列设置默认值列设置默认值3,即学分的默认值为,即学分的默认值为3。USEstudentGOALTERTABLEcourseADDCONSTRAINTDF_course_ccreditDEFAULT3FORccreditu【例例3-40】删除删除course表的表的ccredit列列DEFAULT约束设置。约束设置。ALTERTAB

212、LEcourseDROPCONSTRAINTDF_course_ccreditSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l2、使用默、使用默认值u默认值是一种数据库对象,在数据库中只需定义一次后,就可默认值是一种数据库对象,在数据库中只需定义一次后,就可以被多次应用于任意表中的一列或多列。以被多次应用于任意表中的一列或多列。u使用使用T-SQL语句创建默认值的语法格式如下:语句创建默认值的语法格式如下:CREATEDEFAULTdefault_nameASconsta

213、nt_expressionp各参数各参数说明如下:明如下:default_name:新建立的默认值的名称:新建立的默认值的名称constant_expression:指定的默认值:指定的默认值高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l2、使用默、使用默认值u【例例3-41】给给student数据库创建一个值为数据库创建一个值为3的默认值的默认值

214、DF_credit,然,然后将其绑定到后将其绑定到course表的表的ccredit列上。列上。USEstudentGOCREATEDEFAULTDF_creditAS3u创建了默认值后,就可以把它绑定到表上的某列从而使用该默创建了默认值后,就可以把它绑定到表上的某列从而使用该默认值。认值。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据

215、库与程序设计 山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现u当当DF_credit创创建建之之后后,在在“对对象象资资源源管管理理器器”中中打打开开course表表设设计计器器,单单击击ccredit列列,再再单单击击“列列属属性性”的的“默默认认值值或或绑绑定定”栏栏右右边边的的下下拉拉按按钮钮,可可看看到到上上述述创创建建的的默默认认值值,如如图图3-44,此此时时可可直直接接绑绑定。定。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l

216、2、使用默、使用默认值u将默认值绑定到数据表中某列上的将默认值绑定到数据表中某列上的T-SQL语句语法格式如下:语句语法格式如下:EXECsp_bindefaultdefname=default,objname=object_nameu参数说明如下:参数说明如下:pdefname=default:由:由CREATEDEFAULT语句句创建的默建的默认值对象的名称象的名称pobjname=object_name:默:默认值对象要象要绑定的表和列名称定的表和列名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SE

217、RVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l2、使用默、使用默认值u将将course表的表的ccredit列绑定默认值的列绑定默认值的T-SQL语句:语句:USEstudentGOEXECsp_bindefaultDF_credit,course.ccredit高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山

218、东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l2、使用默、使用默认值u如果要删除已有的默认值,必须先解除该默认值与列的绑定。如果要删除已有的默认值,必须先解除该默认值与列的绑定。解除默认值与列的绑定使用解除默认值与列的绑定使用sp_unbindefault存储过程,其语法存储过程,其语法格式如下:格式如下:EXECsp_unbindefaultobjname=object_namep参数参数说明如下:明如下:objname=object_nam

219、e子句:指定要解除的被默认子句:指定要解除的被默认值值对象绑定的对象绑定的表和列的名称表和列的名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.3默认默认l2、使用默、使用默认值u删除默认值使用删除默认值使用DROPDEFAULT语句,其语法格式如下:语句,其语法格式如下:DROPDEFAULTdefault,np参数参数说明如下:明如下:default:指定

220、要删除的默认:指定要删除的默认值值对象的名称对象的名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u创建规则使用创建规则使用CREATERULE命令,其语法格式如下:命令,其语法格式如下:CREATERULErule_nameAScondition_expressionu参数说明如下:参数说明如下:prule_name:指定要:指定要创建的建的规则

221、的名称的名称pcondition_expression:指定:指定规则的条件。条件可以是的条件。条件可以是WHERE子句中子句中任何有效的表达式,并且可以包含任何有效的表达式,并且可以包含诸如算如算术运算符、关系运算符和运算符、关系运算符和谓词(如如IN、LIKE、BETWEEN)之之类的元素。的元素。pcondition_expression包含一个包含一个局部局部变量量,每个局部,每个局部变量的前面都有量的前面都有一个一个符号。在符号。在创建建规则时,可以使用任何名称或符号表示,可以使用任何名称或符号表示值,但第一个,但第一个字符必字符必须是是符号。符号。高等教育高等教育“十一五十一五”国

222、家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u将规则绑定到列使用将规则绑定到列使用sp_bindrule存储过程,其语法格式如下:存储过程,其语法格式如下:EXECsp_bindrulerulename=rule,objname=object_nameu参数说明如下:参数说明如下:prulename=rule:由:由CREATERULE语句句创建的建的规则的名称的名称pobjnam

223、e=object_name:规则要要绑定的表和列名称定的表和列名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u【例例3-42】给给student数据库创建规则数据库创建规则R_sno,要求学号的前四位必,要求学号的前四位必须是须是2008,后三位是,后三位是0-9任意数字,然后将其绑定到任意数字,然后将其绑定到student表的表的sno列列上。

224、上。USEstudentGOCREATERULER_snoASvalueLIKE20080-10-90-9GOsp_bindruleR_sno,student.snou绑定好规则后,如果在绑定好规则后,如果在student表中增加一行新纪录,表中增加一行新纪录,sno列输入,列输入,其他列数据符合要求,则系统弹出规则冲突错误信息,如图其他列数据符合要求,则系统弹出规则冲突错误信息,如图3-45。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东

225、大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u解除规则与列的绑定使用解除规则与列的绑定使用sp_unbindrule存储过程,其语法格存储过程,其语法格式如下:式如下:sp_unbindruleobjname=object_nameu参数说明如下:参数说明如下:pobjname

226、=object_name子句:指定要解除的被子句:指定要解除的被规则绑定的表定的表和列的名称和列的名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则UsestudentGoCreateruler_gradeasa=0anda=100GoSp_bindruleR_grade,sc.gradeGoSp_unbindrulesc.grade高等教育高等教育

227、“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.5 3.5 数据完整性的实现数据完整性的实现n3.5.4规则规则u删除规则使用删除规则使用DROPRULE语句,其语法格式如下:语句,其语法格式如下:DROPRULErule,nu参数说明如下:参数说明如下:prule:指定要:指定要删除的除的规则的名称,可同的名称,可同时删除多个除多个规则,规则之之间用用“,”分隔。分隔。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材

228、 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.3 数据表的基本操作数据表的基本操作n3.3.3删除数据表删除数据表l2、使用、使用T-SQL语言言删除数据表除数据表u用用DROP语句从数据库中删除表,其语法格式如下:语句从数据库中删除表,其语法格式如下:DROPTABLEdatabase_name .schema_name .|schema_

229、name .table_name ,.n 注意注意:(1)DROPTABLE语句不能删除系统表。语句不能删除系统表。(2)DROPTABLE语句语句既删除表结构,也删除表数据记录既删除表结构,也删除表数据记录,使用时需慎重。使用时需慎重。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.3 3.

230、3 数据表的基本操作数据表的基本操作n3.3.3删除数据表删除数据表l2、使用、使用T-SQL语言言删除数据表除数据表u【例例3-16】删除数据库删除数据库student中的中的sclyls表(假设已建表(假设已建立)。立)。USEstudentGODROPTABLEsclylsGOSQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、

231、使用T-SQL语句添加句添加记录u使用使用Transact-SQL的数据插入语句的数据插入语句INSERT有两种形式:有两种形式:p一种是插入一条一种是插入一条记录;p另一种是插入子另一种是插入子查询结果。果。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加记录u(1)插入一条记录)插入一条记录p插入一

232、条插入一条记录的的语法格式如下:法格式如下:INSERTINTOdatabase_name.schema_name.|schema_name.table_name(,n)VALUES(DEFAULT|NULL|expression,.n)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加记录u(1)插入一

233、条记录)插入一条记录p各参数各参数说明如下:明如下:database_name:指定向哪个数据库插入数据:指定向哪个数据库插入数据table_name:指定向哪个表插入数据:指定向哪个表插入数据column_name:表中的列名,当指定:表中的列名,当指定VALUES的全部数据时可省的全部数据时可省略;如果指定了略;如果指定了column_name,则没有出现在子句中的,则没有出现在子句中的column_name将被取将被取NULLexpression:插入:插入的数据记录中某列的数据记录中某列的数据值表达式,可以是一的数据值表达式,可以是一个常量、变量或表达式个常量、变量或表达式SQL-SE

234、RVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加记录u向表中插入数据向表中插入数据记录记录时要注意,时要注意,数值常量数值常量可以直接插入,可以直接插入,但是字符但是字符常量常量和日期和日期时

235、间常量时间常量要使用单引号(必须是英文要使用单引号(必须是英文半角输入状态下的单引号)引起来。半角输入状态下的单引号)引起来。u如果是如果是Unicode字符常量字符常量,应该在字符数据的引号前使用,应该在字符数据的引号前使用N字符(字符(N一定要大写)。一定要大写)。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL

236、语句添加句添加记录u(1)插入一条记录)插入一条记录p【例例3-18】使用使用INSERT语句向句向course表中添加一条表中添加一条纪录。USEstudentGOINSERTINTOcourseVALUES(c07,NJava语言言,1,3,null)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加

237、记录u(1)插入一条记录)插入一条记录p例例3-19使用使用INSERT语句向句向course表中添加一条表中添加一条记录。USEstudentGOINSERTINTOcourse(cname,pre_cno,ccredit,cno,csemester)VALUES(N网站网站设计,c07,4,c08,2)SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加

238、记录添加记录l2、使用、使用T-SQL语句添加句添加记录u(1)插入一条记录)插入一条记录用用INSERTINTO语句插入数据记录时,注意:语句插入数据记录时,注意:p如果如果INTO子句中没有任何列名,如例子句中没有任何列名,如例3-18,则VALUE子句后的子句后的列列值顺序必序必须与表与表结构的列构的列顺序一致;序一致;p如果如果INTO子句中有列名,如例子句中有列名,如例3-19,则VALUE子句后的列子句后的列值顺序必序必须与与INTO子句后的列子句后的列顺序一致,否序一致,否则容易容易产生数据生数据类型不型不一致的一致的错误。SQL-SERVER数据库管理数据库管理 数据库与程序设

239、计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加记录u(2)插入子查询结果)插入子查询结果p该语句可以将多条句可以将多条满足条件的足条件的记录添加到目的表中,即一次插入添加到目的表中,即一次插入多条多条记录。p插入子插入子查询结果的果的语法格式如下:法格式如下:INSERTINTOdatabase_name.(,n)SELECTSQL-SERVER数据库管理

240、数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加记录u(2)插入子查询结果)插入子查询结果p各参数各参数说明如下:明如下:database_name:指定向哪个数据库插入数据:指定向哪个数据库插入数据table_name:指定向哪个表插入数据:指定向哪个表插入数据column_name:表中的列名:表中的列名SELECTselect

241、_list:SELECT子查询结果子查询结果SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l2、使用、使用T-SQL语句添加句添加记录u(2)插入子查询结果)插入子查询结果p【例例3-20】将学号将学号为的同学的各科成的同学的各科成绩添加到添加到sc_2008002表中。表中。p假假设已建立已建立sc_2008002表,其表表,其表结构与构

242、与sc表表结构一致。构一致。INSERTINTOsc_2008002SELECTsno,cno,gradeFROMscWHEREsno=2008002SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l3、添加、添加记录的注意事的注意事项u在向表中添加记录时,无论使用在向表中添加记录时,无论使用“对象资源管理器对象资源管理器”,还是使用,还是使

243、用T-SQL语句,都应注意以下几个问题:语句,都应注意以下几个问题:u(1)表中数据的类型、长度、允许空等属性必须与定义表结构)表中数据的类型、长度、允许空等属性必须与定义表结构时一致。如:时一致。如:pstudent表的表的sbirthday列是列是datetime类型,型,应按如按如“2000-2-6”的格式的格式输入,入,这样系系统才会接受,否才会接受,否则将出将出现“类型不一致型不一致”的提示。的提示。pcourse表的表的cno列列长度是度是3个字个字节,如果,如果输入超入超过此此长度,如度,如“”,则会出会出现“错误”的提示。的提示。pcourse表中的表中的pre_cno列允列允

244、许空,空,则可以不可以不输入数据,如第入数据,如第1个个记录和和第第6个个记录就没有提供就没有提供pre_cno列的列的值;有些不允;有些不允许为空的列空的列则必必须输入数据。入数据。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l3、添加、添加记录的注意事的注意事项u(2)主键列的数据不能有重复。如:)主键列的数据不能有重复。如:pstu

245、dent表的表的sno列列为主主键,各,各记录中的中的sno不能有重复数据,否不能有重复数据,否则会出会出现“违反了反了PRIMARYKEY约束束”的提示。的提示。psc表的表的sno列和列和cno列一起做列一起做为主主键,各,各记录中的中的这两列不能同两列不能同时相同,但一列相同,但一列相同、一列不同可以。相同、一列不同可以。u(3)某些列要遵守其约束的规定。如:)某些列要遵守其约束的规定。如:psc表的表的grade列要遵守列要遵守CHECK约束,即束,即该列的数列的数值必必须大于大于0,否,否则将会出将会出现“违反了反了CHECK约束束”的提示。的提示。u(4)外键列中的数据必须是其参照

246、表、参照列中已有的数据,因此输入数据时,应)外键列中的数据必须是其参照表、参照列中已有的数据,因此输入数据时,应先输入其参照表。如:先输入其参照表。如:psc表的表的sno列、列、cno列是外列是外键,参照表、列分,参照表、列分别是是student表的表的sno列和列和course表的表的cno列。列。sc表的表的sno列中的数据必列中的数据必须都是都是student表的表的sno列中已有的数据,列中已有的数据,它的它的cno列中的数据必列中的数据必须都是都是course表的表的cno列中已有的数据。如果列中已有的数据。如果输入其它入其它数据,将会出数据,将会出现“FOREIGNKEY约束冲突

247、束冲突”的提示。如的提示。如图3-23。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.1添加记录添加记录l3、添加、添加记录的注意事的注意事项在在INSERT语句中使用语句中使用SELECT时:时:引用的表既可以是相同的,也可以是不相同的;引用的表既可以是相同的,也可以是不相同的;要插入数据的表必要插入数据的表必须已已经存在;存在;要要插插入入数数据据的的表

248、表必必须和和SELECT语句句的的结果果集集兼兼容容,兼兼容容的的含含义是列的数量和是列的数量和顺序必序必须相同、列的数据相同、列的数据类型兼容等。型兼容等。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.2修改记录修改记录l2、使用、使用T-SQL语句修改句修改记录u可以使用可以使用UPDATE语句更新表中已经存在的数据。语句更新表中已经存在的数据。uUPD

249、ATE语句既可以一次更新一行数据,也可以一次更新许多行,语句既可以一次更新一行数据,也可以一次更新许多行,甚至可以一次更新表中的全部数据行。甚至可以一次更新表中的全部数据行。uUPDATE语句的语法格式如下:语句的语法格式如下:UPDATEdatabase_name.SET=|DEFAULT|NULL,nWHERESQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4

250、.2修改记录修改记录l2、使用、使用T-SQL语句修改句修改记录u各参数说明如下:各参数说明如下:pdatabase_name:指定修改的数据所属的数据:指定修改的数据所属的数据库ptable_name:指定修改的数据所属的表:指定修改的数据所属的表pcolumn_name:表中的列名:表中的列名pexpression:用于取代相:用于取代相应的属性列的属性列值的表达式的表达式值psearch_condition:指定修改条件,即修改符合条件的列:指定修改条件,即修改符合条件的列值p若省略若省略WHERE子句,子句,则将更新表中所有将更新表中所有记录SQL-SERVER数据库管理数据库管理 数

251、据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.2修改记录修改记录l2、使用、使用T-SQL语句修改句修改记录u【例例3-21】将将student表号同学的名字改为表号同学的名字改为“李大力李大力”。USEstudentGOUPDATEstudentSETsname=N李大力李大力WHEREsno=2008003u【例例3-22】将将sc_2008002表中所有成绩加表中所有成绩加5分。分。u假设已建立

252、假设已建立sc_2008002表,其表结构与表,其表结构与sc表结构一致。表结构一致。UPDATEsc_2008002SETgrade=grade+5SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.3删除记录删除记录l2、使用、使用T-SQL语句句删除除记录u使用使用DELETE语句可以从表中删除一行或多行记录。语句可以从表中删除一行或多行记录。uDELETE

253、命令的语法如下:命令的语法如下:DELETEFROMdatabase_name.WHEREu各参数说明如下:各参数说明如下:pdatabase_name:指定:指定删除除记录的表所属的数据的表所属的数据库ptable_name:指定:指定删除的除的记录所属的表所属的表psearch_condition:指定:指定删除条件,即除条件,即删除符合条件的除符合条件的记录,若省略,若省略WHERE,则默默认删除所有除所有记录SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计

254、数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本操作表数据的基本操作 n3.4.3删除记录删除记录l2、使用、使用T-SQL语句句删除除记录u【例例3-24】删除删除sc_2008002表中课程号为表中课程号为c03的记录。的记录。USEstudentGODELETEFROMsc_2008002WHEREcno=c03SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.4 3.4 表数据的基本

255、操作表数据的基本操作 n3.4.3删除记录删除记录l2、使用、使用T-SQL语句句删除除记录u【例例3-25】删除删除sc_2008002表的所有记录。表的所有记录。USEstudentGODELETEFROMsc_2008002u注意:注意:DELETE语句语句只是删除表中的数据只是删除表中的数据,表结构依然存在于数,表结构依然存在于数据库中。如果需要删除整个表(包括数据和结构),那么应该使据库中。如果需要删除整个表(包括数据和结构),那么应该使用用DROPTABLE语句。语句。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.

256、6 索引索引u在数据库中,最基本、最频繁的操作是数据查询。在数据库中,最基本、最频繁的操作是数据查询。u为了加快查询速度、减少服务器的响应时间,数据库系统引为了加快查询速度、减少服务器的响应时间,数据库系统引入了入了索引索引机制。机制。u有效地设计索引可以提高性能。有效地设计索引可以提高性能。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.1索引索引u索引索引是以数据表的列为基础建立的

257、数据库对象,它保存着表是以数据表的列为基础建立的数据库对象,它保存着表中排序的索引列,并且记录了索引列在数据表中的物理存储中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序。位置,实现了表中数据的逻辑排序。u索引索引由一行行的记录组成,每一行记录都包含数据表中一列由一行行的记录组成,每一行记录都包含数据表中一列或若干列值的组合和相应指向表中数据页的逻辑指针。或若干列值的组合和相应指向表中数据页的逻辑指针。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库

258、管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.1索引索引u索引除了可以提高查询表内数据的速度以外,还可以使表和表索引除了可以提高查询表内数据的速度以外,还可以使表和表之间的连接速度加快,特别是在实现数据的参照完整性时,可以之间的连接速度加快,特别是在实现数据的参照完整性时,可以将表的外键制作成索引,这样将加速表与表之间的连接。将表的外键制作成索引,这样将加速表与表之间的连接。u索引的存在也让系统付出一定的代价。索引的存在也让系统付出一定的代价。p本身本身创建索引和建索引和维护索引都会耗索引都会耗费时间,当,当对表中的数据表中的数据进行增加、

259、行增加、删除和修改的除和修改的时候,索引就要候,索引就要进行行维护,否,否则索引的作用就会下降;索引的作用就会下降;p另外,每个索引都会占用一定的物理空另外,每个索引都会占用一定的物理空间,如果占有的物理空,如果占有的物理空间过多,多,就会影响到整个就会影响到整个SQLServer系系统的性能。的性能。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.1索引索引u创建索引时,应该考虑以下

260、指导原则:创建索引时,应该考虑以下指导原则:p1、定、定义有主有主键的列可以建立索引。因的列可以建立索引。因为主主键可以唯一表示行,所以通可以唯一表示行,所以通过主主键可以快速定位到数据表中的某一行。可以快速定位到数据表中的某一行。p2、定、定义有外有外键的列可以建立索引。外的列可以建立索引。外键的列通常用于数据表与数据表的列通常用于数据表与数据表之之间的的连接,在其上接,在其上创建索引可以加快数据表建索引可以加快数据表间的的连接。接。p3、在、在经常常查询的列上建立素引。的列上建立素引。(1)需要在指定范围内快速或频繁查询的列。因为索引已经排序,其指定)需要在指定范围内快速或频繁查询的列。因

261、为索引已经排序,其指定的范围是连续的,查询可以利用索引的排序,快速查询。的范围是连续的,查询可以利用索引的排序,快速查询。(2)经常用在)经常用在WHERE子句中的列。使用出现在子句中的列。使用出现在WHERE子句的需要快速或子句的需要快速或频繁检索的列作为索引关键字,可以让这些经常参与查询的列,按照索引的频繁检索的列作为索引关键字,可以让这些经常参与查询的列,按照索引的排序进行查询,加快查询速度。排序进行查询,加快查询速度。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据

262、库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.2索引分类索引分类l1、索引的、索引的顺序和表中序和表中记录的物理存的物理存储顺序是否相同序是否相同u(1)聚集索引)聚集索引(ClusteredIndex)p聚集索引聚集索引保保证数据数据库表中表中记录的物理存的物理存储顺序与索引序与索引顺序相同。序相同。p由于表中由于表中记录的物理存的物理存储顺序只能有一种,所以序只能有一种,所以一个表只能一个表只能创建一个聚集索引建一个聚集索引。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版

263、社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.2索引分类索引分类l1、索引的、索引的顺序和表中序和表中记录的物理存的物理存储顺序是否相同序是否相同u(2)非聚集索引)非聚集索引(Non-ClusteredIndex)p在在非聚集索引非聚集索引中,数据中,数据库表中表中记录的物理存的物理存储顺序可以与索引序可以与索引顺序不同。数据存序不同。数据存储在一个地方,索引存在一个地方,索引存储在另一个地方,索在另一个地方,索引引带有指有指针指向数据的存指向数据的存储位置。位置。p一个表中的任何列都可以建立非聚集索

264、引。一个表中的任何列都可以建立非聚集索引。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.2索引分类索引分类l1、索引的、索引的顺序和表中序和表中记录的物理存的物理存储顺序是否相同序是否相同u注意:注意:p在在创建任何非聚集索引之前建任何非聚集索引之前创建聚集索引建聚集索引,这是因是因为表中的数表中的数据行按照聚集索引的据行按照聚集索引的顺序排列,并且自序排列,并且自动维护这个个顺序;

265、序;p对于于频繁更改的列不适合繁更改的列不适合创建聚集索引,因建聚集索引,因为列中数据的列中数据的频繁繁更改,会引起大量数据行的排序移更改,会引起大量数据行的排序移动。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.2索引分类索引分类l2、索引、索引值是否惟一是否惟一u(1)惟一索引)惟一索引(UniqueIndex)p惟一索引惟一索引表示表中任何两行表示表中任何两行记录的索引的索引值

266、都不相同,它可以确保索引都不相同,它可以确保索引列不包含重复的列不包含重复的值。u(2)非惟一索引)非惟一索引(Non-UniqueIndex)p非惟一索引非惟一索引表示表中表示表中记录的索引的索引值可以相同。可以相同。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.2索引分类索引分类u以上这二种标准的索引在建立时并不冲突,可以互相组合。以上这二种标准的索引在建立时并不冲突,可以互相组

267、合。p如:可以如:可以创建建为聚集且惟一索引聚集且惟一索引,可以,可以创建建为聚集且非惟一索聚集且非惟一索引引,可以,可以创建建为非聚集且惟一索引非聚集且惟一索引。p在数据表中在数据表中创建主建主键约束束PRIMARYKEY,SQLServer2005就会就会默默认建立一个聚集且唯一索引建立一个聚集且唯一索引;p创建唯一性建唯一性约束束UNIQUE,系,系统默默认建立一个非聚集且唯一索建立一个非聚集且唯一索引引。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数

268、据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引uSQLServer创建索引的方式可以分为直接方法和间接方法。创建索引的方式可以分为直接方法和间接方法。p直接直接创建索引的方法建索引的方法就是使用就是使用“对象象资源管理器源管理器”或或CREATEINDEX命令直接命令直接创建索引。建索引。p间接接创建索引建索引就是通就是通过创建其他数据建其他数据库对象而附加象而附加创建了索建了索引,例如在表中定引,例如在表中定义主主键约束束PRIMARYKEY或唯一性或唯一性约束束UNIQUE时,系,系统自自动为这些些约束列束列创建索引。建索引。高等教育高等教育

269、“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引l1、使用、使用“对象象资源管理器源管理器”创建索引建索引u【例例3-43】在在course表的表的cname列上创建非聚集且不唯一索列上创建非聚集且不唯一索引。引。u方法一方法一:使用:使用“新建索引新建索引”快捷菜单创建,能创建多种类型的快捷菜单创建,能创建多种类型的索引。索引。p(1)展开)展开student数据数据库,展开,展开

270、course表,右表,右击“索引索引”选项,选择“新建索引新建索引”选项;p打开打开“新建索引新建索引”对话框,如框,如图3-46所示,在所示,在“索引名称索引名称”文本框文本框输入索引名入索引名“IX_course_cname”,选择非聚集索引非聚集索引类型(型(“唯一唯一”复复选框用于确定唯一索引);框用于确定唯一索引);单击“添加添加”按按钮;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一

271、五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.6 3.6 索引索引p(3)打开)打开“从从dbo.course中中选择列列”对话框,如框,如图3-47所示,所示,选中中cname列,列,单击“确定确定”按按钮,返回到,返回到“新建索引新建索引”对话框,;框,;SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社3.6 3.6 索引索引p(4)在)在“排序排序顺序序

272、”上上选择“升序降序升序降序”作作为索引索引键值的排序的排序顺序;序;p(5)完成所有)完成所有设置工作后,置工作后,单击“确定确定”按按钮完成索引的完成索引的创建工作。建工作。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引l1、使用、使用“对象象资源管理器源管理器”创建索引建索引u【例例3-43】在在course表的表的cname列上创建非聚集且不唯一索引。列上创建非聚集且不唯一索引。u方法二方法二:在表设计器中创建,只能用于创建非聚集索引且唯一或非:在表设计器中创建,只能用于创建非聚

273、集索引且唯一或非唯一索引,不能创建聚集索引。唯一索引,不能创建聚集索引。u具体步骤如下:具体步骤如下:p(1)打开)打开student数据数据库,右,右击course表,表,选择“修改修改(设计)”选项;p(2)打开)打开course表表设计器,右器,右击用作索引的列名用作索引的列名,选择“索引索引/键”选项,单击“添加添加”按按钮;p(3)打开)打开“索引索引/键”对话框,如框,如图3-48所示,在所示,在“列列”栏选择cname列,列,升序;在升序;在“是唯一是唯一”栏选择“否否”;在;在“名称名称”栏输入入“IX_course_cname”索引名;索引名;高等教育高等教育“十一五十一五”

274、国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引p(3)打开)打开“索引索引/键”对话框,如框,如图3-48所示,在所示,在“列列”栏选择cname列,升序;在列,升序;在“是唯一是唯一”栏选择“否否”;在;在“名称名称”栏输入入“IX_course_cname”索引名;索引名;高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库

275、管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引p(4)单击“关关闭”按按钮,关,关闭表表设计器,保存器,保存设置,建立索引。置,建立索引。p(5)单击“对象象资源管理器源管理器”中中student数据数据库course表中表中“索引索引”选项,如,如图3-49所示,可所示,可以看到以看到course表中已建立的索引,表中已建立的索引,其中其中IX_course_cname是是刚才建才建立的,而立的,而PK_course_7E6CC920是是创建建cno列主列主键时系系统自自动创建的。建的。高等教育高等教育“十一五十一五”国家级规划教材国家级

276、规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引l2、使用、使用T-SQL语句句创建索引建索引u创建索引使用创建索引使用CREATEINDEX语句,其语法格式如下:语句,其语法格式如下:CRAETEUNIQUECLUSTERED|NONCLUSTEREDINDEXindex_nameONtable_name|view_name(column_nameASC|DESC,n)高等教育高等教育“十一五十一五”国家级规划教材国

277、家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引l2、使用、使用T-SQL语句句创建索引建索引u各参数说明如下:各参数说明如下:pUNIQUE:为表或表或视图创建惟一索引(不允建惟一索引(不允许存在索引存在索引值相同的两行),相同的两行),视图上的聚集索引必上的聚集索引必须是是UNIQUE索引索引pCLUSTERED|NONCLUSTERED:为表或表或视图创建聚集索引或非聚集索建聚集索引或非聚集索引,如果没有指定

278、索引引,如果没有指定索引类型,型,SQLServer将使用非聚集索引作将使用非聚集索引作为默默认的索引的索引类型型pindex_name:指定:指定创建的索引的名字建的索引的名字ptable_name|view_name:指定:指定创建索引的表名或建索引的表名或视图名名pcolumn_name:指定要在其上建立索引的列名,当列名多于一个:指定要在其上建立索引的列名,当列名多于一个时用用“,”分隔分隔pASC|DESC:指定索引列的排序方式,默:指定索引列的排序方式,默认值是升序(是升序(ASC)高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东

279、大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引l2、使用、使用T-SQL语句句创建索引建索引u【例例3-44】在在student表的表的sdept列上创建非聚集索引。列上创建非聚集索引。USEstudentGOCREATENONCLUSTEREDINDEXIX_student_sdeptONstudent(sdept)高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据

280、库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.3创建索引创建索引l2、使用、使用T-SQL语句句创建索引建索引u说明:说明:p(1)数据表中数据排列)数据表中数据排列顺序是按照聚集索引列的列序是按照聚集索引列的列值排列,所以排列,所以一般数据表都是按照主一般数据表都是按照主键列列顺序排列,因序排列,因为系系统自自动为主主键列建立聚列建立聚集索引集索引。p(2)当在同一当在同一张表中建立聚集索引和非聚集索引表中建立聚集索引和非聚集索引时,应先建立聚先建立聚集索引后再建立非聚集索引。集索引后再建立非聚集索引。如果先建有非聚集索引,当

281、建立聚集索如果先建有非聚集索引,当建立聚集索引引时,SQLServer会自会自动将非聚集索引将非聚集索引删除,然后再重新建立非聚除,然后再重新建立非聚集索引,系集索引,系统提示信息如提示信息如图3-50。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引u(3)当当数数据据表表中中已已建建立立聚聚集集索索引引,如如果果想想再再创创建建一一个个聚聚集集索索引引,则则系系统统会会提提示示如如图图3-5

282、1所所示示信信息息。如如果果原原先先的的聚聚集集索索引引是是由由于于设设置置主主键键系系统统自自动动创创建建的的,则则当当新新聚聚集集索索引引创创建建后后,原原聚聚集集索引及其主键设置同时被删除。索引及其主键设置同时被删除。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社数据表不仅可以在一列上创建索引,有时可能根据需要可在数据表不仅可以在一列上创建索引,有时可能根据需要可在多列上创建组合索引。多列上创建组合索引。SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6

283、 3.6 索引索引n3.6.3创建索引创建索引l2、使用、使用T-SQL语句句创建索引建索引u【例例3-45】在在sc_2008002表的两列表的两列sno、cno上创建非聚集上创建非聚集且唯一索引。且唯一索引。USEstudentGOCREATEUNIQUENONCLUSTEREDINDEXIX_sc_2008002_sno_cnoONsc_2008002(sno,cno)高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出

284、版社3.6 3.6 索引索引n3.6.4管理索引管理索引u可以使用可以使用“对象资源管理器对象资源管理器”和和T-SQL语句两种方法来查看、语句两种方法来查看、修改甚至删除。修改甚至删除。l1、查看索引看索引u(1)使用)使用“对象资源管理器对象资源管理器”查看索引查看索引p展开数据展开数据库,展开相,展开相应数据表,展开数据表,展开“索引索引”选项,右,右击需要需要查看看的索引,如的索引,如图3-52所示,所示,选择“属性属性”选项,打开,打开该属性属性对话框,如框,如图3-53所示,即可所示,即可查看看该索引的索引的详细设置,如果需要,置,如果需要,还可以修改。可以修改。高等教育高等教育“

285、十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l1、查看索引看索引u(2)使用)使用T-SQL语句查看索引语句查看索引p查看索引使用看索

286、引使用sp_helpindex存存储过程,其程,其语法格式如下:法格式如下:EXECsp_helpindexobjname=namep参数参数说明如下:明如下:pobjname=name:指定当前数据:指定当前数据库中的表的名称中的表的名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l1、查看索引看索引u(2)使用)使用T-SQL语句查看索引语句查看索引p【例例3

287、-46】查看看course表中的索引。表中的索引。USEstudentGOEXECsp_helpindexcourse高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l2、修改索引、修改索引u(1)使用)使用“对象资源管理器对象资源管理器”修改索引修改索引p具体步具体步骤与与查看索引一看索引一样,这里就不再里就不再赘述。述。高等教育高等教育“十一五十一五”国家级规划教

288、材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l2、修改索引、修改索引u(2)使用)使用T-SQL语句修改索引语句修改索引p修改索引名称使用修改索引名称使用sp_rename存存储过程,其程,其语法格式如下:法格式如下:EXECsp_renameobjname=object_name,newname=new_name,indexp参数参数说明如下:明如下:objname=object_name:指定索引的当前

289、名称,索引名前要:指定索引的当前名称,索引名前要加上所在表的表名加上所在表的表名newname=new_name:指定索引的新名称:指定索引的新名称index:指定要重命名的对象为索引:指定要重命名的对象为索引高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l2、修改索引、修改索引u(2)使用)使用T-SQL语句修改索引语句修改索引p【例例3-47】将将sc_2008

290、002表的索引表的索引IX_sc_2008002_sno_cno改名改名为IX_sc_2008002_scno。USEstudentGOEXECsp_renamesc_2008002.IX_sc_2008002_sno_cno,IX_sc_2008002_scno,index高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l3、删除索引除索引u(1)使用)使用“对象资

291、源管理器对象资源管理器”删除索引删除索引p展开数据展开数据库,展开相,展开相应数据表,展开数据表,展开“索引索引”选项,右,右击需要需要删除除的索引,的索引,选择“删除除”选项,打开,打开“删除除对象象”对话框,如框,如图3-55所所示,示,单击“确定确定”按按钮即可即可删除除该索引。索引。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引高等教育高等教育“十一五十一五”国家级规划教材国家级规划教

292、材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l3、删除索引除索引u(2)使用)使用T-SQL语句删除索引语句删除索引p删除索引使用除索引使用DROPINDEX命令,其命令,其语法格式如下:法格式如下:DROPINDEXtable.index|view.index,np参数参数说明如下:明如下:ptable或或view:指定索引列所在的表或索引:指定索引列所在的表或索引视图pindex:指定要:指定要删除的索引名称除的索引

293、名称高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l3、删除索引除索引u(2)使用)使用T-SQL语句删除索引语句删除索引p【例例3-48】删除除sc_2008002表的索引表的索引IX_sc_2008002_scnoUSEstudentGODROPINDEXsc_2008002.IX_sc_2008002_scno高等教育高等教育“十一五十一五”国家级规划教材国家

294、级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社3.6 3.6 索引索引n3.6.4管理索引管理索引l3、删除索引除索引u(2)使用)使用T-SQL语句删除索引语句删除索引p在在删除索引除索引时,要注意下面的情况:,要注意下面的情况:当执行当执行DROPINDEX语句时,语句时,SQLServer释放被该索引所占的磁盘空间。释放被该索引所占的磁盘空间。不能使用不能使用DROPINDEX语句删除由主键约束或唯一性约束创建的索引。要想删语句删除由主键约束或唯一性约束创建的

295、索引。要想删除这些索引,必须先删除这些约束。除这些索引,必须先删除这些约束。当删除一个聚集索引时,该表的全部非聚集索引重新自动创建。当删除一个聚集索引时,该表的全部非聚集索引重新自动创建。当删除表的所有索引时,首先要删除非聚集索引,然后才删除聚集索引。当删除表的所有索引时,首先要删除非聚集索引,然后才删除聚集索引。当删除表时,该表的全部索引也被删除。当删除表时,该表的全部索引也被删除。不能在系统表上使用不能在系统表上使用DROPINDEX语句。语句。高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社高等教育高等教育“十一五十一五”国家级规划教材国家级规划教材 数据库与程序设计数据库与程序设计 山东大学出版社山东大学出版社本 章 结 束SQL-SERVER数据库管理数据库管理 数据库与程序设计数据库与程序设计山东大学出版社山东大学出版社

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号