第7章 sql server2000数据库管理系统_第1页
第7章 sql server2000数据库管理系统_第2页
第7章 sql server2000数据库管理系统_第3页
第7章 sql server2000数据库管理系统_第4页
第7章 sql server2000数据库管理系统_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

1、2022/10/111第7章 SQL Server2000数据库管理系统本章内容SQL Server2000管理工具7.2数据库的创建与管理7.37.4数据查询7.51.1 SQL Server2000概述7.1 存储过储和触发器7.6数据表的创建与管理 数据库的备份和恢复7.7 SQL Server程序设计7.8 SQL Server是由Microsoft公司开发和销售的一个功能强大的关系型数据库管理系统,能够处理大量的数据和管理众多的并发用户,保证数据的完整性,并提供许多高级管理和数据分布能力。SQL Server与Windows系列的操作系统完美兼容,且易于安装、部署和使用,可运行在台式

2、机、笔记本电脑上,也可运行在多处理器计算机上,提供了数据仓库功能;SQL Server支持远程管理,提供了丰富的数据库编程能力,还提供了很多外围工具来帮助用户对数据库进行管理,用户甚至无需直接执行任何SQL 语句就可以完成数据库的创建、数据表的创建、数据的备份/恢复等工作。 本章主要介绍SQL Server 2000数据库管理系统的主要功能及各种管理工具的使用方法。SQL Server 2000是Microsoft公司于2000年推出的数据库管理系统,该版本继承了SQL Server 7.0版本的优点,同时又增加了许多更先进的功能,具有使用方便、可伸缩性好以及与相关软件集成程度高等优点,可跨越

3、Microsoft Windows 2000、Microsoft Windows XP等多种平台使用。SQL Server 2000为用户的Internet应用提供了完善的数据管理和数据分析解决方案,极大地方便了用户电子商务和数据仓库应用的开发。SQL Server 2000还提供了对XML和HTTP的全方位的支持。根据不同用户群的使用需求,Microsoft软公司发行了4种SQL Server 2000版本,分别为企业版、标准版、个人版以及开发者版。企业版(Enterprise Edition)支持SQL Server 2000的所有特性,可作为大型Web站点、企业OLTP(联机事务处理)以

4、及数据仓库系统等的产品数据库服务器;标准版(Standard Edition)用于小型的工作组或部门;个人版(Personal Edition)用于单机系统或客户机;开发者版(Developer Edition)用于程序员开发应用程序,这些程序需要SQL Server 2000作为数据存储设备。7.1 SQL Server 2000概述此外,SQL Server 2000还有桌面引擎(Desktop Engine)和Windows CE版,用户可以根据实际情况选择所要安装的SQL Server 2000版本。SQL Server 2000不同的版本,对操作系统的要求不完全相同。企业版必须运行于

5、安装Windows 2000 Advanced Server以及更高版本的操作系统下;标准版必须运行于安装Windows 2000 Server以及更高版本的操作系统下;个人版可在多种操作系统下运行,如可运行于Windows XP或Windows 2000的服务器版或工作站版的操作系统下。7.1 SQL Server 2000概述(续)7.2 SQL Server 2000管理工具简介 SQL Server 2000提供了一整套的管理工具和实用程序,使用这些工具和程序,可以设置和管理SQL Server,进行数据库管理和备份,并保证数据的安全性和一致性。安装SQL Server 2000后,可

6、以从开始菜单中找到服务管理器、企业管理器、查询分析器和数据导入/导出工具等程序项。2022/10/1177.2.1 服务管理器SQL Server服务管理器(SQL Server Service Manager)是在服务器端实际工作时最有用的实用程序,其界面如图7-1所示,用于启动、暂停、继续和停止SQL Server、SQL Server Agent以及微软分布式事务协调器(Microsoft Distributed Transaction Coordinator,MSDTC)服务。用户对数据库执行任何操作之前必须启动SQLServer,而使用SQL Server Service Manag

7、er是启动SQL Server数据库服务器最简单的方法,选择“开始”“程序”Microsoft SQL Server“服务管理器”命令即可启动服务管理器。图7-1 “SQL Server服务管理器”窗口7.2 SQL Server 2000管理工具简介(续1)7.2.2 企业管理器7.2 SQL Server 2000管理工具简介(续2)企业管理器(Enterprise Manager)是SQL Server中最重要和最常用的一个管理工具,不仅能够配置系统环境和管理SQL Server,而且由于它能够以层叠列表的形式来显示所有的SQL Server对象,因而可以完成所有SQL Server对象

8、的建立与管理。利用企业管理器可以完成的操作有:管理SQL Server服务器;创建与管理数据库;创建与管理表、视图、存储过程、触发程序、角色、规则、默认值等数据库对象,以及用户定义的数据类型;备份数据库和事务日志、恢复数据库;复制数据库;设置任务调度;设置警报;提供跨服务器的拖放控制操作;管理用户账户;建立Transact-SQL命令语句,以及管理和控制SQL Mail。可以通过选择“开始”“程序”Microsoft SQL Server“企业管理器”命令,启动企业管理器,如图7-2所示。图7-2 企业管理器界面选择“开始”“程序”Microsoft SQL Server“查询分析器”命令可启

9、动查询分析器(Query Analyzer),弹出如图7-3所示的“连接到SQL Server”对话框,在该对话框中设置指定连接的SQL Server服务器和正确的身份验证方式,单击“确定”按钮,即可打开“SQL Server查询分析器”窗口,如图7-4所示。 图7-3 “连接到SQL Server”对话框 7-4 “SQL查询分析器”窗口7.2.3 查询分析器7.2 SQL Server 2000管理工具简介(续3)查询分析器是一个图形化的管理工具,用于输入和执行Transact-SQL语句,并能迅速查看这些语句的结果,以分析和处理数据库中的数据。这是一个非常实用的工具,对掌握SQL语言,深

10、入理解SQL Server的管理工作有很大的帮助。查询分析器窗口由以下几部分组成:窗口上部是菜单栏和工具栏,可以根据需要在其中选择执行相关命令;窗口左面是对象浏览器窗口;窗口右面是查询窗口;查询窗口下面是查询执行结果的显示窗口。在查询窗口中输入SQL语句后,单击工具栏中的“执行查询”按钮 或按F5键,即可立即执行输入的SQL语句。语句的执行结果将显示在结果窗口中。很多时候,需要在SQL Server数据库与其他类型的数据库或电子表格之间进行数据交换,因此SQL Server系统必须能够实现SQL Server数据库与其他类型的数据库或电子表格之间的数据交换。这样,用户可以将自己的SQL Ser

11、ver数据库中的数据转储到其他类型的数据库系统或电子表格中;同样,也可以把其他类型数据库或电子表格中的数据转储到SQL Server数据中来。通过这样的数据转换操作,可以实现数据库资源的共享,减少因为数据库类型的变化而造成的大量数据重复输入等不必要的操作。SQL Server数据库可以实现与Access、Oracle以及Excel类型的数据的传输操作。 7.2 SQL Server2000管理工具简介(续4)7.2.4 数据导入/导出工具 SQL Server系统为了满足用户对不同数据库类型之间的数据传输的需求,提供了数据传输服务(Data Transformation Services,DT

12、S)导入、导出向导,导入数据是从外部数据源中检索数据,并将数据插入到SQL Server表的过程;导出数据是将SQL Server实例中的数据提取为用户指定格式的数据的过程。DTS导入和导出向导包含了所有的DTS工具,提供了在OLE DB数据源之间复制数据的最简捷的方法。启动DTS导入/导出向导的方法主要有两种:方法一:打开企业管理器,选中指定的服务器,然后选择“工具”“向导”命令,打开“选择向导”对话框。在此对话框中选择“数据转换服务”选项下的DTS导入向导或DTS导出向导,即可启动相关的向导。方法二:打开企业管理器,右击服务器,在弹出的快捷菜单中选择“所有任务”菜单项下的导入数据或导出数据

13、选项,也可以启动相关的向导。7.3 数据库的创建与管理数据库的存储结构分为逻辑存储结构和物理存储结构两种。数据库的逻辑存储结构指数据库由哪些性质的信息组成。SQL Server的数据不只是存储数据,还存储所有与数据处理操作相关的信息。SQL Server的数据库由表、视图、索引等各种不同的数据库对象组成,分别用来存储特定信息并支持特定功能,构成数据库的逻辑存储结构。数据库的物理存储结构则是讨论数据库文件如何在磁盘上存储。数据库在磁盘上是以文件为单位存储的,在SQL Server 2000中,数据库由数据文件和日志文件组成,一个数据库至少应包含一个主数据文件和一个日志文件。每个文件都有操作系统使

14、用的物理文件名和数据库管理系统使用的逻辑文件名。数据文件是SQL Server用于存储用户输入数据库的所有信息和在数据库中建立的所有对象的文件。这些文件可以按所设置的格式,根据需要变大或缩小。日志文件是SQL Server用来存储数据库事务日志的文件。事务日志用来维护数据库的一致性并保证对数据库的所有修改要么被完整地执行,要么被取消。如果服务器在意外事件中被破坏,SQL Server将检查事务日志来保证用户所有的数据修改都是完整的。7.3 数据库的创建与管理 (续1)7.3.1 SQL Server数据库的文件组成 SQL Server数据库由主数据文件、辅助数据文件和日志文件组成。(1)主数

15、据文件。 主数据文件用于存储数据库数据,并包含数据库的启动信息,是数据库和其他数据库文件的起点,并以此起点为基础指向数据库中的其余文件。每个数据库有且只有一个主数据文件。主数据文件一般使用.mdf作为扩展名。(2)辅助数据文件(次数据文件)。 辅助数据文件用于存储不能置于主数据文件中的所有数据。一个数据库可以没有辅助数据文件,也可以有多个辅助数据文件。如果数据太多而主数据文件存放不下,就需要辅助数据文件。辅助数据文件可以与主数据文件位于同一磁盘上,也可以位于不同磁盘上。辅助数据文件的扩展名是.ndf。(3)日志文件。 日志文件用于存储对数据库中数据的操作记录。每个数据库都必须至少有一个日志文件

16、。一旦数据库遭到破坏,则可以利用日志文件来恢复数据库中的数据。日志文件的扩展名是.ldf。1SQL Server数据库的组成 为了更好地实现数据库文件的组织,SQL Server 2000开始引入了文件组的概念。文件组允许多个数据库文件组成一个组,并对它们进行整体管理。比如,可以将3个数据文件(data1.mdf、data2.mdf和data3.mdf)分别创建在3个盘上,这3个文件组成文件组fgroup1,创建表时,就可以指定一个表创建在文件组fgroup1上。这样该表的数据就可以分布在3个盘上,在对该表执行查询时,可以并行操作,大大提高了查询效率。与数据文件一样,文件组也分为主文件组(Pr

17、imary File Group)和次文件组(Secondary File Group)。一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。主文件组包含主数据库文件和未指定组的其他文件。在次文件组中,可以指定一个默认文件组,那么在创建数据库对象时,如果没有指定将其放在哪一个文件组中,就会将其放在默认文件组中。如果没有指定默认文件组,则主文件组为默认文件组。SQL Server 2000数据库的文件和文件组必须遵循以下规则:(1)一个文件和文件组只能被一个数据库使用。(2)一个文件只能属于一个文件组。(3)数据文件和日志文件不能同时属于同一文件或文件组。(4)日志文件不能属于文件

18、组。2文件组(File Group)在定义数据库的数据文件和日志文件时,可以指定如下属性:(1)文件名及其位置。每个数据库的数据文件和日志文件都有一个逻辑名称以及文件的物理存放位置。一般情况下,为了获得更好的性能,建议将文件分散存储在多个磁盘上。(2)文件大小。可以指定每个数据文件和日志文件的大小,一般以MB为单位。(3)增长方式。如果需要,可以指定文件是否自动增长,该选项的默认配置为自动增长,即当数据库空间用完后,系统自动扩大数据库的空间。这样可以防止由于数据库空间用完所造成的不能插入新数据或不能进行数据操作的错误。(4)最大大小。指定文件的最大大小,默认是大小无限制。3数据库文件的属性4S

19、QL Server 2000的默认数据库当SQL Server 2000成功安装后,系统会自动创建Master、Model、Msdb和Tempdb 4个系统数据库以及Pubs和Northwind 2个示例数据库。SQL Server 2000的4个系统数据库记录了所有的登录账号、系统配置以及调度报警和任务,并记录操作符等。系统数据库是运行SQL Server 的基础,所以在设计、管理SQL Server 数据库时,一定要注意这4个系统数据库的存在,不能使自己的数据库与这4个系统数据库相冲突。SQL Server系统成功和稳定运行的保证是其系统数据库中的信息的完整性,所以任何用户都不允许直接修改

20、SQL Server 系统数据库中的任何信息,并且注意对SQL Server 系统数据库进行备份和安全保障等工作。(1)Master数据库。Master数据库记录了SQL Server系统的所有系统信息,主要包括所有的登录信息、系统设置信息、SQL Server初始化信息、系统中其他系统数据库和用户数据库的相关信息,如主文件的存放位置等。该数据库一旦受到损坏(例如无意中被用户修改或删除、存储介质出现问题等),有可能导致SQL Server 无法运行,所以用户一般不要修改它,并应经常进行备份。(2)Model数据库。Model数据库是建立新数据库的模板,包含了将复制到每个新建数据库中的系统表。执

21、行创建数据库的语句CREATE DATABASE时,服务器总是通过复制Model数据库建立新数据库的前面部分,新数据库的后面部分被初始化成空白页面,用来供用户日后存放数据。通常Model数据库中包含数据库的最小容量、数据库选项设置、常用的数据库对象(如用户自定义的数据类型、函数规则和默认值)等。(3)Msdb数据库。SQL Server企业管理器和SQL Server Agent使用Msdb数据库来存储计划信息以及与备份和还原相关的信息,尤其是SQL Server Agent需要使用Msdb数据库来执行安排工作、警报与记录操作等操作。(4)Tempdb数据库。Tempdb数据库是系统的临时存储

22、空间,主要存储系统运行中的所有临时表格、数据和存储过程。Tempdb数据库是一个全局资源,没有专门的权限限制,允许所有可以连接上SQL Server服务器的用户使用。在Tempdb数据库中存放的所有数据信息都是临时的,每当连接断开时,这些信息都将自动丢弃。所以每次启动SQL Server时,Tempdb数据库都需要临时创建,此时的Tempdb数据库为一个空的数据库。当临时存储的数据量急剧增加时,Tempdb数据库可以自动增大。(5)Pubs和Northwind示例数据库。这是两个供用户学习的示例数据库,可以作为SQL Server的学习工具。Pubs数据库存储了一个虚构的图书出版公司的基本情况

23、,其中包含了大量的样本表和样本数据,如出版物(titles)、出版者(publishers)、书店(stores)、作者(authors)、员工(employee)等表格,还有一些记录各表之间状态关系的表,如titleauthor表记录哪位作者写了哪些书等。Northwind数据库是从SQL Server 2000开始建立的示例数据库。该数据库是模仿一个贸易公司建立的数据库模型(该公司名叫Northwind,专门进出口世界各地风味食品)。Northwind数据库包含了与公司经营有关的大多数数据,如运输商(Shippers)、供货商(Suppliers)、雇员(Employees)、顾客(Cus

24、tomers)等数据表,以及一些记录各表之间状态关系的表等。SQL Server经常访问系统目录,检索系统正常运行所需的必要信息。在SQL Server和其他关系数据库系统中,所有的系统表与基表都有相同的逻辑结构,这样,用于检索和修改基表信息的Transact-SQL语句,同样可以用于检索和修改系统表中的信息。但是应该注意的是,如果使用DDL语句的INSERT、UPDATE和DELETE语句来修改系统信息,对整个系统是非常危险的,应使用系统的存储过程来代替。下面简要介绍几个重要的系统表。(1)sysobiects表。SQL Server的主系统表,出现在每个数据库中,对每个数据库对象都含有一行

25、记录。(2)syscolumns表。出现在master数据库和每个用户自定义的数据库中,对基表或者视图的每个列和存储过程中的每个参数含有一行记录。(3)sysindexes表。出现在master数据库和每个用户自定义的数据库中,对每个索引和没有聚簇索引的每个表含有一行记录,它还对包括文本/图像数据的每个表含有一行记录。(4)sysusers表。出现在master数据库和每个用户自定义的数据库中,对整个数据库中的每个SQL Server用户或者SQL Server角色含有一行记录。(5)sysdatabases表,只出现在master数据库中,对SQL Server系统上的每个系统数据库和用户自

26、定义的数据库含有一行记录。(6)sysdepends表。出现在master数据库和每个用户自定义的数据库中,对表、视图和存储过程之间的每个依赖关系含有一行记录。5系统表简介7.3.2 数据库的创建7.3 数据库的创建与管理 (续2)利用企业管理器创建一个学生学籍管理数据库Student的具体步骤如下:(1)如果还没有启动SQL Server服务,应先运行Microsoft SQL Server程序组中的服务管理器,启动Microsoft SQL Server,然后启动企业管理器。(2)在控制台上依次单击Microsoft SQL Server、“SQL Server组”和要创建数据库的服务器左

27、边的“+”号,展开如图7-2所示的树形目录。SQL Server 2000提供两种建立数据库的方法:企业管理器和Transact-SQL语句。1使用企业管理器创建数据库图7-5 “数据库属性”对话框的“常规”选项卡(3)右击“数据库”选项,在弹出的菜单中选择“新建数据库”命令,弹出如图7-5所示的“数据库属性”对话框。在该对话框中共有3个选项卡:“常规”、“数据文件”和“事务日志”。在“常规”选项卡的“名称”文本框中输入要创建的数据库的名称,这里输入“Student”。(4)选择“数据文件”选项卡,找到文件名为Student_Data的一行,可以看到已给出默认的主数据文件名(即Student_

28、Data)、存储位置、初始大小(1MB)。在“文件属性”中给出默认的文件自动增长方式及最大文件大小,可根据需要对默认数据进行修改。(5)如果需要使用辅助数据文件,则可在“文件名”列表框的第二行输入另一个文件名,如图7-6所示,系统自动给出该文件的扩展名(.ndf)、默认存储位置和初始大小,可根据需要修改。(6)选择“事务日志”选项卡,找到文件名为Student_Log的一行,指定存放日志文件的位置、初始容量大小等属性,并进行事务日志文件大小、扩充方式和容量限制的设置。(7)设置完成之后,单击“确定”按钮。以上创建了一个名为Student的数据库,并为它创建了一个主数据文件和一个日志文件。此时,

29、在企业管理器的“数据库”目录下可以看到新建的数据库。图7-6 “数据库属性”对话框的“数据文件”选项卡U注意:数据库的名称不超过128个字符,且不区分大小写。理论上一个服务器可以管理32767个数据库。2使用Transact-SQL语句创建数据库在SQL Server 2000的查询分析器中使用Transact-SQL语句创建数据库的方法如下:启动查询分析器,在其右边的“查询”窗口中输入创建数据库的SQL语句,然后单击菜单栏中的“执行查询”按钮即可创建数据库。Transact-SQL语句创建数据库的一般格式为:CREATE DATABASE 数据库名 ON PRIMARY ( , n ) ,

30、n LOG ON ( ,):=( NAME = 逻辑文件名,FILENAME = 操作系统下的物理路径和文件名,SIZE = 文件初始大小 ,MAXSIZE = 文件最大大小 | UNLIMITED ,FILEGROWTH = 增量值 ) , n 上述语法中各部分的含义为:(1)数据库名在服务器中必须是唯一的,并且符合标识符的规则。(2)ON关键字表示数据库是根据后面的参数来创建的,用来定义主数据文件和辅助数据文件。ON后跟以逗号分隔的数据文件定义列表和文件组。(3)PRIMARY用来指定主文件。一个数据库只能有一个主文件,默认情况下,如果不指定PRIMARY关键字,则在命令中列出的第一个文件

31、将被默认为主文件。(4)n是一个占位符,表示可为新数据库指定多个文件。(5)LOG ON子句用来定义存储数据库日志的事务日志文件。(6)NAME用于指定数据库文件的逻辑文件名。(7)FILENAME用于指定数据库文件在操作系统下的物理路径和文件名。(8)SIZE用于指定数据库文件的初始大小。(9)MAXSIZE用于指定数据库文件的最大大小,单位为MB、KB、GB、TB或 %,默认为MB。省略此项表示数据库文件按10%增长;0值表示不自动增长。(10)FILEGROWTH用于指定数据库文件的增加量,单位为MB、KB或%,默认为KB。省略此项表示文件大小不自动增长。在使用SQL语句创建数据库时,最

32、简单的情况是可以省略所有的选项,用户只要提供一个数据库名即可,这时系统会按选项的默认值创建数据库。【例7-1】 用CREATE DATABASE语句创建Student数据库,所有参数均取默认值。程序清单如下:CREATE DATABASE Student系统输出结果如下:CREATE DATABASE 进程正在磁盘 Student 上分配 0.75 MB 的空间。CREATE DATABASE 进程正在磁盘 Student_log 上分配 0.49 MB 的空间。结果如图7-7所示。图7-7 使用SQL语句创建数据库& 说明:这是最简单的创建数据库的命令。此语句表示在默认位置创建数据库的主文件

33、Student.mdf和事务日志文件Student_log.ldf。同时,由于是按照Model数据库的方式来创建的数据库,所以主文件和日志文件的大小与Model数据库的主文件和日志文件的大小相同。【例7-2】 创建一个teachs数据库。该数据库的主数据文件的逻辑文件名为teachs_ data,物理文件名为teachsdat.mdf,存放在D:datas目录下,初始大小为10MB,最大为100MB,数据库文件的增量为5MB。同步建立日志文件,日志文件的逻辑文件名为teachs_log,物理文件名为teachslog.ldf,也存放在D:datas目录下,文件的初始大小为5MB,最大为20MB

34、,文件的增量为2MB。程序清单如下:CREATE DATABASE teachs ON ( NAME=teachs_dat, FILENAME=D:datasteachsdat.mdf, SIZE=10, MAXSIZE=100, FILEGROWTH=5 ) LOG ON ( NAME=teachs_log, FILENAME=D:datasteachslog.ldf, SIZE=5, MAXSIZE=20, FILEGROWTH=2 )结果如图7-8所示。图7-8 使用SQL语句创建teachs数据库系统输出结果如下:CREATE DATABASE 进程正在磁盘 teachs_dat 上分

35、配 10.00 MB 的空间。CREATE DATABASE 进程正在磁盘 teachs_log 上分配 5.00 MB 的空间。【例7-3】 创建一个指定多个数据文件和日志文件的数据库。该数据库的名称为students,有一个100MB和一个50MB的数据文件和两个10MB的日志文件。数据文件的逻辑名称为students1和students2,物理文件名为students1.mdf和students2.mdf。主数据文件为students1,由PRIMARY指定,两个数据文件最大分别为无限大和200MB,增长量分别为10%和1MB;日志文件的逻辑文件名为studentlog1和 studen

36、tlog2,物理文件名为studentlog1.ldf和studentlog2.ldf,最大均为50MB,文件增长量均为1MB。所有文件均存放在D:datas目录下。程序清单如下:CREATE DATABASE students ON PRIMARY ( NAME=student1, FILENAME=D:datasstudents1.mdf, SIZE=100, MAXSIZE=unlimited, FILEGROWTH=10% ) , ( NAME=student2, FILENAME=D:datasstudents2.mdf, SIZE=50, MAXSIZE=200, FILEGROW

37、TH=1 ) LOG ON ( NAME=studentlog1, FILENAME=D:datasstudentlog1.ldf, SIZE=10, MAXSIZE=50, FILEGROWTH=1 ) , ( NAME=studentlog2, FILENAME=D:datasstudentlog2.ldf, SIZE=10, MAXSIZE=50, FILEGROWTH=1 )系统输出结果如下:CREATE DATABASE 进程正在磁盘 student1 上分配 100.00 MB 的空间。CREATE DATABASE 进程正在磁盘 student2 上分配 50.00 MB 的空间

38、。CREATE DATABASE 进程正在磁盘 studentlog1 上分配 10.00 MB 的空间。CREATE DATABASE 进程正在磁盘 studentlog2 上分配 10.00 MB 的空间。结果如图7-9所示。图7-9 使用SQL语句创建students数据库7.3.3 数据库的修改7.3 数据库的创建与管理 (续3)创建数据库后,可以对其原始定义进行更改。常用的更改操作包括:(1)扩充分配给数据库的数据文件或事务日志文件的空间。(2)收缩分配给数据库的数据文件或事务日志文件的空间。(3)添加或删除辅助数据文件或事务日志文件。(4)更改数据库名称。修改数据库可以使用企业管理

39、器与Transact-SQL语句两种方法。使用企业管理器修改数据库的方法与创建数据库的方法基本相同,区别在于选中要修改的数据库后,右击数据库名称,从弹出的菜单中选择“属性”命令,弹出所选数据库的属性对话框,选择“数据文件”选项卡,如图7-10所示,在此对话框中可以完成修改已有文件和添加新文件的操作。图7-10 使用数据库属性对话框修改数据库若要扩大已有数据文件的大小,只需在“分配的空间”字段中输入新的大小即可;若要添加新的数据文件,只需在已有文件名的下面一行添加一个新数据文件名,然后分别在对应的“位置”、“分配的空间”处输入合适的值即可,同时也可以设置新数据文件的自动增长属性,这些操作与创建数

40、据库的操作一样。在SQL Server 2000的查询分析器中使用Transact-SQL语句也可以修改数据库,一般格式为:ALTER DATABASE 数据库名 ADD FILE , , n | ADD LOG FILE , , n | REMOVE FILE | MODIFY FILE | MODIFY NAME = 其中,ALTER DATABASE指定要修改的数据库名称;ADD FILE表示向数据库中添加新的数据文件;ADD LOG FILE表示向数据库中添加日志文件;REMOVE FILE表示从数据库中删除文件;MODIFY FILE指定要更改给定的数据文件定义,更改选项包括FILE

41、NAME、SIZE、MAXSIZE和FILEGROWTH;MODIFY NAME用于重命名数据库。【例7-4】 向例7-2创建的teachs数据库添加一个10MB的辅助数据文件。程序清单如下:ALTER DATABASE teachs ADD FILE ( NAME=teachs2, FILENAME=D:datasteachs2.mdf, SIZE=10, MAXSIZE=100, FILEGROWTH=5 )7.3.4 数据库的删除7.3 数据库的创建与管理 (续4)对于那些不再需要的数据库,可以将其删除。删除数据库之后,数据库文件和数据都从服务器上的磁盘中删除。在企业管理器中,右击要删除

42、的数据库,从弹出的菜单中选择“删除”命令即可删除选中的数据库。也可以选中要删除的数据库,然后单击工具栏中的“删除”按钮来删除数据库,系统会询问用户是否要删除。在SQL Server 2000的查询分析器中使用Transact-SQL语句也可以删除数据库,一般格式为:DROP DATABASE 数据库名【例7-5】 删除teachs数据库。程序清单如下:DROP DATABASE teachs删除数据库时一定要慎重,因为删除数据库后,与此数据库相关的数据库文件和事务日志文件,以及存储在系统数据库中的关于该数据库的所有信息也会被删除。7.4 数据表的创建和管理当用户在SQL Server 2000

43、中创建了一个新的数据库后,该数据库中即自动包含了一些表、视图、存储过程以及其他对象,这些对象是系统从模板数据库(Model)中自动复制过来的,主要用于管理用户的数据库。系统表中存放的都是系统的信息,用户要想存放自己的数据,必须创建自己的数据库表。在SQL Server 2000中,一个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列,即可以定义1024个字段。SQL Server 2000提供了两种方法创建数据库表:利用企业管理器和Transact-SQL语句。在第3章中已经讲解了利用SQL语句创建数据表的方法,在此主要讲解前一种方法。表是由行和列组成的,创建表的过

44、程主要就是定义表的列的过程。在企业管理器中创建表的步骤如下:(1)在要创建表的数据库中选择“表”对象后右击,在快捷菜单中选择“新建表”命令,弹出如图7-11所示的窗口。 图7-11 创建学生基本信息表(2)在该窗口中分别设定各列的名称、数据类型、长度、是否允许为空值等属性。(3)定义好所有列后,单击工具栏中的“保存”按扭,弹出“保存”对话框,输入表名(如student),单击“确定”按钮即可。1创建表当表创建好后,根据需要可能要对表的列、约束等属性进行添加、删除或修改,这就需要修改表结构。用企业管理器修改数据表结构的步骤如下:(1)在企业管理器左侧目录树窗口中,展开“数据库”文件夹。(2)找到

45、所需要的数据库,并展开该数据库文件夹。(3)选中“表”对象后,会在企业管理器窗口的右侧显示出当前数据库中的所有数据表。(4)单击选择要进行修改的表,在该表名称上右击,在快捷菜单中选择“设计表”命令,如图7-12所示。(5)修改完毕后,单击“保存”按钮。图7-12 修改数据表结构查看表包括查看表的属性和表中的数据。(1)查看表的属性。在企业管理器中,展开相应数据库的文件夹,从中找到所需的数据表(如student),然后右击要查看属性的表,从快捷菜单中选择“属性”命令,弹出“表属性”对话框,如图7-13所示,从中可以查看数据表的名称、所有者、创建日期、文件组、记录行数,以及数据表中的字段名称、结构

46、和类型等属性信息。(2)查看数据表中的数据。在企业管理器中,右击要查看数据的表,从快捷菜单中选择“打开表”“返回所有行”命令,如图7-14所示。此时,会显示表中的所有数据。 图7-13 “表属性”对话框 图7-14 查看数据表中的数据在企业管理器中,右击要删除的表,从快捷菜单中选择“删除”命令,弹出“删除对象”对话框。单击“全部除去”按钮,即可删除表;单击“显示相关性”按钮,即会弹出“相关性”对话框,其中列出了该表所依靠的对象和依赖于该表的对象,当有对象依赖于该表时,不能将其删除。4删除表在数据表中添加、修改和删除数据的操作方法如下:(1)在企业管理器中找到建立的数据库,单击列表中的“表”,可

47、在右侧的显示区域中查看该数据库中所有已经建立的表。(2)选中并右击要插入数据的表。(3)在快捷菜单中选择“打开表”“返回所有行”命令。(4)在弹出的窗口中,直接添加所需的数据即可。注意:必须保证数据和定义的数据类型的一致性,否则,在类型检查时会出错。相应地,如果要修改已经输入的数据,直接输入新数据即可。对于数据删除,可以在选中的行上右击,在快捷菜单中选择“删除”命令即可。5在数据表中添加、修改和删除数据在第3章中已经介绍了索引的相关知识,在此只介绍如何在SQL Server 2000中创建和删除索引。(1)创建索引。创建索引的步骤如下: 在数据库关系图中选择要创建索引的表,右击,在快捷菜单中选

48、择“属性”命令;或者打开表设计器,在其中右击要创建索引的表,在弹出的快捷菜单中选择“属性”命令。 在弹出的属性对话框中选择“索引/键”选项卡,单击“新建”按钮。在“选定的索引”文本框中将显示系统分配给新索引的名称,如图7-15所示。 在“列名”下拉列表中选择要创建索引的列(最多可以选择16列)。对所选的每一列,可指出是按升序还是降序组织列值。 为索引设置其他参数选项,然后单击“确定”按钮。当保存表或视图时,索引即创建在该数据库中。图7-15 为数据表建立索引6索引(2)删除索引。索引的使用会减慢执行速度,删除索引的操作步骤如下: 在数据库关系图中选择要删除索引的表,右击,在快捷菜单中选择“属性

49、”命令;或者打开表设计器,在其中右击要删除索引的表,在快捷菜单中选择“属性”命令。 在打开的对话框中选择“索引/键”选项卡。 从“选定的索引”下拉列表中选择要删除的索引。 单击“删除”按钮。当保存表或关系图时,索引即从数据库中被删除。注意:单击“删除”按钮将导致一个无法撤销的操作,而且不保存对数据库关系图所做的所有其他更改。若要撤销该操作,不保存更改即可,即关闭当前的数据库关系图和所有打开的其他数据库关系图以及表设计器窗口。7.5 数据查询数据查询主要根据用户提供的限定条件进行,其结果是返回一张满足用户需求的表。在SQL Server 2000中,可以使用企业管理器进行数据查询,具体方法是:在

50、企业管理器中展开指定的数据库并选择“表”对象,在右边的显示区域中右击要操作的数据表,在弹出的快捷菜单中选择“打开表”“查询”选项,打开查询对话框。在该对话框中可以设置各种查询条件,还可以直接输入Transact-SQL查询语句,单击工具栏中的“运行”按钮即可执行指定的查询,查询结果会显示在窗口下部,如图7-16所示。在SQL Server 2000中,还可以利用查询分析器进行数据查询。方法是:在查询分析器的查询窗口中输入相应的Transact-SQL查询语句,然后单击工具栏中的“执行查询”按钮,查询结果会显示在窗口下部。图7-16 利用企业管理器进行数据查询7.6 存储过程和触发器存储过程与触

51、发器是SQL Server中的两类数据库对象,都是由Transact-SQL语句编写而成的,所不同的是存储过程是由用户根据需要调用执行的,而触发器则是由某个动作(如删除或修改一条记录)引发执行的。另外,存储过程可以不依附于表而单独存在,而触发器则必须依附于一个特定的表。存储过程和触发器与函数不同,函数可以直接通过函数名返回数值,且返回值可以直接在表达式中使用,而它们则不能直接通过名称返回值,也不能直接在表达式中使用。7.6 存储过程和触发器(续1)7.6.1 存储过程在SQL Server中的存储过程分为系统提供的存储过程和用户自定义的存储过程两类。系统存储过程主要存放在Master数据库中,

52、并以sp_为前缀。它主要从系统表中获取信息,为系统管理员管理SQL Server提供支持。通过系统存储过程,SQL Server中的许多管理性或信息性的活动(如了解数据库对象、数据库信息、设置用户角色等)都可以被顺利、有效地完成。尽管系统存储过程存放在Master数据库中,但是仍可以在其他数据库中对其进行调用(调用时不必在存储过程名前加数据库名),而且当创建一个新数据库时,会在新数据库中自动创建一些系统存储过程。用户自定义存储过程是指由用户创建的、能完成某一特定功能(如查询用户所需数据信息等)的存储过程。本节所涉及到的存储过程主要是指用户自定义存储过程。1创建存储过程存储过程是一种数据库对象,

53、在SQL Server 2000中可以使用企业管理器和Transact-SQL命令来创建。使用Transact-SQL命令创建存储过程是一种较为快速的方法,但对于初学者,使用企业管理器更易理解,更简单。创建存储过程时,需要确定存储过程的3个组成部分:(1)所有的输入参数以及传给调用者的输出参数。(2)被执行的针对数据库的操作语句,包括调用其他存储过程的语句。(3)返回给调用者的状态值,以指明调用是成功还是失败。使用企业管理器创建存储过程的操作步骤如下:(1)打开企业管理器,在树状目录中展开将存放存储过程的数据库节点,选择“pubs”数据库。(2)右击“pubs”数据库,在弹出的菜单中选择“新建

54、”“存储过程”命令。(3)在弹出的“存储过程属性新建存储过程”对话框中输入以下创建存储过程的代码:CREATE PROCEDURE myprocedure firstname varchar(40),lastname varchar(40) AS SELECT au_fname,au_lname,phone,addressFROM authorsWHERE au_fname=firstname OR au_lname=lastname(4)单击“检查语法”按钮,若语法正确,会弹出语法检查成功的对话框,如图7-17所示;若语法存在错误,会有对话框提示错误的原因。(5)单击“确定”按钮保存新建的存

55、储过程。图7-17 输入Transact-SQL语句并进行语法检查管理存储过程包括查看、修改、删除和执行存储过程。(1)查看与修改存储过程。存储过程被创建后,其名字存储在系统表Sysobjects中,源代码存放在系统表Syscomments中。可以通过SQL Server提供的系统存储过程来查看关于用户创建的存储过程的信息。利用企业管理器查看与修改存储过程源代码的操作步骤如下: 打开企业管理器,在树状目录中展开存储过程所在的数据库节点。 单击“存储过程”节点,此时在窗口的右侧将显示该数据库所有的存储过程。右击要查看源代码的存储过程,在弹出的快捷菜单中选择“属性”命令,弹出“存储过程属性”对话框

56、,在此对话框中便可查看存储过程的源代码,也可修改存储过程。(2)删除存储过程。删除存储过程可使用企业管理器完成,即在企业管理器中找到要删除的存储过程,右击,在弹出的快捷菜单中选择“删除”命令;也可以使用DROP PROCEDURE语句实现,其语法格式为:DROP PROCEDURE 存储过程名(3)执行存储过程。存储过程可以被应用程序调用,也可以在查询分析器中使用EXECUTE语句执行,或者由触发器自动执行。例如要执行上面创建的存储过程myprocedure,只需在查询分析器中输入如下代码:EXECUTE myprocedure Albert, Ringer运行结果如图7-18所示。图7-18

57、 执行存储过程7.6 存储过程和触发器(续2)7.6.2 触发器 SQL Server 2000主要提供了两种机制用于维护数据的完整性:一种是约束,另一种是触发器。触发器与表紧密联系,离开了表,它将不复存在(这点与约束十分类似)。触发器是一种特殊的存储过程,其功能与存储过程有相同点,但又有不同点:触发器主要是通过事件触发而被执行,而存储过程则是通过存储过程名称被直接调用执行。 用户不需要直接调用触发器,它是在对表或视图中的数据进行修改(UPDATE)、插入(INSERT)或删除(DELETE)操作时自动触发执行的。触发器隶属于一个表,一个表最多只能有3个触发器,分别是INSERT、DELETE

58、、UPDATE触发器。触发器的主要优点是用户可以用编程的方法来实现复杂的处理逻辑和商业规则,增强了数据完整性约束的功能。 使用触发器的最终目的是更好地维护企业的业务规则。在实际运用中,触发器的主要作用就是实现由主关键字、外来关键字和CHECK约束所不能保证的复杂的参照完整性和数据的一致性。这是因为在触发器中可以包含非常复杂的逻辑过程,而且和CHECK约束不同,触发器可以参照其他表中的列。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。另外,一个表的同一类型(INSERT、DELETE、UPDATE)的多个触发器,能够对同一种数据操作采取多种不同的处理。除此

59、之外,触发器还有许多其他功能。(1)强化约束(Enforce Restriction)。触发器能够实现比CHECK语句更为复杂的完整性约束。(2)跟踪变化(Auditing Changes)。触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的更新和变化。(3)级联操作(Cascaded Operation)。触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含对另外一个表的数据操作(如删除、修改、插入),而该操作又导致该表上的触发器被触发。(4)存储过程的调用(Stored Procedure Invocation)。为了响应数据库更新,触发

60、器可以调用一个或多个存储过程,甚至可以通过外部过程的调用,而在DBMS本身之外进行操作。正是因为触发器的强大功能和优点,使得触发器技术获得了越来越多的关注、研究和推广应用。触发器可以分为AFTER触发器和INSTEAD OF触发器两种。(1)AFTER触发器:该类型的触发器只有在数据变动(INSERT、UPDATE、DELETE)完成以后才被触发,且只能在表上定义。可以对变动的数据进行检查,如果发现错误,将拒绝接受或回滚变动的数据。在同一个数据表中可以创建多个AFTER触发器。(2)INSTEAD OF触发器:它是SQL Server 2000中新增的功能。这种类型的触发器将在数据变动以前被触

温馨提示

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

评论

0/150

提交评论