




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图1 sql server的体系结构示意图。安装组件史抽整/好1h1翼 enilirh 9u«ry(q)一. 概述:1. sql server 2000 组成sql server是可缩放的高性能 基于sql和客户/服务器体系结构 的关系数据库管理系统服务器软件 包,是由microsoft公司推出的 sql server数据库管理系统的最新 版本。从图1 sql server的体系结 构示意图屮看出,sql server 2000 由4部分组成,在实验屮,我们要 求掌握基于sql server 2000的服务 器的使用,也就是数据库管理员 dba的主耍操作。2. sql server
2、2000 的安装sql server 2000的常见版本有:企业版、标准版、个人版、开发人员版等。对软硬 件的最低需求为:cpu pentium 166mhz,內存 64mb,硕盘 18() mb。sql server 2000 企业版和标准版只能在windows2000 server版和professional版操作系统卜运行。卜面介 绍sql server 2000企业版在本地机上的安装过程。1) 插入sql server 2000光盘,口动安装程序启动,屏幕上出现如图2所示画而, 按图2所示选择sql server 2000组件;2) 选择安装数据库服务器,如图3所示,进入sqlserv
3、er2000企业版安装向导;图2 sql server 2000安装过程对话框图3选择sql server 2000安装组件对话框进入用户信息对话框;图4选择服务帐号对话框图5身份验证模式对话框3. sql server 2000 的工具1)服务管理器(servermanager)在进行任何数据库操作前,都必须启动服务 器,server manager nj'以方便启动、停止、暂停本 地或远程服务器。图6是打开的server manager 窗口。适当配置窗口中的选项,点击“启动”按 钮即可启动sql server服务器。sql server 2000 安装以后,每次开机时,windo
4、ws都会口动启动 服务管理器。在任务栏上有一个图标表示服务管 理器的状态。如图7所示。3d sql server巌务管理器服务器辺:服务®:ii |暂停e) i停止©)v当启动fs时自动启动服务) 正在运行二vxlp=mssqlser就图 6 server manager 窗 i i图7服务管理器件仟芻桦中的状杰2) sql server 2000 企业管理器(enterprise mamager)企业管理器的启动3)在安装向导对话框中点击下一步,进入计算机名对话框;4)选择本地安装,点击下一步,进入安装选择对话框;5)选择创建新的sql server实例,点击下一步,6)
5、输入用户信息,点击下一步,进入安装定义 对话框;7)选择服务器和客户端工具,点击下一步,进 入实例名对话框;8)输入实例名,点击下一步,进入安装类型选 择对话框;9)选择典型安装,进入服务帐号设置对话框, 如图4所示;10)选择对每一个用户使用同一个帐号,自动启 动服务器,点击下一步,进入选择身份验证模式选择 对话框,如图5所示;11)选择windows身份验证模式。点击下一步, 进入开始复制文件对话框,点击下一步,进入选择许 可模式对话框,选择处理器许可证,点击继续,开始 复制文件。12)文件复制完毕后,进入安装完毕对话框,点 击完成。系统安装完毕。进入 sql server2000 的企业
6、管理器从 program > sql server -> enterprisemanager,图8为企业管理 器界而。企业管理器是dba 管理数据库的重要工具,使 用 enterprise manager 可以 管理用户账号、登录服务 器、备份和恢复数据库、启 动和停止sql server.创建 和竹理数据库对象和任务、 处理访问控制列表、检查数 据库的一致性等。其中数据 库 master > model > msdb>图8企业管理器tempdb是系统数据库。pubs>northwind是sql server 口带的样木数据库,其中有人量的test数据,可以
7、作为sql语言实验的基础数据。数据库文件夹数据库文件夹中显示sql server服务器管理的所冇数据库信 息。例如sql server提供的样木数 据库pubs的展开如图9所示。每个 数据库均由这些项冃来分别描述数 据库的属性。其中关系图为sql server根据用八对数据库的定义,自 动绘制的数据库关系示意图(e-r 图)。图10为pubs的关系图,表示 出基木表之间的引用关系,参照完 整性定义的图示化表示。图9企业管理器屮的数据库对象图10 pubs的关系图表为数据库中包含的表的信息。表分为两类, 一类为用户创建的表,另一类为系统创建的表。 用户表由用户使用ddl语言创建,系统表存放 db
8、ms对用户数据库的管理信息。其它对象包含 了与当前数据库有关的信息。3) sql server 2000 杳询分析器(query analyzer)査询分析器是一个重要工具,实验中的所 有sql语言命令均需在查询分析器中输入、编 辑运行。从 program > sql server > query analyzer nj以打开查询分析器,如图11所示。 它是一个多文档程序,在其上可以同时打开多个 杳询程序(窗口),在杳询分析器的工具栏屮的 绿色按钮为执行当前窗口屮sql语句按钮。 点击它即可逐行执行。图11查询分析器二.ddl使用方法transact-sql是sql server内
9、置的sql语言,它支持标准sql语言,但在许多方面进 行了扩充,其定义能力更为强大。transact-sql对使用microsoft® sql server"非常重 耍。与sql server通讯的所有应用程序都通过向服务器发送transact-sql语句来进行 通讯,而与应用程序的用户界面无关。在此我们不对transact-sql的语法作详细介绍, 大家对以参考查询分析器中提供的帮助。1. 数据库创建在查询分析器中执行下列语句即可在默认的设备上创建新的数据库emsocreate database database_name例1:创建名为ems的数据库:create dat
10、abase ems文件(e)編辑(b查询(q)工具(d窗口(妙帮助(tl)«« sql查谊分析器/执行''、按钮/当前数、 据库 >sql、语句' i"查诲xlp.pubs.xl叭admin礙恳豈处屿create database进程正在磁蛊 飞皿上分配0.75 mb的空间。t:reate database进程正在磁盘ems.log上分配0.49 mb的空间。显示窗口这是一个简单的人事管理数据弃。本例中的所用数据库对彖均为ems建立。执行结 果如图12所示。2. 基本表的建立创建基本表的命令为:create table table.n
11、ame,在该命令中定义主码和外码时, 可以使用列约束(column constraint)或表约束(table constraint)子句。例2:在cms中创建employee (职员)表和dept (部门)表:employee (eno, ename, manager, salary, depmo); 主码:eno 夕mi马:managerdeptno dept (deptno > dname, location) 主码:deptno注:employee中的manager为相应雇员的直接领导或上司的eno。创建基木表时,应先选择包含表的数据库,木例屮选择当前数据库为emso杳询分 析器
12、启动时的当前数据库为pubs,如图12所示。改变当前数据库可以宜接点击当前数据 库列表框,选屮所需数据库,也可使用use dalabasename命令。图13为使用sql建 表命令创建上述基木表的源代码。在查询分析器屮输入该代码,点击执行按钮即可。use ems;厂 columngocreate tabic dcpt(dcptno char(3) primary kconstraint、deptname char(20) not null, location char(20);create table employee (eno char(4), ename char(10) not null
13、, manager char(4), salary int,xieptno char(3), i primary key (eno).table constraint foreign key (managed references emdloyee(cno), lforeign kev (deptno) references clept(deptno):图13 sql建表命令创建上述慕本表的源代码3. 视图的建立视图是组成数据库体系结构一一三级模式两级映像结构中的外模式的基本单元, sql-server 的视图定义命令为:create view view-name as select stat
14、ement视图是用于定义终端用户数据来源的。在视图定义中对以使用复杂的select命令。 例3:在ems中定义能够查询雇员年薪的视图annualsal和统计雇员卜属人数的视图 managero视图定义为:annualsal (eno, ename, annualsal); annualsal 为相应雇员的年薪。 manager (manager, name, clerknum); clerknum 为相应廉员的肓接卜属个数。 在杳询分析器屮分别输入如图14所示的代码,即可创建要求的视图。use ems ;create view annualsal(eno,ename,annualsal) as
15、 select cno,cnamc,12*salaryfrom employeeuse ems;create view manager (manager,name,clerknum) as select c 1.manager,amc,c 1 .clcrknum from (select manager , count(*) as clerknum from employee group by manager having count(*)>0) e 1,employee e2 where el.manager = e2.eno图14 :视图定义源代码其中:在视图manager定义中的c
16、l为联机视图。三.dml使用方法sql的dml包括插入(insert)册i除(delete)、修改(update)等命令。dml 命令的执行是对能造成数据库不一致的根源。因此,每一条语句在执行前,sql-server 都耍验证语句是否符合完整性要求,包括实体完整性、参照完整性、用户定义完整性。1insert命令sql语言的插入命令:insert into table-name (colunin-list) values(values-list),可以完成数据输入功能。 例4:在ems中的dept表中输入表1中的数据;employee表中输入表2中的数据。 图15为数据输入的源代码。表1基本表d
17、ept的数据d01 computer schoolsouth 1-405d02 communication deptsouth 1-304d03 management schoolkejilou-408e01lunull8000d01e02yine017000d01e03xue012000d01e04que022000d01e05zaonull5000d02e06panae054000d02e07panbe053000d03表 2 基木表 employee的数据use ems;goinsert into dept values('d01 '/computer school
18、9;,'north 1 -405'); insert into dept values('d02','communication depf/notth1-304'); insert into dept values('d03',management school','kejilou-408');insert into employee values(,e01,'lu',null,8000 ,'d01');insert into employee values('e02
19、:'yin;'e01;7000,'d01');insert into employee values(,e03','xu'e01 ',2000,'do 1');insert into employee values('e04','qu',e022000,d01 *);insert into employee values(,e05,zao null,5000,'d02');insert into employee values(fe067pana ,'e054
20、000,'d02'); insert into employee values('e07*,'panb ,'e05,3000,'d03,);注意:在执行过程中,如果冇一条语句出错误,再次执行时,在出错语旬前面的语 句就会被拒绝执行。因为,在查询分析器中的命令在执行时按顺序逐条执行,当执行到 出错语句时停止执行,此时,在出错语句的前面各条语句的结果已经存入表中,故当重 复执行吋,它们违反了实体完整性。例5:插入可能违反参照完整性的插入命令,验证实体完整性检验规则。在查询分析器中执行如图16所示的命令,系统将拒绝执行。执行结呆如图17所示。use e
21、ms;goinsert into employee values('e10twu:'el 1 8000 /dop); insert into employee values(e02jyinte01 v7ooo,do5);图16可能被拒绝的命令emsjnl2d«sql查谊分析畫文件(e)編辑(£)査询(q)工凤d宙口(妙帮助(出窗3121日|站察蔭冒何巾国-5/ |0川川查谊xlp.ems.xl叭adminbtrotor 无标goinsert into employee values ('e10','wu','el
22、9;, 8000,doi'):/*insert into employee values c e02*, * yin*, * e0t, 7000, * dob1):/*阪务殍:弓述547,级别16,状态1,行1insert 语句与 column foreign key same table 约束 j fkemployeemanage20cle124, :中生于数握库 ejis*, 表 employee', coluan ' eno* o息2627,舉别14,状态1,行1违反了 primary key约束* pkemployee. 1ed998b2'。不能在对象*
23、 employee*中插入重复键。 语句己终止。图17执行被拒绝命令的结果显示图2delete命令sql 的删除命令为:delete from table-name where condition-expression;执行delete命令后,系统会删除满足命令中条件表达式的所有元组。这种删除 只是逻辑的。因此,当再次插入一个与被删除的元组具有相同关键字的元组时,被认为 违反了实体完整性。例6:删除姓名二panb'的纪录。在查询分析器中输入并执行如图18所示的代 码即可完成要求的删除操作。删除操作可能会引起参照完整性的破坏,对于这些操作系统会根据完整性定义执行 或拒绝执行。例如:在没有
24、删除panb纪录前,试图删除他所在的部门的操作就会引起 系统的警告,并拒绝执行该操作。use ems;godelete from employee where ename=,panb,;图18删除记录panb的代码3update命令sql的修改命令为:update table-nameset column-name = expressionwhere condition-expression;执行update命令后,系统会按照set子句修改满足命令中条件表达式的所有元 组。如果使用修改命令更新关键字的值,阳该关键字在其他表中作为外码存在时,操作 可能违反参照完報性。系统将拒绝执行。例7:将表e
25、mployee屮所有人的salary增加1()%。update employeeset salary = salary* 1.1;例8:将eno=,eor的eno更新为,e0(t。该操作结果如图18所示:update employeeset eno =,e()()'where eno=e0r;图19例8的执行结果四select命令select命令是sql语言中使用最频繁的命令,其变化形式繁多,灵活运用select 命令町以完成任意复朵的查询耍求。select命令的基本语法为:select query_expressionlcolumn-listl*from table_namejist
26、lview_nameislwhere condition-expressionlgroup by having condition-expression order by order_expressionl column ascidesc,n;由于select命令非常复杂,上面的语法描述还无法完全表达,请参考transaction sql的帮助。从海量数据库屮得到自己所希望看到的信息,是学习sql语言的重要任务。 下面只举几个典型例了。1. 简单查询例9:列ill ems中的所有员工的信息。select * from employee;2. 使用谓词的査询谓词有in、like、null、exi
27、sts> between等,在査询时where子句中 可以使用。例1():列出工资在2000-300() z间的所有员工的姓名及他们所在的部门号码,将结果 按工资从高到低的顺序排列。在杏询分析器屮输入并执行图20屮的代码即可得到所要的 结果。select ename,salary,dept nofrom employeewhere salary between 2000 and 3000order by salaiy desc;图20例10的检索命令3. 连接查询连接查询通过表间的关联字段实现相关查询,连接查询分为等值联接查询、不等值连 接查询、外联接查询、口我连接查询等。在书写较为复杂
28、的查询命令时,建议使用别名 来提高效率。例11:杏询雇员pana所在的部门及其办公地点;select e.deptnod.locationfrom employee e,dept dwhere e.deptno = d.deptno and e.ename = *pana'/*this is a equijoin*/图21例11的连接査询代码例12:列数办公地点在south 1的所有雇员名单;select eno,ename, e.deptnofrom employee c, dept dwhere e.deptno = d.dcptno and d.location like
29、9;south 1 %;图22例12的代码例13:歹u出每个雇员的间接上司(manager的manager)的姓名。select el.eno, el.ename,e3.eno, e3.ename as manager_ollmanagerfrom employee el, employee e2 ,employee e3where e 1 manager = e2.eno and e2.manager = e3.eno图23例13的代码4. 复杂查询例14:查询部门d01中薪水介于部门d02的最高和最低值z间的雇员及他们的薪水。use ems;select eno,ename,salaryf
30、rom employeewhere (salary between (select min(salary)from employeewhere deptno=,d02,)and (select max(salary)from employeewhere deptno=,d02,)anddeptno=dor;图24例14的代码五.dcl的使用方法1. sql server登录认证对任何用户来说,数据库的安全性都是至关重耍的。由于数据是而向所有合法用户的,因此,对任何dbms,良好的用户管理功能是确保数据库安全性的重要保障。sql server2000的安全性建立在认证和访问许町两种机制上的。认证
31、机制确保登录的用户帐号和密码是疋确的,通过认证的用户获得数 据库的访问授权后才能对服务器上的 数据进行授权许可下的各种操作。在 sql server 20(x)的安全模式屮包括: sql server登录、数据库用户、权限、 角色等。sql server 2000有两种安全 模式,即windows认证模式和混合 模式。windows模式只要求用户通windows操作系统的认证。如果 用户登录sql server 2000时耒给出用 户的登录名,sql server 口动使用该 模式,在前而各种操作时均使用该模 式。混合认证模式下,可以使用 windows 认证或 sql server 认证。
32、使用sql server认证时,用户在连接 sql server时必须提供登录名和密 码,这些登录信息存放在系统表syslogins 屮,与操作系统无关。1) sql server认证模式的设置 在对登录进行增加、删除操作前,必 须设置sql server认证模式。设置步骤: 启动企业管理器9选择要进行认证模式 设置的服务器9右击该服务器,在弹出菜 单中选择属性,弹出如图25所示的对话 框,点击安全性选择栏,选择身份验证为 sql server和乂讯(lows (s丿选项。任选一 种审核级别,在启动服务器帐户选项中选 择系统帐户。点击确定。确认设置。2d服务器设置1数据库设置1复制active
33、 directory常规1内存1处理器安全性连接sql server 展性 c 配篮)-xlpsql server 根据 windows 帐p和已命名的 sql server g 录ide密码进行身份验证安全性身份验证:e jsql server 和 window©)仅 windowslw)审核级别:q 无(n)成功(u)启动服务帐尸0丫在下面的嫌户中启动并运行sql server:本栋户(i)密码(:确定帮助|图25 sol server认证模式的设置图26新建甥陆对话框2)企业管理器管理登录在sql server认证模式下可以新建登录和管理登录,其操作步骤如卜:启动企业管 理器9
34、展开控制台根冃录,选择安全性并展开9右击登录,在弹出菜单中选择新建登录, 弹出如图26所示的对话框,在常规选择栏中,输入登录用户的信息,身份验证选择sql server验证,并输入密码。选择该登录的数据库,确认后点击确定按钮,新的登录即创 建成功。3)transact_sql存储过程管理登录在sql server中,有一些存储过程提供了管理sql server登录的功能,使用他们可 以在查询分析器中,用命令的方式管理登录。包括:sp_grantlogin sp_revokelogin sp_decnylogin sp_addlogin sp_droplogin sp_helploginso新登
35、录的创建use emsgoexec sp_addlogin qbb,qbb图27创建登陆qbb的代码新的登录者町以是windows的用户或用户组,也 对以是使用sql server认证模式的登录帐号,设定 windows的用户为sql server登录者时使用 sp_grantlogin0创建新的使用sql server认证模式的登录帐号时使用sp_addloginso图27是使用sp_addlogin创建使用sql server认证模式的 登录'qbb'的代码,在具有权限的sa登录连接的查询分析器中输以下代码即可创建一个 ems的登录qbb用户,该登录的密码为'qbb
36、'。登录的删除use emsgoexec sp_droplogin qbb图28删除登陆qbb的代码删除基丁使用sql server认证模式的sql server的登录 对以使用sp_droplogino但是,如果与该登录匹配的数据库用 户仍存在sysuser表中,则不能删除该登录账号。删除 windows的用户或用户组时,使用sp_revokelogin,拒绝 windows的用户或用户组连接到sql server时,使用 sp_decnylogin图28为删除了新建登录bbb的代码。 登陆的杏看use emsgoexec sp_hclplogins的信息。 代码。图29查看登陆的代
37、码sp_helplogins可以用来显示sql server的所有登录者 如图29是显示数据库ems的所有登录者信息的2. 用户管理1)用户的概念在sql server中,数据库用户帐号与登录帐号是两个不同的概念,一个合法的登录图3()新建用户对话框帐号,只表明该帐号通过r认证,但不表明英可以对数据库进行操作,所以,一个登录 帐号总是和一个或多个数据库用户帐号相对应,这样才可以访问数据库。在系统初始安 装时,系统自动与默认的用户相关联,所以我们在前而的操作才能进行。例如,登录帐 号sa自动与每一个用八dbo相关联。这就是为什么我们先前建立的数据库的所有者均为 dbo的原因。通常数据库帐号总是与
38、某一个登录帐号相关联。但gues(例外,在安装系统 吋,guest 用丿'"被加入到 masterpubs、tempdb> 和 northwind 中。这使初次使用 sql server 的用户能够访问到sql server自带的数据库,并且对于没有建立安全性防范机制的数据 库,均可以使用该用户来访问。2)企业管理器管理数据库用户创建新数据库用户启动企业管理器9展开控制台 根目录;打开数据库文件夹9选择要 创建用户的数据库(如本例中的 ems),右击用户,在弹出菜单中选择 新建数据库用户,弹出如图3()所示 的对话框,在常规选择栏中,输入登 录名和用户名。在数据库角色成
39、员列 表框中选择public,确认后点击确定 按钮,新的数据库用户即创建成功。查看、删除数据库用户在sql server企业管理器中,选择用户图标,则在右边的窗格中显示当前数据库的 所用用户,选择关心的用户,点击右键即可查看用户信息或删除该用户。3)transact_sql存储过程管理数据库用户sqlserver利用卜列系统过程管理数据库用户:sp_adduser sp_grangdbaccess sp_dropuser sp_dropuser sp_revokedbaccess sp_helpuser。其h4 sp_adduser sp_dropuser是为了保持与以前版木相兼容,因此不主张
40、 使用,在 sql server 2000 中,建议使用 sp_grangdbaccess sp_revokedbaccess。创建新数据库用户所冇的数据库用户(除了 guest)均必须与某一 登录账号相匹配,因此在使用系统过程创建新数据库 用户时,不但要指出新数据库用户的名称,还必须指 出一个已经存在的登录账号。系统过程 sp_grantdbaccess 用于为 sql server 登录用八或 nt 用八或用八组建立相匹配的数据库用八帐号。图31use emsgo厂已存在、'j新建澄录名用户名tvexec sp_grantdbacccss qbbtqbb图31创建新用户的代码是为数
41、据库ems的登录qbb创建了一个名称为qbb的数据库用八。use emsgoexec sp revokedbaccess 'qbb*删除数据库用八系统过程sp_rcvokcdbacccss用于将数据库用户 从当前数据库中删除,删除后与其匹配的登录即无法再访问该数据库了。图32所示的代码删除了数据库ems图32删除数据库用户的代码 的用户qbbouse emsgoexec sp_helpuser查看数据库用户信息 sp_helpuser可用来显示当前数据库的指定用户信息。图33为显示数据库ems用户的代码。在杳询分析器 图33显示数据库用户的代码 中输入并执行即可列出ems的所有用户信息
42、。3. 用户授权管理对于登录到sql server的合法数据库用户,必须获得对数据库操作的授权。在sql server中包括两种类型的权限,即对彖权限和语句权限。1)对象权限对彖权限总是针对表、视图、存储过程而言,它决定了能对这些对彖执行哪些操作(如 update delete insert select execute)o不同类型的对彖支持不同类型的操 作,表3为各种对彖的对能操作列举。表3 :对象权限总结表对象操作表select update delete insert reference视图select update delete insert存储过程execute列update sel
43、ect例15为ems的用户'qbb'授予表employee查询权限。use emsgogrant select on employee to qbb图34为用户授权的代码图35连接到服务器对话框以系统分析员身份进入杳询分析器,输入并执行 如图34的代码。然后,在打开查询分析器中文件下拉 菜单,点击连接选项,在弹出菜单(如图35)输入qbb 的信息,新打开的窗口即为qbb用户的窗口,在该窗 口中输入并执行select * from employee即 町得到查询结果,此时若输入select * from dept,可以发现语句被拒绝执行。因为,qbb,没有得depl 表得操作权限
44、。同样,门j以使用 revoke select on employee frpm qbb命令川以收回qbb对employee的操作权 限。人家可以参考教材屮命令,对自己的数据库的安全性进行全面管理。2)语句权限语句权限指数据库用户执行某种语句的操作权,如创建数据卉、表、存储过程等。这 些语句虽然(如create命令)包含有操作对彖,但这些对彖在操作前并不存在于数据 库中。表4为所有权语句清单。农4语句权限总结农语句含义create dtatbase创建数据库createtable创建表create view创建视图create rule创建规则create default创建缺省create
45、procedure创建存储过程backup database备份数据库backuplog创建事务日志例16使用语句权限设置命令,授予用户qbb在数据库cms ±建立新表的权限。完成该 功能的代码如图36«use ems go grant create table to qbb图36为用户qbb授了创建基表的权限在sql server 2000中冇角色的概念,角色的设置可以降低权限管理的繁杂性,在大 的系统中,虽然冇很多数据库用户,但可以将这些用户进行分类,每类定义一种角色, 只要对角色进行权限设置,就可以简单竹理用户了。角色的设置在此不赘述了。六. 游标的使用sql语言有两
46、种使用方式,即交互式和恢入式。前而我们在查询分析器中执行的命 令均使用交互式方式。但是在应用程序开发时往往需耍在其他程序开发语言中使用恢入 式的sql命令处理数据库中的数据,这时程序开发语言称为主语言,sql语言称为子语 言。由于主语言与sql语言处理数据的方式不同,因为关系数据库的处理结果为集合, 而大多数程序开发语言使用记录或线性处理。所以必须在两者z间实现沟通,使集合数 据也可以一次一条记录的处理。解决的办法是使用游标。游标是一个很重要的概念,它 提供了一种对从表屮检索结果进行操作手段。能从包括多条记录的结果集屮每次提取一 条记录。1游标的定义定义游标的命令为:declare curso
47、r_name insensitive scroll cursorfor select_statementfor read onlylupdatefofcolunin_name町选项insensitive表明游标的操作对应一个內部临时表,在游标的生命周期内,对 慕本表的修改操作不影响游标的内容,即游标是静态的。否则游标的内容将动态地与基表 保持一致。可选项scroll表示游标可以使用所有的提取操作,如first、last、prior、 relative> absolute等,否则只能使用next提取操作。read only表示游标内 的数据不允许更新。update ofcolumn.nam
48、e ,n定义在游标屮可以修改的列。2.游标的操作打开游标游标在定义以后,存储在系统数据库中,如杲从游标中读取数据,则必须打开游标,打开游标的命令为:open globalcursor_name山于游标的作用域仅在其所在的批处理中,当建立游标的批处理文件执行结束后,游 标会被自动释放。因此在此打开操作前,要重新定义一次,因丽而定义的游标已经被释 放。如果要保留游标的作用域,可以在定义吋指定其作用域为globalo否则为localo读取游标中的数据当游标成功打开后,就可以从游标中逐行读取数据。使用fetch命令。语法为:fetch nextipriorifirstilast from cursor
49、_namc into v_namc,.nfetch命令执行后,变gfetch_status返回被fetch语句执行后游标的状态。 如表5所示。表5 fetch命令执行示fetch status变量的值与状态返回值描述0fetch语句成功。1fetch语句失败或此行不在结果集中。2被提取的行不存在。游标的关闭与释放在处理完游标中的数据后必须关闭游标释放数据结果。使用close命令关闭游标, 但不释放定义的数据机构,释放数据机构应使用deallocate命令。语法分别为: close cursor_namedeallocate cursor_name例17定义一个游标,逐行显示employee &
50、#171;中的信息。对游标进行操作,最后关闭 游标。在查询分析器中输入并执行图37所示的代码即可完成要求。use ems;godeclare cursor_emp cursor global for select * from employee for read only; /* 定义游标*/ declare v_cno varchar(40), v_cnamc varchar(lo),v_manager varchar(40), v_salary int, v_deptno varchar(30); /* 定义变量*/ open cursor_emp; /* 打开游标*/f0t丫丫 *7 r
51、jw *jw rjwrjw rjw 丫*jw rjw 99 rjw rjw rjwrjw *jw rjwr|w rjw丫.fetch next from cursor_emp into v_cno, v_cnamc, v_manager, v_salary, v_deptno; /* 从游标中读収数据*/ while fetch_status = 0/*循坏处理从游标屮读取的数据*/begin/*select v_eno, v_ename, v_manager, v_salary, v_deptno; */ print v_cno + v_cnamc + v_managcr;fetch nex
52、t from cursor_empinto v_eno, v_ename, v_manager, v_salary, v_deptno;endclose global cursor_cmp;deallocate global cursor_emp;图37例17的代码七. 数据库的备份和恢复备份是指对sql server数据库或事务日志进行拷贝,如果数据库因意外血损坏, 备份文件可以用来恢复数据库。sql server 2000中有四种备份类型,分别是:数据库备 份、事务日志备份、差界备份、文件和文件组备份。在使用是对以根据实际情况选择一 种或几种的混合应用。1.备份设备在进行备份以前必须创建备
53、份设备。备份设备是用来存储数据库、事务日志、文件 和文件组备份的存储介质。对以是磁盘、磁带或管道。1)用企业管理器管理备份设备创建备份设备图38创建备份设备对话框启动企业管理器,登录到要增加备份设备 的服务器,打开管理文件夹,右击备份,在弹 出菜单中选择新建备份设备选项,弹出备份设 备属性一新设备对话框,如图38所示。在名 称栏中输入设备的名称,选择设备类型,可以选择磁盘、磁带或管道,如果选择文件名,则表示使用磁盘做备份,输入文件名后,点 击确定按钮,新的备份设备即可创建。由于软盘的容虽小不适合作为备份设备,通常都 选择唤盘,但在本此实习中,由于数据库cms的数据很少,也可以将a:盘作为备份设
54、 备。删除备份设备在创建备份设备的第二步,选中备份图标后,在右窗格对话框中右击要删除的备份设 备,在弹出菜单中选择删除选项,即可删除该备份设备。2)用系统存储过程管理备份设备 sp_addumpdevice (创建备份设备)。例:为数据库ems创建一个逻辑use ems设备名为 emss 设备的实际名 exec sp_addumpdcvicc 'disk','emss', 'd:backupdevems.bak'称为 c:backupdevems.bak 的备 份设备。代码如图39所示。 sp_dropdevice(删除备份设备) 例:将数据库e
55、ms的逻辑设备emss,删去。 码如图40所示2 数据库备份图39创建备份设备emssuse emsexec sp_dropdevice 'emss'图40删除备份设备emss图41创建sql server备份对话框sql server 2000捉供了两种创建备份的途径,即町视化方式和命令方式。1)用企业管理器管理备份启动企业管理器,登录到要增加 备份设备的服务器,打开数据库文件夹,右 击要进行备份的数据库图标,在弹出菜单中 选择所有任务选项,再选择备份数据库,弹 岀sql server备份对话框,如图41所示。 在常规页中的备份选项栏中选择备份类型, 单击添加按钮选择备份设备
56、,弹出如图42 所示对话框,在此口j以选择文件名或备份设 备。在重写选项栏,若选择追加到媒体,则 将备份内容添加到当前备份z后,若选择重 写现有设备,则将原备份覆盖。(在调度复 选框,可对备份的时间表进行设置)。s所冇 设置完成后,点击确定按钮即可开始备份。图42选择设备对话框2)用命令备份数据库 使用backup命令进行备份操作。 备份完整数据库例18将数据库ems完全备份到设备 backupdevice_ems上。在驱动器d上建立 backupdev子冃录,并执行如图43所示的代码, 即可将数据库ems备份到指定的设备上,图中 的第行是创建备份设备的命令,如果该设备已经存在,则将其注解掉。
57、use ems/* exec sp_addumpdevice *disk','backupdevice_ems', 'd:backupdevems.bak'*/ backup database ems to backupdevice_ems图43创建数据库备份 备份事务日志use emsbackup log ems to backupdevice_ems图44创建数据库日志备份例:将数据库ems的日志备份到设备backupdevice_ems上。执行如图44所示的代 码,即可将数据库ems备份到指定的设备 上,备份的日志与其他备份组织成一个文 件,所以,你在资源管理器中看到在 backupdev卜只有一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一快乐义卖活动方案
- 六一活动党日活动方案
- 六一活动定制活动方案
- 六一活动想法校内活动方案
- 六一活动方案及策划方案
- 六一海报公司活动方案
- 六一游园会活动活动方案
- 六一玩水特色活动方案
- 六一节员工活动方案
- 六一节活动创新活动方案
- 消防监理实施规划
- 检验批划分专项方案
- 外科学基本理论与实践智慧树知到答案章节测试2023年陕西中医药大学
- 2023子宫内膜异位症治疗指南
- TCIE 088-2020 非水冷板式间接液冷数据中心设计规范
- 工模外发管理流程模板
- 部编版高一上册语文第三课《百合花》课文原文教案及知识点
- 北京理工附中小升初分班考试真题
- 膀胱镜检查记录
- 二年级下册数学教案 《生活中的大数》练习课 北师大版
- T∕CAEPI 31-2021 旋转式沸石吸附浓缩装置技术要求
评论
0/150
提交评论