第5章SQLServer2000基本操作与应用5.1SQLServer2000数据库基本操作5.2表和视图的基本操作5.3案例3:创建活期储蓄管理系统数据库--数据库的物理设计与实现第5章SQLServer2000基本操作与应用SQLServer2000中一台服务器上可创建多个数据库。SQLServer2000中的数据库是由数据表的集合组成的,每个数据表中包含数据以及其他数据库对象,这些对象包括视图、索引、存储过程和触发器等。数据库系统使用一组操作系统文件来映射数据库管理系统中保存的数据库,数据库中的所有数据和对象都存储在其映射的操作系统文件中。这些操作系统文件可以是数据文件或日志文件。第5章SQLServer2000基本操作与应用5.1SQLServer2000数据库基本操作5.1.1SQLServer数据库概述数据库文件和文件组SQLServer的数据库由数据文件和日志文件组成。数据文件是用来存放数据库中的数据的。数据文件又包括主数据文件和次数据文件。每个数据库都包括一个主数据文件和一个或多个日志文件,还可以有次数据文件。主数据文件(.mdf):存储数据信息和数据库的启动信息。一个数据库有且仅有一个主数据文件。次数据文件(.ndf):存储主数据文件存储不下的数据信息。一个数据库可以没有次数据文件,也可有多个次数据文件。日志文件(.ldf):存储数据库的所有事务日志信息,包含用于恢复数据库的日志信息,一个数据库至少有一个日志文件,也可以有多个日志文件。第5章SQLServer2000基本操作与应用数据库文件组为了方便管理、提高系统性能,将多个数据库文件组织成一组,即称为数据库文件组。数据库文件组控制各个文件的存放位置,常常将每个文件建立在不同的硬盘驱动器上。这样可以减轻单个硬盘驱动器的存储负载,提高数据库的存储效率,从而实现提高系统性能的目的。在使用数据库文件和文件组时,应该注意以下几点:1)每个文件或文件组只能用于一个数据库。2)每个文件只能属于一个文件组。3)日志文件是独立的。数据库的数据和日志信息不能放在同一个文件或文件组中,数据文件和日志文件总是分开的。第5章SQLServer2000基本操作与应用系统数据库和示例数据库SQLServer支持系统数据库、示例数据库和用户数据库。系统和示例数据库是在安装SQLServer后自动创建的,用户数据库是由系统管理员或授权的用户创建的数据库。系统数据库SQLServer的系统数据库包括以下几个数据库:•master数据库是SQLServer的总控数据库,保存了SQLServer系统的全部系统信息、所有登录信息和系统配置,保存了所有建立的其他数据库及其有关信息。用户应随时备份该数据库,以保证系统的正常运行。master数据库中包含大量的系统表、视图和存储过程,用于保存Server级的系统信息,并实现系统管理。其中特有的、常用的系统表和存储过程见附录B和附录C。第5章SQLServer2000基本操作与应用•tempdb数据库tempdb是一个临时数据库,是全局资源,它保存全部的临时表和临时存储过程。每次启动SQLServer时,tempdb数据库都被重建,因此,该数据库在系统启动时总是干净的。使用tempdb不需要特殊的权限。不管SQLServer中安装了多少数据库,tempdb只有一个。tempdb是系统中负担最重的数据库,几乎所有的查询都可能使用它。•model数据库是一个模板数据库。每当创建一个新数据库时,SQLServer就复制model数据库的内容到新建数据库中,因此,所有新建数据库的内容都和这个数据库完全一样。如果用户想使每个新建的数据库一开始就具有某些对象,可以将这些对象放到model数据库中,这样所有新建的数据库都将继承这些内容。model数据库中有18个系统表(master数据库中也有这些系统表)、视图以及存储过程,用于保存数据库级的系统信息。第5章SQLServer2000基本操作与应用•msdb数据库msdb数据库是一个和自动化有关的数据库。SQLServer代理(SQLServerAgent)使用msdb数据库来安排报警、作业,并记录操作员。如完成一些调度性的工作,备份和复制等。示例数据库SQLServer的示例数据库主要包括以下两个数据库。•pubs数据库一个图书出版方面的示例数据库,虽然用户可以随时修改、甚至删除该数据库,但建议用户保留该数据库,以便更好地学习SQLServer。•Northwind数据库一个涉及虚构的Northwind贸易公司在世界范围内进出口食品的销售情况示例数据库。第5章SQLServer2000基本操作与应用5.1.2创建数据库创建数据库:就是为数据库确定名称、大小、存放位置、文件名和所在文件组的过程。文件名称:数据文件和日志文件的名称(逻辑名)。文件名必须符合命名规则。在同一台SQLServer服务器上,各数据库的名称是惟一的。数据库的创建信息存放在master数据库的sysdatabases系统表中。创建数据库后,系统自动把model数据库中的信息复制到新建的数据库中。创建数据库之前,首先要考虑数据库的拥有者、数据库的初始容量、最大容量、增长量以及数据库文件的存放路径等因素,文件大小一般以MB为单位。SQLServer2000中创建数据库的方法:①使用企业管理器创建数据库②使用Transact-SQL语句创建数据库③使用向导创建数据库第5章SQLServer2000基本操作与应用使用企业管理器创建数据库例:以默认形式创建mydb数据库,步骤如下:(1)启动企业管理器,连接服务器,展开其树形目录,用鼠标右键单击【数据库】文件夹,在弹出的快捷菜单中,单击【新建数据库…】打开图5-2所的对话框。(2)在【数据库属性】对话框的【名称】文本框内输入数据库名(逻辑名)。例如MyDB,这个对话框自动以该数据库名命名,系统默认用该数据库名与“_data”串的连接命名数据文件(见图5-3),该数据库名与“_log”串的连接命名日志文件(见图5-4)。这两个不同选项卡界面内的设置,分别为数据主文件和日志文件的名称、存储位置、初始大小、所属文件组(默认为主文件组PRIMARY)、文件是否自动增长、增长的方式和文件大小的限制等。(3)单击【确定】按钮,数据库就创建好了,在默认位置、采用默认设置创建了一个名为MyDB的数据库。第5章SQLServer2000基本操作与应用图5-2数据库属性对话框第5章SQLServer2000基本操作与应用图5-3数据文件选项卡界面第5章SQLServer2000基本操作与应用图5-4事务日志文件选项卡界面第5章SQLServer2000基本操作与应用使用Transact-SQL命令创建数据库CREATEDATABASEdatabase_name[ON[PRIMARY][filespec[,…n]][,FILEGROUPfilegroup_namefilespec[,...n]]][LOGON{filespec[,...n]}][FORLOAD|FORATTACH]其中,filespec(文件格式)语法格式如下:([NAME=logical_file_name,]FILENAME=‘os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])第5章SQLServer2000基本操作与应用图5-5创建数据库exampledbl【例5-1】省略CREATEDATABASE命令中各选项创建一个数据库exampledbl。命令和执行结果见图5-5。第5章SQLServer2000基本操作与应用【例5-2】使用ON和LOGON选项创建一个数据库exampledb2。命令和执行结果见图5-6。图5-6创建数据库exampledb2第5章SQLServer2000基本操作与应用用向导创建数据库使用向导创建数据库是一种非常简单的方法。启动企业管理器,在工具菜单中选择向导即可按向导进行相应的操作。5.1.3修改数据库创建数据库后,可能会由于某种原因需要对其进行修改。例如增加和删除数据库的文件和文件组、修改文件和文件组的属性。但只有sysadmin和dbcreator服务器角色成员和DBO才能修改数据库。使用企业管理器修改数据库有两种方法来修改:①使用企业管理器修改数据库②使用T-SQL命令修改数据库第5章SQLServer2000基本操作与应用11使用企业管理器修改数据库步骤如下:(1)启动企业管理器,连接服务器,展开其树形目录,展开【数据库】文件夹,用鼠标右键单击要修改的数据库名,例如exampledb1,在弹出的快捷菜单中,单击【属性】命令,则弹出如图5-7所示的对话框。(2)在exampledb1属性对话框【数据文件】选项卡画面中,可以修改数据库的主文件组和用户定义文件组中各数据文件的信息,包括逻辑名、物理文件名、初始长度、所属文件组及自动增长的限制等。(3)单击【事务日志】选项卡,在这个选项卡画面中,用户可以修改数据库的日志文件的信息,包括逻辑名、物理文件名、初始长度及自动增长的限制等。(4)单击【文件组】、【选项】、【权限】等选项卡,可以修改数据库的文件组、数据库选项、数据库访问权限等内容。第5章SQLServer2000基本操作与应用图5-7数据库属性对话框第5章SQLServer2000基本操作与应用使用Transact—SQL命令修改数据库ALTERDATABASEdatabase{ADDFILEfilespec[,...n)[TOFILEGROUPfilegroup_name]ADDLOGFILEfilespec[,...n][REMOVEFILElogical_file_name|ADDFILEGROUPfilegroup_name|REMOVEFILEGROUPfilegroup_name|MODIFYFILEfilespec|MODIFYFILEGROUPfilegroup_namefilegroup_property}其中filespec语法格式如下:(NAME=logical_file_name[,FILENAME=’os_file_name’][,SIZE=size][,MAXSIZE={max_sizeUNLIMITED}][,FILEGROWTH=growth_increment])第5章SQLServer2000基本操作与应用【例5-4】在exampledbl数据库中添加一个文件组exampledbl_group,命令行为:ALTERDATABASEexampledblADDFILEGROUPexampledbl_group【例5-5】将一个新的数据文件exampledbl_data2添加到exampledbl数据库的exampledbl_group文件组中,命令行为ALTERDATABASEexampledb1ADDFILE(NAME=exampledbl_data2,FILENAME=’c:\mssql2000\exampledbl_data2.mdf’)TOFILEGROUPexampledbl_group第5章SQLServer2000基本操作与应用【例5-6】修改数据文件exampledb2的初始长度为2MB(前面默认设置为IMB),命令行为:ALTERDATABASEexampledbdb2MODIFYFILE(NAME=exampledb2,SIZE=2)【例5-7】将一个新的日志文件exampledbl_log2添加到exampledbl数据库中,命令行为:ALTERDATABASEexampledblADDLOGFILE(NAME=exampledbl_log2,FILENAME=’c:\mssql2000\exampledbl_log2.1df’)第5章SQLServer2000基本