数据库课程实验操作指导(修订版)徐丽萍殷贤亮卢炎生编写目录一.概述1.SQLServer2000组成2.SQLServer2000的安装3.SQLServer2000的工具二.DDL的使用方法1.数据库建立2.基本表的建立3.视图的建立三.DML的使用方法1.INSERT命令2.DELETE命令3.UPDATE命令四.SELECT命令使用方法五.DCL的使用方法1.SQLServer登录管理2.用户管理3.授权用户(GRANT、REVOKE)六.游标的使用1.游标的定义2.游标的操作七.数据库的备份和恢复八.实验练习1.基本表的创建、数据插入2.数据查询3.数据修改、删除4.视图的操作5.库函数,授权控制6.数据库备份、恢复九.数据库课程设计基本要求-1-一.概述1.SQLServer2000组成SQLServer是可缩放的高性能基于SQL和客户/服务器体系结构的关系数据库管理系统服务器软件包,是由Microsoft公司推出的SQLServer数据库管理系统的最新版本。。从图1SQLServer的体系结构示意图中看出,SQLServer2000由4部分组成,在实验中,我们要求掌握基于SQLServer2000的服务器的使用,也就是数据库管理员DBA的主要操作。(注:本文所有内容均在SQLServer2000上实现,读者也可在SQLServer2005上得到类似结果。)2.SQLServer2000的安装SQLServer2000的常见版本有:企业版、标准版、个人版、开发人员版等。对软硬件的最低需求为:CPUPentium166MHz,内存64MB,硬盘180MB。SQLServer2000企业版和标准版只能在windows2000Server版和Professional版操作系统下运行。下面介绍SQLServer2000企业版在本地机上的安装过程。1)插入SQLServer2000光盘,自动安装程序启动,屏幕上出现如图2所示画面,按图2所示选择SQLServer2000组件;2)选择安装数据库服务器,如图3所示,进入SQLServer2000企业版安装向导;图1SQLServer的体系结构示意图。图2SQLServer2000安装过程对话框图3选择SQLServer2000安装组件对话框SQLServer客户(客户端的应用软件)应用程序编程接口网络SQLServer(包括:SQLAgent、SQLServerEngine等)-2-3)在安装向导对话框中点击下一步,进入计算机名对话框;4)选择本地安装,点击下一步,进入安装选择对话框;5)选择创建新的SQLServer实例,点击下一步,进入用户信息对话框;6)输入用户信息,点击下一步,进入安装定义对话框;7)选择服务器和客户端工具,点击下一步,进入实例名对话框;8)输入实例名,点击下一步,进入安装类型选择对话框;9)选择典型安装,进入服务帐号设置对话框,如图4所示;10)选择对每一个用户使用同一个帐号,自动启动服务器,点击下一步,进入选择身份验证模式选择对话框,如图5所示;11)选择Windows身份验证模式。点击下一步,进入开始复制文件对话框,点击下一步,进入选择许可模式对话框,选择处理器许可证,点击继续,开始复制文件。12)文件复制完毕后,进入安装完毕对话框,点击完成。系统安装完毕。3.SQLServer2000的工具1)服务管理器(ServerManager)在进行任何数据库操作前,都必须启动服务器,ServerManager可以方便启动、停止、暂停本地或远程服务器。图6是打开的ServerManager窗口。适当配置窗口中的选项,点击“启动”按钮即可启动SQLServer服务器。SQLServer2000安装以后,每次开机时,Windows都会自动启动服务管理器。在任务栏上有一个图标表示服务管理器的状态。如图7所示。2)SQLServer2000企业管理器(EnterpriseMamager)企业管理器的启动图6ServerManager窗口图7服务管理器在任务栏中的状态图4选择服务帐号对话框图5身份验证模式对话框-3-进入SQLServer2000的企业管理器从Program-SQLServer-EnterpriseManager,图8为企业管理器界面。企业管理器是DBA管理数据库的重要工具,使用EnterpriseManager可以管理用户账号、登录服务器、备份和恢复数据库、启动和停止SQLServer、创建和管理数据库对象和任务、处理访问控制列表、检查数据库的一致性等。其中数据库Master、Model、Msdb、Tempdb是系统数据库。Pubs、Northwind是SQLServer自带的样本数据库,其中有大量的Test数据,可以作为SQL语言实验的基础数据。数据库文件夹数据库文件夹中显示SQLServer服务器管理的所有数据库信息。例如SQLServer提供的样本数据库Pubs的展开如图9所示。每个数据库均由这些项目来分别描述数据库的属性。其中关系图为SQLServer根据用户对数据库的定义,自动绘制的数据库关系示意图(E-R图)。图10为Pubs的关系图,表示出基本表之间的引用关系,参照完整性定义的图示化表示。表为数据库中包含的表的信息。表分为两类,一类为用户创建的表,另一类为系统创建的表。用户表由用户使用DDL语言创建,系统表存放DBMS对用户数据库的管理信息。其它对象包含了与当前数据库有关的信息。图8企业管理器图10Pubs的关系图图9企业管理器中的数据库对象-4-3)SQLServer2000查询分析器(QueryAnalyzer)查询分析器是一个重要工具,实验中的所有SQL语言命令均需在查询分析器中输入、编辑运行。从Program-SQLServer-QueryAnalyzer可以打开查询分析器,如图11所示。它是一个多文档程序,在其上可以同时打开多个查询程序(窗口),在查询分析器的工具栏中的绿色按钮为执行当前窗口中SQL语句按钮。点击它即可逐行执行。二.DDL使用方法Transact-SQL是SQLServer内置的SQL语言,它支持标准SQL语言,但在许多方面进行了扩充,其定义能力更为强大。Transact-SQL对使用Microsoft®SQLServer™非常重要。与SQLServer通讯的所有应用程序都通过向服务器发送Transact-SQL语句来进行通讯,而与应用程序的用户界面无关。在此我们不对Transact-SQL的语法作详细介绍,大家可以参考查询分析器中提供的帮助。1.数据库创建在查询分析器中执行下列语句即可在默认的设备上创建新的数据库ems。CREATEDATABASEdatabase_name例1:创建名为ems的数据库:CREATEDATABASEems这是一个简单的人事管理数据库。本例中的所用数据库对象均为ems建立。执行结果如图12所示。图11查询分析器图12创建数据库命令及其执行结果执行结果显示窗口执行按钮SQL语句当前数据库-5-2.基本表的建立创建基本表的命令为:CREATETABLEtable_name,在该命令中定义主码和外码时,可以使用列约束(ColumnConstraint)或表约束(TableConstraint)子句。例2:在ems中创建employee(职员)表和dept(部门)表:employee(eno,ename,manager,salary,deptno);主码:eno外码:manager、deptnodept(deptno,dname,location)主码:deptno注:employee中的manager为相应雇员的直接领导或上司的eno。创建基本表时,应先选择包含表的数据库,本例中选择当前数据库为ems。查询分析器启动时的当前数据库为pubs,如图12所示。改变当前数据库可以直接点击当前数据库列表框,选中所需数据库,也可使用USEdatabasename命令。图13为使用SQL建表命令创建上述基本表的源代码。在查询分析器中输入该代码,点击执行按钮即可。图13SQL建表命令创建上述基本表的源代码3.视图的建立视图是组成数据库体系结构——三级模式两级映像结构中的外模式的基本单元,SQL-Server的视图定义命令为:CREATEVIEWview-nameASSELECTstatement视图是用于定义终端用户数据来源的。在视图定义中可以使用复杂的SELECT命令。例3:在ems中定义能够查询雇员年薪的视图Annualsal和统计雇员下属人数的视图manager。视图定义为:Annualsal(eno,ename,annualsal);annualsal为相应雇员的年薪。manager(manager,name,clerknum);clerknum为相应雇员的直接下属个数。在查询分析器中分别输入如图14所示的代码,即可创建要求的视图。Useems;Gocreatetabledept(deptnochar(3)primarykey,deptnamechar(20)notnull,locationchar(20));createtableemployee(enochar(4),enamechar(10)notnull,managerchar(4),salaryint,deptnochar(3),primarykey(eno),foreignkey(manager)referencesemployee(eno),foreignkey(deptno)referencesdept(deptno));ColumnConstraintTableConstraint-6-图14:视图定义源代码其中:在视图manager定义中的e1为联机视图。三.DML使用方法SQL的DML包括插入(INSERT)、删除(DELETE)、修改(UPDATE)等命令。DML命令的执行是可能造成数据库不一致的根源。因此,每一条语句在执行前,SQL-Server都要验证语句是否符合完整性要求,包括实体完整性、参照完整性、用户定义完整性。1.INSERT命令SQL语言的插入命令:INSERTINTOtable-name(column-list)VALUES(values-list),可以完成数据输入功能。例4:在ems中的dept表中输入表1中的数据;employee表中输入表2中的数据。图15为数据输入的源代码。图15在基本表中插入数据的源代码Useems;createviewmanager(manager,name,clerknum)asselecte1.manager,e2.ename,e1.clerknumfrom(selectmanager,count(*)asclerknumfromemployeegroupbymanagerhavingcount(*)0)e1,employeee2wheree1.manager=e2.enoUseems;createviewannualsal(eno,ename,annualsal)asselecteno,ename,12*salaryfromemployee表1基本表dept的数据D01ComputerSchoolSouth1-405D02CommunicationDeptSouth1-304D03ManagementSchoolkejilou-408useems;goinsertintodeptvalues('D01','ComputerSchool','North1-405');insertintodeptvalues('D02','CommunicationDept','Notth1-304');insertintodeptvalues('D03','ManagementSchool','kejilou-408');insertintoemployeevalues('E01','LU',null,8000,'D01');insertintoemp