cs5SQLServer2000数据库基本操作_第1页
cs5SQLServer2000数据库基本操作_第2页
cs5SQLServer2000数据库基本操作_第3页
cs5SQLServer2000数据库基本操作_第4页
cs5SQLServer2000数据库基本操作_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

1、第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 5.1 SQL Server2000数据库基本操作 5.2 表和视图的基本操作 5.3 案例3:创建活期储蓄管理系统数据库 -数据库的物理设计与实现第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 SQL Server2000 SQL Server2000 中一台服务器上可创建多个数据库。中一台服务器上可创建多个数据库。SQL Server2000SQL Server2000中的数据库是由数据表的集合组成的,每中的数据库是由数据表的集合组成的

2、,每个数据表中包含数据以及其他数据库对象,这些对象包括个数据表中包含数据以及其他数据库对象,这些对象包括视图、索引、存储过程和触发器等。视图、索引、存储过程和触发器等。数据库系统使用一组操作系统文件来映射数据库管理数据库系统使用一组操作系统文件来映射数据库管理系统中保存的数据库,数据库中的所有数据和对象都存储系统中保存的数据库,数据库中的所有数据和对象都存储在其映射的操作系统文件中。这些操作系统文件可以是数在其映射的操作系统文件中。这些操作系统文件可以是数据文件或日志文件。据文件或日志文件。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 5

3、.1 SQL Server20005.1 SQL Server2000数据库基本操作数据库基本操作 5.1.1 SQL Server5.1.1 SQL Server数据库概述数据库概述v 数据库文件和文件组数据库文件和文件组 SQL ServerSQL Server的数据库由的数据库由数据文件数据文件和和日志文件日志文件组成。数据组成。数据文件是用来存放数据库中的数据的。数据文件又包括文件是用来存放数据库中的数据的。数据文件又包括主数据主数据文件和次数据文件文件和次数据文件。每个数据库都包括一个主数据文件和一。每个数据库都包括一个主数据文件和一个或多个日志文件,还可以有次数据文件。个或多个日志

4、文件,还可以有次数据文件。 主数据文件主数据文件(.mdf)(.mdf):存储数据信息和数据库的启动信息。:存储数据信息和数据库的启动信息。一个数据库有且仅有一个主数据文件。一个数据库有且仅有一个主数据文件。 次数据文件次数据文件(.ndf)(.ndf):存储主数据文件存储不下的数据信息。:存储主数据文件存储不下的数据信息。一个数据库可以没有次数据文件,也可有多个次数据文件。一个数据库可以没有次数据文件,也可有多个次数据文件。 日志文件日志文件(.ldf)(.ldf):存储数据库的所有事务日志信息,包含:存储数据库的所有事务日志信息,包含用于恢复数据库的日志信息,一个数据库至少有一个日志用于恢

5、复数据库的日志信息,一个数据库至少有一个日志文件,也可以有多个日志文件。文件,也可以有多个日志文件。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 数据库文件组数据库文件组为了方便管理、提高系统性能,将多个数据库文件组为了方便管理、提高系统性能,将多个数据库文件组织成一组,即称为数据库文件组。数据库文件组控制各个织成一组,即称为数据库文件组。数据库文件组控制各个文件的存放位置,常常将每个文件建立在不同的硬盘驱动文件的存放位置,常常将每个文件建立在不同的硬盘驱动器上。这样可以减轻单个硬盘驱动器的存储负载,提高数器上。这样可以减轻单个硬盘驱

6、动器的存储负载,提高数据库的存储效率,从而实现提高系统性能的目的。据库的存储效率,从而实现提高系统性能的目的。 在使用数据库文件和文件组时,应该注意以下几点:在使用数据库文件和文件组时,应该注意以下几点: 1)1)每个文件或文件组只能用于一个数据库。每个文件或文件组只能用于一个数据库。 2)2)每个文件只能属于一个文件组。每个文件只能属于一个文件组。 3)3)日志文件是独立的。数据库的数据和日志信息不能日志文件是独立的。数据库的数据和日志信息不能放在同一个文件或文件组中,数据文件和日志文件总是分放在同一个文件或文件组中,数据文件和日志文件总是分开的。开的。 第第5 5章章 SQL Server

7、2000SQL Server2000基本操作与应基本操作与应用用 v 系统数据库和示例数据库系统数据库和示例数据库 SQL ServerSQL Server支持系统数据库、示例数据库和用户数据库。支持系统数据库、示例数据库和用户数据库。 系统和示例数据库是在安装系统和示例数据库是在安装 SQL ServerSQL Server后自动创建的,后自动创建的,用户数据库是由系统管理员或授权的用户创建的数据库。用户数据库是由系统管理员或授权的用户创建的数据库。 系统数据库系统数据库 SQL ServerSQL Server的系统数据库包括以下几个数据库:的系统数据库包括以下几个数据库: masterm

8、aster数据库数据库 是是SQL ServerSQL Server的总控数据库,保存了的总控数据库,保存了SQL ServerSQL Server系系统的全部系统信息、所有登录信息和系统配置,保存了统的全部系统信息、所有登录信息和系统配置,保存了所有建立的其他数据库及其有关信息。用户应随时备份所有建立的其他数据库及其有关信息。用户应随时备份该数据库,以保证系统的正常运行。该数据库,以保证系统的正常运行。 mastermaster数据库中包含大量的系统表、视图和存储过数据库中包含大量的系统表、视图和存储过程,用于保存程,用于保存ServerServer级的系统信息,并实现系统管理。级的系统信息

9、,并实现系统管理。其中特有的、常用的系统表和存储过程见附录其中特有的、常用的系统表和存储过程见附录B B和附录和附录C C。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 tempdbtempdb数据库数据库 tempdbtempdb是一个临时数据库,是全局资源,它保存全是一个临时数据库,是全局资源,它保存全部的临时表和临时存储过程。每次启动部的临时表和临时存储过程。每次启动 SQL ServerSQL Server时,时,tempdbtempdb数据库都被重建,因此,该数据库在系统启动时数据库都被重建,因此,该数据库在系统启动时总是干净的

10、。总是干净的。 使用使用tempdbtempdb不需要特殊的权限。不管不需要特殊的权限。不管SQL ServerSQL Server中中安装了多少数据库,安装了多少数据库,tempdbtempdb只有一个。只有一个。tempdbtempdb是系统中是系统中负担最重的数据库,几乎所有的查询都可能使用它。负担最重的数据库,几乎所有的查询都可能使用它。 modelmodel数据库数据库 是一个模板数据库。每当创建一个新数据库时,是一个模板数据库。每当创建一个新数据库时,SQL SQL ServerServer就复制就复制modelmodel数据库的内容到新建数据库中,因此,数据库的内容到新建数据库中

11、,因此,所有新建数据库的内容都和这个数据库完全一样。所有新建数据库的内容都和这个数据库完全一样。 如果用户想使每个新建的数据库一开始就具有某些如果用户想使每个新建的数据库一开始就具有某些对象,可以将这些对象放到对象,可以将这些对象放到modelmodel数据库中,这样所有新数据库中,这样所有新建的数据库都将继承这些内容。建的数据库都将继承这些内容。modelmodel数据库中有数据库中有1818个系个系统表统表(master(master数据库中也有这些系统表数据库中也有这些系统表) )、视图以及存储、视图以及存储过程,用于保存数据库级的系统信息。过程,用于保存数据库级的系统信息。第第5 5章

12、章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 msdbmsdb数据库数据库 msdbmsdb数据库是一个和自动化有关的数据库。数据库是一个和自动化有关的数据库。SQL SQL Server Server 代理(代理(SQL Server AgentSQL Server Agent)使用)使用 msdbmsdb数据库来数据库来安排报警、作业,并记录操作员。如完成一些调度性的安排报警、作业,并记录操作员。如完成一些调度性的工作,备份和复制等。工作,备份和复制等。 示例数据库示例数据库SQL ServerSQL Server的示例数据库主要包括以下两个数据

13、库。的示例数据库主要包括以下两个数据库。 pubspubs数据库数据库一个图书出版方面的示例数据库,虽然用户可以随一个图书出版方面的示例数据库,虽然用户可以随时修改、甚至删除该数据库,但建议用户保留该数据库,时修改、甚至删除该数据库,但建议用户保留该数据库,以便更好地学习以便更好地学习SQL ServerSQL Server。 NorthwindNorthwind数据库数据库一个涉及虚构的一个涉及虚构的NorthwindNorthwind贸易公司在世界范围内贸易公司在世界范围内进出口食品的销售情况示例数据库。进出口食品的销售情况示例数据库。第第5 5章章 SQL Server2000SQL S

14、erver2000基本操作与应基本操作与应用用 5.1.2 5.1.2 创建数据库创建数据库v 创建数据库创建数据库:就是为数据库确定名称、大小、存放位置、文件名和所在就是为数据库确定名称、大小、存放位置、文件名和所在文件组的过程。文件组的过程。 文件名称:数据文件和日志文件的名称文件名称:数据文件和日志文件的名称( (逻辑名逻辑名) ) 。文件名必须符。文件名必须符合命名规则。合命名规则。在同一台在同一台SQL ServerSQL Server服务器上,各数据库的名称是惟服务器上,各数据库的名称是惟一的。一的。数据库的创建信息存放在数据库的创建信息存放在mastermaster数据库的数据库

15、的sysdatabasessysdatabases系统系统表中。创建数据库后,系统自动把表中。创建数据库后,系统自动把modelmodel数据库中的信息复制到新数据库中的信息复制到新建的数据库中。建的数据库中。 创建数据库之前,首先要考虑数据库的拥有者、数据库的初始容量、创建数据库之前,首先要考虑数据库的拥有者、数据库的初始容量、最大容量、增长量以及数据库文件的存放路径等因素,文件大小一最大容量、增长量以及数据库文件的存放路径等因素,文件大小一般以般以MBMB为单位。为单位。v SQL Server 2000SQL Server 2000中创建数据库的方法中创建数据库的方法:使用企业管理器创建

16、数据库使用企业管理器创建数据库使用使用Transact-SQLTransact-SQL语句创建数据库语句创建数据库使用向导创建数据库使用向导创建数据库第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 使用企业管理器创建数据库使用企业管理器创建数据库例例:以默认形式创建:以默认形式创建mydbmydb数据库,数据库,步骤如下步骤如下: (1)(1)启动企业管理器,连接服务器,展开其树形目录,用鼠标启动企业管理器,连接服务器,展开其树形目录,用鼠标右键单击【数据库】文件夹,在弹出的快捷菜单中,单击右键单击【数据库】文件夹,在弹出的快捷菜单中,

17、单击【新建数据库【新建数据库】打开图】打开图5-25-2所的对话框。所的对话框。 (2)(2)在【数据库属性】对话框的【名称】文本框内输入数据库在【数据库属性】对话框的【名称】文本框内输入数据库名名( (逻辑名逻辑名) )。例如。例如MyDBMyDB,这个对话框自动以该数据库名命名,这个对话框自动以该数据库名命名,系统默认用该数据库名与系统默认用该数据库名与“_data”_data”串的连接命名数据文件串的连接命名数据文件(见图(见图5-35-3),该数据库名与),该数据库名与“_log”_log”串的连接命名日志文串的连接命名日志文件(见图件(见图5-45-4)。这两个不同选项卡界面内的设置

18、,分别为)。这两个不同选项卡界面内的设置,分别为数据主文件和日志文件的名称、存储位置、初始大小、所属数据主文件和日志文件的名称、存储位置、初始大小、所属文件组文件组( (默认为主文件组默认为主文件组 PRIMARY)PRIMARY)、文件是否自动增长、增、文件是否自动增长、增长的方式和文件大小的限制等。长的方式和文件大小的限制等。 (3)(3)单击【确定】按钮,数据库就创建好了,在默认位置、采单击【确定】按钮,数据库就创建好了,在默认位置、采用默认设置创建了一个名为用默认设置创建了一个名为MyDBMyDB的数据库。的数据库。 第第5 5章章 SQL Server2000SQL Server20

19、00基本操作与应基本操作与应用用 图5-2 数据库属性对话框 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图图5-3 5-3 数据文件选项卡界面数据文件选项卡界面 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图5-4 事务日志文件选项卡界面第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 使用使用Transact-SQLTransact-SQL命令创建数据库命令创建数据库CREATE DATABASECREATE DATAB

20、ASE database_name database_name ON ON PRIMARYPRIMARY ,n ,n ,FILEGROUPFILEGROUP filegroup_name filegroup_name ,. .n n LOG ON LOG ON ,. .n n FOR LOAD | FOR ATTACH FOR LOAD | FOR ATTACH 其中,其中,(文件格式)语法格式如下:(文件格式)语法格式如下: (NAME=logical_file_name,(NAME=logical_file_name, FILENAME= os_file_name FILENAME= os

21、_file_name ,SIZE = sizeSIZE = size ,MAXSIZE=max_size| UNLIMITEDMAXSIZE=max_size| UNLIMITED ,FILEGROWTH=growth_increment)FILEGROWTH=growth_increment)第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图图5-5 5-5 创建数据库创建数据库exampledbl exampledbl 【例【例5-15-1】省略省略CREATE DATABASECREATE DATABASE命令中各选项创建一个命令中各

22、选项创建一个数据库数据库exampledblexampledbl。命令和执行结果见图。命令和执行结果见图5-55-5。 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 【例【例5-25-2】使用使用ONON和和LOGLOGONON选项创建一个数据库选项创建一个数据库exampledb2exampledb2。 命令和执行结果见图命令和执行结果见图5-65-6。图图5-6 5-6 创建数据库创建数据库exampledb2 exampledb2 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用

23、v 用向导创建数据库用向导创建数据库 使用向导创建数据库是一种非常简单的方法。启动企业使用向导创建数据库是一种非常简单的方法。启动企业管理器,在工具菜单中选择向导即可按向导进行相应的操作。管理器,在工具菜单中选择向导即可按向导进行相应的操作。5.1.3 5.1.3 修改数据库修改数据库 创建数据库后,可能会由于某种原因需要对其进行修改。创建数据库后,可能会由于某种原因需要对其进行修改。例如增加和删除数据库的文件和文件组、修改文件和文件组例如增加和删除数据库的文件和文件组、修改文件和文件组的属性。但只有的属性。但只有sysadminsysadmin和和dbcreatordbcreator服务器角

24、色成员和服务器角色成员和DBODBO才能修改数据库。才能修改数据库。v 使用企业管理器修改数据库使用企业管理器修改数据库 有两种方法来修改:有两种方法来修改:使用企业管理器修改数据库使用企业管理器修改数据库使用使用T-SQLT-SQL命令修改数据库命令修改数据库第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 11v 使用企业管理器修改数据库使用企业管理器修改数据库步骤如下:步骤如下: (1)(1)启动企业管理器,连接服务器,展开其树形目录,展开启动企业管理器,连接服务器,展开其树形目录,展开【数据库】文件夹,用鼠标右键单击要修改的数据库名,

25、例【数据库】文件夹,用鼠标右键单击要修改的数据库名,例如如exampledb1exampledb1,在弹出的快捷菜单中,单击【属性】命令,在弹出的快捷菜单中,单击【属性】命令,则弹出如图则弹出如图5-75-7所示的对话框。所示的对话框。 (2)(2)在在exampledb1exampledb1属性对话框【数据文件】选项卡画面中,可属性对话框【数据文件】选项卡画面中,可以修改数据库的主文件组和用户定义文件组中各数据文件的以修改数据库的主文件组和用户定义文件组中各数据文件的信息,包括逻辑名、物理文件名、初始长度、所属文件组及信息,包括逻辑名、物理文件名、初始长度、所属文件组及自动增长的限制等。自动

26、增长的限制等。 (3)(3)单击【事务日志】选项卡,在这个选项卡画面中,用户可单击【事务日志】选项卡,在这个选项卡画面中,用户可以修改数据库的日志文件的信息,包括逻辑名、物理文件名、以修改数据库的日志文件的信息,包括逻辑名、物理文件名、初始长度及自动增长的限制等。初始长度及自动增长的限制等。 (4)(4)单击【文件组】、【选项】、【权限】等选项卡,可以修单击【文件组】、【选项】、【权限】等选项卡,可以修改数据库的文件组、数据库选项、数据库访问权限等内容。改数据库的文件组、数据库选项、数据库访问权限等内容。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操

27、作与应用用 图图5-7 5-7 数据库属性对话框数据库属性对话框 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 使用使用TransactSQLTransactSQL命令修改数据库命令修改数据库 ALTER DATABASEALTER DATABASE database database ADDADDFILEFILE,n)TOn)TOFILEGROUP FILEGROUP filegroup_namefilegroup_name ADD LOG FILEADD LOG FILE,nn REMOVE FILEREMOVE FILE log

28、ical_file_name logical_file_name | |ADD FILEGROUPADD FILEGROUP filegroup_name filegroup_name | |REMOVE FILEGROUPREMOVE FILEGROUP filegroup_name filegroup_name | |MODIFY FILEMODIFY FILE | | M O D I F Y F I L E G R O U PM O D I F Y F I L E G R O U P f i l e g r o u p _ n a m e f i l e g r o u p _ n a

29、m e filegroup_property filegroup_property 其中其中语法格式如下:语法格式如下: (NAME=logical_file_name(NAME=logical_file_name ,FILENAME=os_file_nameFILENAME=os_file_name ,SIZE=sizeSIZE=size ,MAXSIZE=max_ MAXSIZE=max_ size UNLIMITED size UNLIMITED ,FILEGROWTH= growth_increment)FILEGROWTH= growth_increment)第第5 5章章 SQL

30、Server2000SQL Server2000基本操作与应基本操作与应用用 【例【例5-45-4】在在exampledblexampledbl数据库中添加一个文件组数据库中添加一个文件组 exampledbl_groupexampledbl_group,命令行为:,命令行为: ALTER DATABASE exampledblALTER DATABASE exampledbl ADD FILEGROUP exampledbl_group ADD FILEGROUP exampledbl_group【例【例5-55-5】将一个新的数据文件将一个新的数据文件exampledbl_data2exa

31、mpledbl_data2添加到添加到 exampledblexampledbl数据库的数据库的exampledbl_groupexampledbl_group文件组中,命令行文件组中,命令行为为 ALTER DATABASE exampledb1ALTER DATABASE exampledb1 ADD FILE ( ADD FILE ( NAME= exampledbl_data2 NAME= exampledbl_data2, F I L E N A M E = c :F I L E N A M E = c : m s s q l 2 0 0 0m s s q l 2 0 0 0 exa

32、mpledbl_data2.mdf)exampledbl_data2.mdf) TO FILEGROUP exampledbl_group TO FILEGROUP exampledbl_group第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 【例【例5-65-6】修改数据文件修改数据文件exampledb2exampledb2的初始长度为的初始长度为2MB(2MB(前面默认前面默认设置为设置为IMB)IMB),命令行为:,命令行为: ALTER DATABASE exampledbdb2ALTER DATABASE exampledbd

33、b2 MODIFY FILE ( MODIFY FILE ( NAME=exampledb2 NAME=exampledb2, SIZE=2)SIZE=2)【例【例5-75-7】将一个新的日志文件将一个新的日志文件exampledbl_log2exampledbl_log2添加到添加到exampledblexampledbl数据库中,命令行为:数据库中,命令行为: ALTER DATABASE exampledblALTER DATABASE exampledbl ADD LOG FILE ( ADD LOG FILE ( NAME= exampledbl_log2 NAME= example

34、dbl_log2, FILENAME=c:FILENAME=c:mssql2000 exampledbl_log2mssql2000 exampledbl_log21df1df ) )第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 修改数据库名修改数据库名 系统存储过程系统存储过程sp_renamedb(sp_renamedb(在在mastermaster系统数据库中系统数据库中) )能够能够修改数据库的名称。修改数据库的名称。 在使用在使用sp_renamedbsp_renamedb修改数据库名之前,必须将数据库设修改数据库名之前,必

35、须将数据库设置成单用户模式。设置数据库为单用户模式,用户可以在图置成单用户模式。设置数据库为单用户模式,用户可以在图5-75-7所示的数据库属性对话框中选择【选项】,在弹出的对话所示的数据库属性对话框中选择【选项】,在弹出的对话框中选择【限制访问】,再选中该数据库的【单用户】选项。框中选择【限制访问】,再选中该数据库的【单用户】选项。用户也可以使用系统存储过程用户也可以使用系统存储过程sp_dboption(sp_dboption(在在mastermaster系统数系统数据库中据库中) )设置【单用户】选项。设置【单用户】选项。 下述命令行是将下述命令行是将exampledblexampled

36、bl数据库更名为数据库更名为exampledbexampledb的完的完整过程整过程, ,用用sp_helpdbsp_helpdb来查看。见图来查看。见图5-85-8。 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图图5-8 5-8 数据库更名过程数据库更名过程 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 5.1.4 5.1.4 删除数据库删除数据库v 使用企业管理器删除数据库使用企业管理器删除数据库 使用企业管理器删除数据库非常简单,但每次只能删除一使用企业管理器删除数据库非常

37、简单,但每次只能删除一个数据库。方法是启动企业管理器后,展开【数据库】文件个数据库。方法是启动企业管理器后,展开【数据库】文件夹,单击要删除的数据库后如夹,单击要删除的数据库后如exampledb2exampledb2,用鼠标右键单击,用鼠标右键单击要删除的数据库名,从弹出的快捷菜单中单击【删除】命令,要删除的数据库名,从弹出的快捷菜单中单击【删除】命令,系统弹出警告对话框见图系统弹出警告对话框见图5-95-9,要求用户确认是否删除该数据,要求用户确认是否删除该数据库,单击【是】按钮,就删除了该数据库。库,单击【是】按钮,就删除了该数据库。v 使用使用TransactSOLTransactSO

38、L命令删除数据库命令删除数据库 DROP DATABASE database_name DROP DATABASE database_name ,nn database_name database_name指定要删除的数据库,且一次可以删除多指定要删除的数据库,且一次可以删除多个数据库。但不要随便删除系统数据库,可能会造成个数据库。但不要随便删除系统数据库,可能会造成SQL SQL ServerServer系统崩溃。系统崩溃。 【例【例5-85-8】删除数据库删除数据库exampledb,exampledb2exampledb,exampledb2。 DROP DATABASE example

39、db,exampledb2 DROP DATABASE exampledb,exampledb2 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图5-9 删除数据库对话框 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 5.2 5.2 表和视图的基本操作表和视图的基本操作 5.2.1 5.2.1 基本知识基本知识 SQL ServerSQL Server的一个数据库中可以存储的一个数据库中可以存储2020亿个表,一个表亿个表,一个表最多允许定义最多允许定义10241024个列。表的行数

40、和总大小仅受可使用空间个列。表的行数和总大小仅受可使用空间的限制。表的每一列必须具有相同的数据类型。的限制。表的每一列必须具有相同的数据类型。v 命名表命名表 在一个数据库中,允许多个用户创建表。创建表的用户在一个数据库中,允许多个用户创建表。创建表的用户称为该表的所有者。因此,表的名称应该体现数据库、用户称为该表的所有者。因此,表的名称应该体现数据库、用户和表名三方面的信息。格式如下:和表名三方面的信息。格式如下: database_name.owner.table_namedatabase_name.owner.table_namev 数据类型数据类型 确定表的每列的数据类型,是设计表的重

41、要步骤。列的确定表的每列的数据类型,是设计表的重要步骤。列的数据类型就是定义该列所能存放的数据的值。数据类型就是定义该列所能存放的数据的值。 SQL Server 2000SQL Server 2000的数据类型很丰富,这里仅给出的数据类型很丰富,这里仅给出SQL SQL Server Server 常用的数据类型。见常用的数据类型。见表表5-45-4。 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 设计表设计表 在为一个数据库设计表之前,应该完成了需求分析,确定在为一个数据库设计表之前,应该完成了需求分析,确定了概念模型,将概念模型

42、转换为关系模型。关系模型中的每了概念模型,将概念模型转换为关系模型。关系模型中的每一个关系对应数据库中的一个表。一个关系对应数据库中的一个表。 由第由第1 1章和第章和第2 2章对图书管理系统的分析与设计知,若该章对图书管理系统的分析与设计知,若该系统的数据库为已创建的系统的数据库为已创建的MyDbMyDb数据库,则需要为该数据库创数据库,则需要为该数据库创建读者信息表建读者信息表(Readers)(Readers)、图书信息表、图书信息表(Books)(Books)、借阅信息表、借阅信息表(Borrowinf)(Borrowinf)、读者类型表(、读者类型表(typetype)。)。 创建表

43、的过程创建表的过程, ,就是将一种具体的关系就是将一种具体的关系DBMSDBMS(例如(例如SQL SQL Server 2000Server 2000)作为工具,实现关系模型(逻辑模型)到物理)作为工具,实现关系模型(逻辑模型)到物理模型的转换,即关系模型的物理实现。因此,以下称关系为模型的转换,即关系模型的物理实现。因此,以下称关系为表,称元组为行(或记录),称属性为列(或字段)表,称元组为行(或记录),称属性为列(或字段)。 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 设计表时需要确定如下内容:设计表时需要确定如下内容:1)1)表

44、中需要的列以及每一列的类型表中需要的列以及每一列的类型( (必要时还要有长度必要时还要有长度) )。2)2)列是否可以为空。列是否可以为空。3)3)是否需要在列上使用约束、默认值和规则。是否需要在列上使用约束、默认值和规则。4)4)需要使用什么样的索引。需要使用什么样的索引。5)5)哪些列作为主键。哪些列作为主键。 表的设计要体现完整性约束的实现。实体完整性约束的体表的设计要体现完整性约束的实现。实体完整性约束的体现是主键约束,即主键的各列不能为空,且主键作为行的惟现是主键约束,即主键的各列不能为空,且主键作为行的惟一标识;外键约束是参照完整性约束的体现;默认值和规则一标识;外键约束是参照完整

45、性约束的体现;默认值和规则等是用户定义的完整性约束的体现。等是用户定义的完整性约束的体现。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 下面对下面对SQL Server 2000 SQL Server 2000 中实现用户定义完整性的方法予以中实现用户定义完整性的方法予以介绍介绍: :。 检查检查 (CHECK)(CHECK) 检查约束使用逻辑表达式来限制列上可以接受的数据。检查约束使用逻辑表达式来限制列上可以接受的数据。比如,可以指定比如,可以指定BooksBooks表中的定价必须大于零,这样当插表中的定价必须大于零,这样当插入表中的图

46、书记录的定价为入表中的图书记录的定价为0 0或负数时,插入操作不能成或负数时,插入操作不能成功执行,从而保证了表中数据的正确性。功执行,从而保证了表中数据的正确性。 可以在一列上使用多个检查约束,在表上建立的一个可以在一列上使用多个检查约束,在表上建立的一个检查约束也可以在多个列上使用。检查约束也可以在多个列上使用。 默认值默认值(DEFAULT)(DEFAULT) 数据库中每一行中的每一列都应该有一个值,当然这数据库中每一行中的每一列都应该有一个值,当然这个值也可以是空值。但有时向一个表中添加数据个值也可以是空值。但有时向一个表中添加数据( (添加一添加一行记录行记录) )时,某列的值不能确

47、定,或该列的值大量重复的时,某列的值不能确定,或该列的值大量重复的取同一个值,这时可以将该列定义为允许接受空值或给取同一个值,这时可以将该列定义为允许接受空值或给该列定义一个默认值。该列定义一个默认值。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 空值空值(NULL)(NULL) 空值空值(NULL)(NULL)意味着数据的值不确定。比如,意味着数据的值不确定。比如,BooksBooks表中某一行的表中某一行的“出版社出版社”列为空值,并不表列为空值,并不表示该书没有出版社,而是表示目前还不知道它的示该书没有出版社,而是表示目前还不知道它

48、的出版社。出版社。 又如又如,表,表BooksBooks中的书名列设置为不允许取空中的书名列设置为不允许取空值,则输入数据时,必须给该列指定非空值,否值,则输入数据时,必须给该列指定非空值,否则输入失败。则输入失败。 使用以上这些约束实施的完整性被称为声明型使用以上这些约束实施的完整性被称为声明型数据完整性,它们是作为表和列定义的一部分在数据完整性,它们是作为表和列定义的一部分在语法中实现的,可以在语法中实现的,可以在CREATE TABLECREATE TABLE语句或语句或ALTER ALTER TABLETABLE语句中定义或修改。语句中定义或修改。 第第5 5章章 SQL Server

49、2000SQL Server2000基本操作与应基本操作与应用用 5.2.2 5.2.2 创建表创建表v 使用企业管理器创建表使用企业管理器创建表 利用企业管理器提供的图形界面来创建表,步骤如下:利用企业管理器提供的图形界面来创建表,步骤如下: (1)(1)在树形目录中展开【服务器组】在树形目录中展开【服务器组】【服务器】【服务器】【数据【数据库】库】【MyDbMyDb】。】。 (2)(2)选择【表】,单击鼠标右键,在弹出的快捷菜单中选择选择【表】,单击鼠标右键,在弹出的快捷菜单中选择【新建表【新建表.】命令,打开设计表对话框。】命令,打开设计表对话框。 (3)(3)如图如图5-105-10所

50、示,设计表对话框的上半部分有一个表格,所示,设计表对话框的上半部分有一个表格,在这个表格中输入列的列名、数据类型、长度(有的数据在这个表格中输入列的列名、数据类型、长度(有的数据类型不需要指定长度,如类型不需要指定长度,如datetimedatetime类型的长度为固定值类型的长度为固定值8 8)、是否可以为空,在允许空域中单击鼠标左键,可以)、是否可以为空,在允许空域中单击鼠标左键,可以切换是否允许为空值的状态,打勾说明允许为空值,空白切换是否允许为空值的状态,打勾说明允许为空值,空白说明不允许为空值,默认状态是允许为空值的。说明不允许为空值,默认状态是允许为空值的。 (4) (4) 图图5

51、-105-10所示的设计表对话框的下半部分是特定列的详所示的设计表对话框的下半部分是特定列的详细属性,包括是否是标识列、是否使用默认值等。细属性,包括是否是标识列、是否使用默认值等。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 (5) (5)用图用图5-105-10所示的方法逐个定义好表中的列。所示的方法逐个定义好表中的列。 (6)(6)设置主键约束:选中要作为主键的列,单击工具条上的设置主键约束:选中要作为主键的列,单击工具条上的【设置主键】按钮,主键列的前上方将显示钥匙标记,如图【设置主键】按钮,主键列的前上方将显示钥匙标记,如图5-

52、115-11所示。所示。 (7)(7)鼠标右键单击表中的任意一行鼠标右键单击表中的任意一行( (即任意一个列的定义即任意一个列的定义) ),在,在弹出的快捷菜单中选择【属性】命令,可以打开如图弹出的快捷菜单中选择【属性】命令,可以打开如图5-125-12所所示的表属性对话框,在该对话框中选择表选项卡,可以指定示的表属性对话框,在该对话框中选择表选项卡,可以指定表的属性,比如表名、所有者、表的标识列等。图表的属性,比如表名、所有者、表的标识列等。图5-125-12中将中将表的名称设置为表的名称设置为ReadersReaders, 所有者设置为所有者设置为dbodbo。 (8)(8)在属性对话框中

53、选择【关系】选项卡,可以设置列上的外在属性对话框中选择【关系】选项卡,可以设置列上的外键约束。选择【索引键约束。选择【索引/ /键】选项卡,可以设置列上的索引,以键】选项卡,可以设置列上的索引,以及主键约束和惟一性约束。选择【及主键约束和惟一性约束。选择【checkcheck约束】选项卡,可以约束】选项卡,可以设置列上的检查约束。设置列上的检查约束。 (9)(9)定义好所有列后,单击图定义好所有列后,单击图5-115-11工具栏上的工具栏上的 按钮,表按钮,表就创建完成了。就创建完成了。 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图图

54、5-10 5-10 创建表对话框创建表对话框 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图图5-11 5-11 将编号设为主键将编号设为主键 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 图图5-12 5-12 指定表的属性指定表的属性 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 创建惟一性约束的步骤如下:创建惟一性约束的步骤如下: (1)(1)在如图在如图5-125-12所示的属性对话框的【索引所示的属性对话框的【索引/

55、 /键】选项卡中,键】选项卡中,单击【新建】按钮。单击【新建】按钮。 (2)(2)在列名列表中选择要定义惟一性约束。在列名列表中选择要定义惟一性约束。 (3)(3)选中【创建选中【创建UNIQUEUNIQUE】复选框,表示创建惟一性约束。】复选框,表示创建惟一性约束。 (4)(4)在索引名框中输入约束名,或接受默认的名字。在索引名框中输入约束名,或接受默认的名字。 创建外键约束的步骤如下:创建外键约束的步骤如下: (1)(1)在图在图5-125-12所示的属性对话框的【关系】选项卡中,单击所示的属性对话框的【关系】选项卡中,单击【新建】按钮。【新建】按钮。 (2)(2)在【外键表】下拉列表框中

56、选择要定义外健约束的表,在【外键表】下拉列表框中选择要定义外健约束的表,并在其下的列表中选择表中要定义外键约束的列。并在其下的列表中选择表中要定义外键约束的列。 (3)(3)在【主键表】下拉列表框中选择外键引用的表,并在其在【主键表】下拉列表框中选择外键引用的表,并在其下的列表中选择表中外键引用的列。下的列表中选择表中外键引用的列。 (4)(4)在【关系名】框中输入约束的名称,或接受默认的名称。在【关系名】框中输入约束的名称,或接受默认的名称。 (5)(5)选择【级联更新相关的字段】复选框指定使用级联修改。选择【级联更新相关的字段】复选框指定使用级联修改。 (6)(6)选择【级联删除相关的记录

57、】复选框指定使用级联删除。选择【级联删除相关的记录】复选框指定使用级联删除。 第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 创建检查约束的步骤如下创建检查约束的步骤如下: : (1) (1)在如图在如图5-125-12所示的属性对话框的【所示的属性对话框的【checkcheck约束】约束】选项卡中,单击【新建】按钮。选项卡中,单击【新建】按钮。 (2)(2)在【约束表达式】框中输入检查表达式。在【约束表达式】框中输入检查表达式。 (3)(3)在【约束名】框中输入约束的名称,或接受默在【约束名】框中输入约束的名称,或接受默认的名称。认的名称

58、。第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 v 使用使用Transact-SQLTransact-SQL命令创建表命令创建表 在在Transact-SQLTransact-SQL中,使用中,使用CREATE TABLECREATE TABLE命令创建表。语法命令创建表。语法格式如下:格式如下: CREATE TABLECREATE TABLE database_name.owner. |owner. Table_name database_name.owner. |owner. Table_name ( - ( -列定义列定义 |co

59、lumn_name AS computed_column_expression |column_name AS computed_column_expression - -计算列定义计算列定义 | ,n ,n ) ) ON filegroup|DEFAULT ON filegroup|DEFAULT TEXTIMAGE_ON filegroup|DEFAULT TEXTIMAGE_ON filegroup|DEFAULT第第5 5章章 SQL Server2000SQL Server2000基本操作与应基本操作与应用用 【例【例5-95-9】 创建图书信息表创建图书信息表BooksBooks。

60、 CREATE TABLE booksCREATE TABLE books ( ( 编号编号 char(15) PRIMARY KEY NOT NULL char(15) PRIMARY KEY NOT NULL CONTRAINT PK_Books PRIMARY KEY, CONTRAINT PK_Books PRIMARY KEY, 书名书名 varchar(42) NULL ,varchar(42) NULL , 作者作者 varchar(8) NULL ,varchar(8) NULL , 出版社出版社 varchar(28)NULL ,varchar(28)NULL , 定价定价

温馨提示

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

评论

0/150

提交评论