數(shù)據(jù)庫(kù)課程操作指導(dǎo)21_第1頁(yè)
數(shù)據(jù)庫(kù)課程操作指導(dǎo)21_第2頁(yè)
數(shù)據(jù)庫(kù)課程操作指導(dǎo)21_第3頁(yè)
數(shù)據(jù)庫(kù)課程操作指導(dǎo)21_第4頁(yè)
數(shù)據(jù)庫(kù)課程操作指導(dǎo)21_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、圖1 sql server的體系結(jié)構(gòu)示意圖。安裝組件史抽整/好1h1翼 enilirh 9u«ry(q)一. 概述:1. sql server 2000 組成sql server是可縮放的高性能 基于sql和客戶/服務(wù)器體系結(jié)構(gòu) 的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)服務(wù)器軟件 包,是由microsoft公司推出的 sql server數(shù)據(jù)庫(kù)管理系統(tǒng)的最新 版本。從圖1 sql server的體系結(jié) 構(gòu)示意圖屮看出,sql server 2000 由4部分組成,在實(shí)驗(yàn)屮,我們要 求掌握基于sql server 2000的服務(wù) 器的使用,也就是數(shù)據(jù)庫(kù)管理員 dba的主耍操作。2. sql server

2、2000 的安裝sql server 2000的常見版本有:企業(yè)版、標(biāo)準(zhǔn)版、個(gè)人版、開發(fā)人員版等。對(duì)軟硬 件的最低需求為:cpu pentium 166mhz,內(nèi)存 64mb,碩盤 18() mb。sql server 2000 企業(yè)版和標(biāo)準(zhǔn)版只能在windows2000 server版和professional版操作系統(tǒng)卜運(yùn)行。卜面介 紹sql server 2000企業(yè)版在本地機(jī)上的安裝過程。1) 插入sql server 2000光盤,口動(dòng)安裝程序啟動(dòng),屏幕上出現(xiàn)如圖2所示畫而, 按圖2所示選擇sql server 2000組件;2) 選擇安裝數(shù)據(jù)庫(kù)服務(wù)器,如圖3所示,進(jìn)入sqlserv

3、er2000企業(yè)版安裝向?qū)?;圖2 sql server 2000安裝過程對(duì)話框圖3選擇sql server 2000安裝組件對(duì)話框進(jìn)入用戶信息對(duì)話框;圖4選擇服務(wù)帳號(hào)對(duì)話框圖5身份驗(yàn)證模式對(duì)話框3. sql server 2000 的工具1)服務(wù)管理器(servermanager)在進(jìn)行任何數(shù)據(jù)庫(kù)操作前,都必須啟動(dòng)服務(wù) 器,server manager nj'以方便啟動(dòng)、停止、暫停本 地或遠(yuǎn)程服務(wù)器。圖6是打開的server manager 窗口。適當(dāng)配置窗口中的選項(xiàng),點(diǎn)擊“啟動(dòng)”按 鈕即可啟動(dòng)sql server服務(wù)器。sql server 2000 安裝以后,每次開機(jī)時(shí),windo

4、ws都會(huì)口動(dòng)啟動(dòng) 服務(wù)管理器。在任務(wù)欄上有一個(gè)圖標(biāo)表示服務(wù)管 理器的狀態(tài)。如圖7所示。3d sql server巌務(wù)管理器服務(wù)器辺:服務(wù)®:ii |暫停e) i停止©)v當(dāng)啟動(dòng)fs時(shí)自動(dòng)啟動(dòng)服務(wù)) 正在運(yùn)行二vxlp=mssqlser就圖 6 server manager 窗 i i圖7服務(wù)管理器件仟芻樺中的狀杰2) sql server 2000 企業(yè)管理器(enterprise mamager)企業(yè)管理器的啟動(dòng)3)在安裝向?qū)?duì)話框中點(diǎn)擊下一步,進(jìn)入計(jì)算機(jī)名對(duì)話框;4)選擇本地安裝,點(diǎn)擊下一步,進(jìn)入安裝選擇對(duì)話框;5)選擇創(chuàng)建新的sql server實(shí)例,點(diǎn)擊下一步,6)

5、輸入用戶信息,點(diǎn)擊下一步,進(jìn)入安裝定義 對(duì)話框;7)選擇服務(wù)器和客戶端工具,點(diǎn)擊下一步,進(jìn) 入實(shí)例名對(duì)話框;8)輸入實(shí)例名,點(diǎn)擊下一步,進(jìn)入安裝類型選 擇對(duì)話框;9)選擇典型安裝,進(jìn)入服務(wù)帳號(hào)設(shè)置對(duì)話框, 如圖4所示;10)選擇對(duì)每一個(gè)用戶使用同一個(gè)帳號(hào),自動(dòng)啟 動(dòng)服務(wù)器,點(diǎn)擊下一步,進(jìn)入選擇身份驗(yàn)證模式選擇 對(duì)話框,如圖5所示;11)選擇windows身份驗(yàn)證模式。點(diǎn)擊下一步, 進(jìn)入開始復(fù)制文件對(duì)話框,點(diǎn)擊下一步,進(jìn)入選擇許 可模式對(duì)話框,選擇處理器許可證,點(diǎn)擊繼續(xù),開始 復(fù)制文件。12)文件復(fù)制完畢后,進(jìn)入安裝完畢對(duì)話框,點(diǎn) 擊完成。系統(tǒng)安裝完畢。進(jìn)入 sql server2000 的企業(yè)

6、管理器從 program > sql server -> enterprisemanager,圖8為企業(yè)管理 器界而。企業(yè)管理器是dba 管理數(shù)據(jù)庫(kù)的重要工具,使 用 enterprise manager 可以 管理用戶賬號(hào)、登錄服務(wù) 器、備份和恢復(fù)數(shù)據(jù)庫(kù)、啟 動(dòng)和停止sql server.創(chuàng)建 和竹理數(shù)據(jù)庫(kù)對(duì)象和任務(wù)、 處理訪問控制列表、檢查數(shù) 據(jù)庫(kù)的一致性等。其中數(shù)據(jù) 庫(kù) master > model > msdb>圖8企業(yè)管理器tempdb是系統(tǒng)數(shù)據(jù)庫(kù)。pubs>northwind是sql server 口帶的樣木數(shù)據(jù)庫(kù),其中有人量的test數(shù)據(jù),可以

7、作為sql語(yǔ)言實(shí)驗(yàn)的基礎(chǔ)數(shù)據(jù)。數(shù)據(jù)庫(kù)文件夾數(shù)據(jù)庫(kù)文件夾中顯示sql server服務(wù)器管理的所冇數(shù)據(jù)庫(kù)信 息。例如sql server提供的樣木數(shù) 據(jù)庫(kù)pubs的展開如圖9所示。每個(gè) 數(shù)據(jù)庫(kù)均由這些項(xiàng)冃來分別描述數(shù) 據(jù)庫(kù)的屬性。其中關(guān)系圖為sql server根據(jù)用八對(duì)數(shù)據(jù)庫(kù)的定義,自 動(dòng)繪制的數(shù)據(jù)庫(kù)關(guān)系示意圖(e-r 圖)。圖10為pubs的關(guān)系圖,表示 出基木表之間的引用關(guān)系,參照完 整性定義的圖示化表示。圖9企業(yè)管理器屮的數(shù)據(jù)庫(kù)對(duì)象圖10 pubs的關(guān)系圖表為數(shù)據(jù)庫(kù)中包含的表的信息。表分為兩類, 一類為用戶創(chuàng)建的表,另一類為系統(tǒng)創(chuàng)建的表。 用戶表由用戶使用ddl語(yǔ)言創(chuàng)建,系統(tǒng)表存放 db

8、ms對(duì)用戶數(shù)據(jù)庫(kù)的管理信息。其它對(duì)象包含 了與當(dāng)前數(shù)據(jù)庫(kù)有關(guān)的信息。3) sql server 2000 杳詢分析器(query analyzer)査詢分析器是一個(gè)重要工具,實(shí)驗(yàn)中的所 有sql語(yǔ)言命令均需在查詢分析器中輸入、編 輯運(yùn)行。從 program > sql server > query analyzer nj以打開查詢分析器,如圖11所示。 它是一個(gè)多文檔程序,在其上可以同時(shí)打開多個(gè) 杳詢程序(窗口),在杳詢分析器的工具欄屮的 綠色按鈕為執(zhí)行當(dāng)前窗口屮sql語(yǔ)句按鈕。 點(diǎn)擊它即可逐行執(zhí)行。圖11查詢分析器二.ddl使用方法transact-sql是sql server內(nèi)

9、置的sql語(yǔ)言,它支持標(biāo)準(zhǔn)sql語(yǔ)言,但在許多方面進(jìn) 行了擴(kuò)充,其定義能力更為強(qiáng)大。transact-sql對(duì)使用microsoft® sql server"非常重 耍。與sql server通訊的所有應(yīng)用程序都通過向服務(wù)器發(fā)送transact-sql語(yǔ)句來進(jìn)行 通訊,而與應(yīng)用程序的用戶界面無(wú)關(guān)。在此我們不對(duì)transact-sql的語(yǔ)法作詳細(xì)介紹, 大家對(duì)以參考查詢分析器中提供的幫助。1. 數(shù)據(jù)庫(kù)創(chuàng)建在查詢分析器中執(zhí)行下列語(yǔ)句即可在默認(rèn)的設(shè)備上創(chuàng)建新的數(shù)據(jù)庫(kù)emsocreate database database_name例1:創(chuàng)建名為ems的數(shù)據(jù)庫(kù):create dat

10、abase ems文件(e)編輯(b查詢(q)工具(d窗口(妙幫助(tl)«« sql查誼分析器/執(zhí)行''、按鈕/當(dāng)前數(shù)、 據(jù)庫(kù) >sql、語(yǔ)句' i"查誨xlp.pubs.xl叭admin礙懇豈處嶼create database進(jìn)程正在磁蠱 飛皿上分配0.75 mb的空間。t:reate database進(jìn)程正在磁盤ems.log上分配0.49 mb的空間。顯示窗口這是一個(gè)簡(jiǎn)單的人事管理數(shù)據(jù)棄。本例中的所用數(shù)據(jù)庫(kù)對(duì)彖均為ems建立。執(zhí)行結(jié) 果如圖12所示。2. 基本表的建立創(chuàng)建基本表的命令為:create table table.n

11、ame,在該命令中定義主碼和外碼時(shí), 可以使用列約束(column constraint)或表約束(table constraint)子句。例2:在cms中創(chuàng)建employee (職員)表和dept (部門)表:employee (eno, ename, manager, salary, depmo); 主碼:eno 夕mi馬:managerdeptno dept (deptno > dname, location) 主碼:deptno注:employee中的manager為相應(yīng)雇員的直接領(lǐng)導(dǎo)或上司的eno。創(chuàng)建基木表時(shí),應(yīng)先選擇包含表的數(shù)據(jù)庫(kù),木例屮選擇當(dāng)前數(shù)據(jù)庫(kù)為emso杳詢分 析器

12、啟動(dòng)時(shí)的當(dāng)前數(shù)據(jù)庫(kù)為pubs,如圖12所示。改變當(dāng)前數(shù)據(jù)庫(kù)可以宜接點(diǎn)擊當(dāng)前數(shù)據(jù) 庫(kù)列表框,選屮所需數(shù)據(jù)庫(kù),也可使用use dalabasename命令。圖13為使用sql建 表命令創(chuàng)建上述基木表的源代碼。在查詢分析器屮輸入該代碼,點(diǎn)擊執(zhí)行按鈕即可。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建表命令創(chuàng)建上述慕本表的源代碼3. 視圖的建立視圖是組成數(shù)據(jù)庫(kù)體系結(jié)構(gòu)一一三級(jí)模式兩級(jí)映像結(jié)構(gòu)中的外模式的基本單元, sql-server 的視圖定義命令為:create view view-name as select stat

14、ement視圖是用于定義終端用戶數(shù)據(jù)來源的。在視圖定義中對(duì)以使用復(fù)雜的select命令。 例3:在ems中定義能夠查詢雇員年薪的視圖annualsal和統(tǒng)計(jì)雇員卜屬人數(shù)的視圖 managero視圖定義為:annualsal (eno, ename, annualsal); annualsal 為相應(yīng)雇員的年薪。 manager (manager, name, clerknum); clerknum 為相應(yīng)廉員的肓接卜屬個(gè)數(shù)。 在杳詢分析器屮分別輸入如圖14所示的代碼,即可創(chuàng)建要求的視圖。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為聯(lián)機(jī)視圖。三.dml使用方法sql的dml包括插入(insert)冊(cè)i除(delete)、修改(update)等命令。dml 命令的執(zhí)行是對(duì)能造成數(shù)據(jù)庫(kù)不一致的根源。因此,每一條語(yǔ)句在執(zhí)行前,sql-server 都耍驗(yàn)證語(yǔ)句是否符合完整性要求,包括實(shí)體完整性、參照完整性、用戶定義完整性。1insert命令sql語(yǔ)言的插入命令:insert into table-name (colunin-list) values(values-list),可以完成數(shù)據(jù)輸入功能。 例4:在ems中的dept表中輸入表1中的數(shù)據(jù);employee表中輸入表2中的數(shù)據(jù)。 圖15為數(shù)據(jù)輸入的源代碼。表1基本表d

17、ept的數(shù)據(jù)d01 computer schoolsouth 1-405d02 communication deptsouth 1-304d03 management schoolkejilou-408e01lunull8000d01e02yine017000d01e03xue012000d01e04que022000d01e05zaonull5000d02e06panae054000d02e07panbe053000d03表 2 基木表 employee的數(shù)據(jù)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,);注意:在執(zhí)行過程中,如果冇一條語(yǔ)句出錯(cuò)誤,再次執(zhí)行時(shí),在出錯(cuò)語(yǔ)旬前面的語(yǔ) 句就會(huì)被拒絕執(zhí)行。因?yàn)?,在查詢分析器中的命令在?zhí)行時(shí)按順序逐條執(zhí)行,當(dāng)執(zhí)行到 出錯(cuò)語(yǔ)句時(shí)停止執(zhí)行,此時(shí),在出錯(cuò)語(yǔ)句的前面各條語(yǔ)句的結(jié)果已經(jīng)存入表中,故當(dāng)重 復(fù)執(zhí)行吋,它們違反了實(shí)體完整性。例5:插入可能違反參照完整性的插入命令,驗(yàn)證實(shí)體完整性檢驗(yàn)規(guī)則。在查詢分析器中執(zhí)行如圖16所示的命令,系統(tǒng)將拒絕執(zhí)行。執(zhí)行結(jié)呆如圖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日|站察蔭冒何巾國(guó)-5/ |0川川查誼xlp.ems.xl叭adminbtrotor 無(wú)標(biāo)goinsert into employee values ('e10','wu','el

22、9;, 8000,doi'):/*insert into employee values c e02*, * yin*, * e0t, 7000, * dob1):/*阪務(wù)殍:弓述547,級(jí)別16,狀態(tài)1,行1insert 語(yǔ)句與 column foreign key same table 約束 j fkemployeemanage20cle124, :中生于數(shù)握庫(kù) ejis*, 表 employee', coluan ' eno* o息2627,舉別14,狀態(tài)1,行1違反了 primary key約束* pkemployee. 1ed998b2'。不能在對(duì)象*

23、 employee*中插入重復(fù)鍵。 語(yǔ)句己終止。圖17執(zhí)行被拒絕命令的結(jié)果顯示圖2delete命令sql 的刪除命令為:delete from table-name where condition-expression;執(zhí)行delete命令后,系統(tǒng)會(huì)刪除滿足命令中條件表達(dá)式的所有元組。這種刪除 只是邏輯的。因此,當(dāng)再次插入一個(gè)與被刪除的元組具有相同關(guān)鍵字的元組時(shí),被認(rèn)為 違反了實(shí)體完整性。例6:刪除姓名二panb'的紀(jì)錄。在查詢分析器中輸入并執(zhí)行如圖18所示的代 碼即可完成要求的刪除操作。刪除操作可能會(huì)引起參照完整性的破壞,對(duì)于這些操作系統(tǒng)會(huì)根據(jù)完整性定義執(zhí)行 或拒絕執(zhí)行。例如:在沒有

24、刪除panb紀(jì)錄前,試圖刪除他所在的部門的操作就會(huì)引起 系統(tǒng)的警告,并拒絕執(zhí)行該操作。use ems;godelete from employee where ename=,panb,;圖18刪除記錄panb的代碼3update命令sql的修改命令為:update table-nameset column-name = expressionwhere condition-expression;執(zhí)行update命令后,系統(tǒng)會(huì)按照set子句修改滿足命令中條件表達(dá)式的所有元 組。如果使用修改命令更新關(guān)鍵字的值,陽(yáng)該關(guān)鍵字在其他表中作為外碼存在時(shí),操作 可能違反參照完報(bào)性。系統(tǒng)將拒絕執(zhí)行。例7:將表e

25、mployee屮所有人的salary增加1()%。update employeeset salary = salary* 1.1;例8:將eno=,eor的eno更新為,e0(t。該操作結(jié)果如圖18所示:update employeeset eno =,e()()'where eno=e0r;圖19例8的執(zhí)行結(jié)果四select命令select命令是sql語(yǔ)言中使用最頻繁的命令,其變化形式繁多,靈活運(yùn)用select 命令町以完成任意復(fù)朵的查詢耍求。select命令的基本語(yǔ)法為:select query_expressionlcolumn-listl*from table_namejist

26、lview_nameislwhere condition-expressionlgroup by having condition-expression order by order_expressionl column ascidesc,n;由于select命令非常復(fù)雜,上面的語(yǔ)法描述還無(wú)法完全表達(dá),請(qǐng)參考transaction sql的幫助。從海量數(shù)據(jù)庫(kù)屮得到自己所希望看到的信息,是學(xué)習(xí)sql語(yǔ)言的重要任務(wù)。 下面只舉幾個(gè)典型例了。1. 簡(jiǎn)單查詢例9:列ill ems中的所有員工的信息。select * from employee;2. 使用謂詞的査詢謂詞有in、like、null、exi

27、sts> between等,在査詢時(shí)where子句中 可以使用。例1():列出工資在2000-300() z間的所有員工的姓名及他們所在的部門號(hào)碼,將結(jié)果 按工資從高到低的順序排列。在杏詢分析器屮輸入并執(zhí)行圖20屮的代碼即可得到所要的 結(jié)果。select ename,salary,dept nofrom employeewhere salary between 2000 and 3000order by salaiy desc;圖20例10的檢索命令3. 連接查詢連接查詢通過表間的關(guān)聯(lián)字段實(shí)現(xiàn)相關(guān)查詢,連接查詢分為等值聯(lián)接查詢、不等值連 接查詢、外聯(lián)接查詢、口我連接查詢等。在書寫較為復(fù)雜

28、的查詢命令時(shí),建議使用別名 來提高效率。例11:杏詢雇員pana所在的部門及其辦公地點(diǎn);select e.deptnod.locationfrom employee e,dept dwhere e.deptno = d.deptno and e.ename = *pana'/*this is a equijoin*/圖21例11的連接?xùn)嗽兇a例12:列數(shù)辦公地點(diǎn)在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出每個(gè)雇員的間接上司(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. 復(fù)雜查詢例14:查詢部門d01中薪水介于部門d02的最高和最低值z(mì)間的雇員及他們的薪水。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登錄認(rèn)證對(duì)任何用戶來說,數(shù)據(jù)庫(kù)的安全性都是至關(guān)重耍的。由于數(shù)據(jù)是而向所有合法用戶的,因此,對(duì)任何dbms,良好的用戶管理功能是確保數(shù)據(jù)庫(kù)安全性的重要保障。sql server2000的安全性建立在認(rèn)證和訪問許町兩種機(jī)制上的。認(rèn)證

31、機(jī)制確保登錄的用戶帳號(hào)和密碼是疋確的,通過認(rèn)證的用戶獲得數(shù) 據(jù)庫(kù)的訪問授權(quán)后才能對(duì)服務(wù)器上的 數(shù)據(jù)進(jìn)行授權(quán)許可下的各種操作。在 sql server 20(x)的安全模式屮包括: sql server登錄、數(shù)據(jù)庫(kù)用戶、權(quán)限、 角色等。sql server 2000有兩種安全 模式,即windows認(rèn)證模式和混合 模式。windows模式只要求用戶通windows操作系統(tǒng)的認(rèn)證。如果 用戶登錄sql server 2000時(shí)耒給出用 戶的登錄名,sql server 口動(dòng)使用該 模式,在前而各種操作時(shí)均使用該模 式?;旌险J(rèn)證模式下,可以使用 windows 認(rèn)證或 sql server 認(rèn)證。

32、使用sql server認(rèn)證時(shí),用戶在連接 sql server時(shí)必須提供登錄名和密 碼,這些登錄信息存放在系統(tǒng)表syslogins 屮,與操作系統(tǒng)無(wú)關(guān)。1) sql server認(rèn)證模式的設(shè)置 在對(duì)登錄進(jìn)行增加、刪除操作前,必 須設(shè)置sql server認(rèn)證模式。設(shè)置步驟: 啟動(dòng)企業(yè)管理器9選擇要進(jìn)行認(rèn)證模式 設(shè)置的服務(wù)器9右擊該服務(wù)器,在彈出菜 單中選擇屬性,彈出如圖25所示的對(duì)話 框,點(diǎn)擊安全性選擇欄,選擇身份驗(yàn)證為 sql server和乂訊(lows (s丿選項(xiàng)。任選一 種審核級(jí)別,在啟動(dòng)服務(wù)器帳戶選項(xiàng)中選 擇系統(tǒng)帳戶。點(diǎn)擊確定。確認(rèn)設(shè)置。2d服務(wù)器設(shè)置1數(shù)據(jù)庫(kù)設(shè)置1復(fù)制active

33、 directory常規(guī)1內(nèi)存1處理器安全性連接sql server 展性 c 配籃)-xlpsql server 根據(jù) windows 帳p和已命名的 sql server g 錄ide密碼進(jìn)行身份驗(yàn)證安全性身份驗(yàn)證:e jsql server 和 window©)僅 windowslw)審核級(jí)別:q 無(wú)(n)成功(u)啟動(dòng)服務(wù)帳尸0丫在下面的嫌戶中啟動(dòng)并運(yùn)行sql server:本棟戶(i)密碼(:確定幫助|圖25 sol server認(rèn)證模式的設(shè)置圖26新建甥陸對(duì)話框2)企業(yè)管理器管理登錄在sql server認(rèn)證模式下可以新建登錄和管理登錄,其操作步驟如卜:?jiǎn)?dòng)企業(yè)管 理器9

34、展開控制臺(tái)根冃錄,選擇安全性并展開9右擊登錄,在彈出菜單中選擇新建登錄, 彈出如圖26所示的對(duì)話框,在常規(guī)選擇欄中,輸入登錄用戶的信息,身份驗(yàn)證選擇sql server驗(yàn)證,并輸入密碼。選擇該登錄的數(shù)據(jù)庫(kù),確認(rèn)后點(diǎn)擊確定按鈕,新的登錄即創(chuàng) 建成功。3)transact_sql存儲(chǔ)過程管理登錄在sql server中,有一些存儲(chǔ)過程提供了管理sql server登錄的功能,使用他們可 以在查詢分析器中,用命令的方式管理登錄。包括:sp_grantlogin sp_revokelogin sp_decnylogin sp_addlogin sp_droplogin sp_helploginso新登

35、錄的創(chuàng)建use emsgoexec sp_addlogin qbb,qbb圖27創(chuàng)建登陸qbb的代碼新的登錄者町以是windows的用戶或用戶組,也 對(duì)以是使用sql server認(rèn)證模式的登錄帳號(hào),設(shè)定 windows的用戶為sql server登錄者時(shí)使用 sp_grantlogin0創(chuàng)建新的使用sql server認(rèn)證模式的登錄帳號(hào)時(shí)使用sp_addloginso圖27是使用sp_addlogin創(chuàng)建使用sql server認(rèn)證模式的 登錄'qbb'的代碼,在具有權(quán)限的sa登錄連接的查詢分析器中輸以下代碼即可創(chuàng)建一個(gè) ems的登錄qbb用戶,該登錄的密碼為'qbb

36、'。登錄的刪除use emsgoexec sp_droplogin qbb圖28刪除登陸qbb的代碼刪除基丁使用sql server認(rèn)證模式的sql server的登錄 對(duì)以使用sp_droplogino但是,如果與該登錄匹配的數(shù)據(jù)庫(kù)用 戶仍存在sysuser表中,則不能刪除該登錄賬號(hào)。刪除 windows的用戶或用戶組時(shí),使用sp_revokelogin,拒絕 windows的用戶或用戶組連接到sql server時(shí),使用 sp_decnylogin圖28為刪除了新建登錄bbb的代碼。 登陸的杏看use emsgoexec sp_hclplogins的信息。 代碼。圖29查看登陸的代

37、碼sp_helplogins可以用來顯示sql server的所有登錄者 如圖29是顯示數(shù)據(jù)庫(kù)ems的所有登錄者信息的2. 用戶管理1)用戶的概念在sql server中,數(shù)據(jù)庫(kù)用戶帳號(hào)與登錄帳號(hào)是兩個(gè)不同的概念,一個(gè)合法的登錄圖3()新建用戶對(duì)話框帳號(hào),只表明該帳號(hào)通過r認(rèn)證,但不表明英可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,所以,一個(gè)登錄 帳號(hào)總是和一個(gè)或多個(gè)數(shù)據(jù)庫(kù)用戶帳號(hào)相對(duì)應(yīng),這樣才可以訪問數(shù)據(jù)庫(kù)。在系統(tǒng)初始安 裝時(shí),系統(tǒng)自動(dòng)與默認(rèn)的用戶相關(guān)聯(lián),所以我們?cè)谇岸牟僮鞑拍苓M(jìn)行。例如,登錄帳 號(hào)sa自動(dòng)與每一個(gè)用八dbo相關(guān)聯(lián)。這就是為什么我們先前建立的數(shù)據(jù)庫(kù)的所有者均為 dbo的原因。通常數(shù)據(jù)庫(kù)帳號(hào)總是與

38、某一個(gè)登錄帳號(hào)相關(guān)聯(lián)。但gues(例外,在安裝系統(tǒng) 吋,guest 用丿'"被加入到 masterpubs、tempdb> 和 northwind 中。這使初次使用 sql server 的用戶能夠訪問到sql server自帶的數(shù)據(jù)庫(kù),并且對(duì)于沒有建立安全性防范機(jī)制的數(shù)據(jù) 庫(kù),均可以使用該用戶來訪問。2)企業(yè)管理器管理數(shù)據(jù)庫(kù)用戶創(chuàng)建新數(shù)據(jù)庫(kù)用戶啟動(dòng)企業(yè)管理器9展開控制臺(tái) 根目錄;打開數(shù)據(jù)庫(kù)文件夾9選擇要 創(chuàng)建用戶的數(shù)據(jù)庫(kù)(如本例中的 ems),右擊用戶,在彈出菜單中選擇 新建數(shù)據(jù)庫(kù)用戶,彈出如圖3()所示 的對(duì)話框,在常規(guī)選擇欄中,輸入登 錄名和用戶名。在數(shù)據(jù)庫(kù)角色成

39、員列 表框中選擇public,確認(rèn)后點(diǎn)擊確定 按鈕,新的數(shù)據(jù)庫(kù)用戶即創(chuàng)建成功。查看、刪除數(shù)據(jù)庫(kù)用戶在sql server企業(yè)管理器中,選擇用戶圖標(biāo),則在右邊的窗格中顯示當(dāng)前數(shù)據(jù)庫(kù)的 所用用戶,選擇關(guān)心的用戶,點(diǎn)擊右鍵即可查看用戶信息或刪除該用戶。3)transact_sql存儲(chǔ)過程管理數(shù)據(jù)庫(kù)用戶sqlserver利用卜列系統(tǒng)過程管理數(shù)據(jù)庫(kù)用戶: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。創(chuàng)建新數(shù)據(jù)庫(kù)用戶所冇的數(shù)據(jù)庫(kù)用戶(除了 guest)均必須與某一 登錄賬號(hào)相匹配,因此在使用系統(tǒng)過程創(chuàng)建新數(shù)據(jù)庫(kù) 用戶時(shí),不但要指出新數(shù)據(jù)庫(kù)用戶的名稱,還必須指 出一個(gè)已經(jīng)存在的登錄賬號(hào)。系統(tǒng)過程 sp_grantdbaccess 用于為 sql server 登錄用八或 nt 用八或用八組建立相匹配的數(shù)據(jù)庫(kù)用八帳號(hào)。圖31use emsgo廠已存在、'j新建澄錄名用戶名tvexec sp_grantdbacccss qbbtqbb圖31創(chuàng)建新用戶的代碼是為數(shù)

41、據(jù)庫(kù)ems的登錄qbb創(chuàng)建了一個(gè)名稱為qbb的數(shù)據(jù)庫(kù)用八。use emsgoexec sp revokedbaccess 'qbb*刪除數(shù)據(jù)庫(kù)用八系統(tǒng)過程sp_rcvokcdbacccss用于將數(shù)據(jù)庫(kù)用戶 從當(dāng)前數(shù)據(jù)庫(kù)中刪除,刪除后與其匹配的登錄即無(wú)法再訪問該數(shù)據(jù)庫(kù)了。圖32所示的代碼刪除了數(shù)據(jù)庫(kù)ems圖32刪除數(shù)據(jù)庫(kù)用戶的代碼 的用戶qbbouse emsgoexec sp_helpuser查看數(shù)據(jù)庫(kù)用戶信息 sp_helpuser可用來顯示當(dāng)前數(shù)據(jù)庫(kù)的指定用戶信息。圖33為顯示數(shù)據(jù)庫(kù)ems用戶的代碼。在杳詢分析器 圖33顯示數(shù)據(jù)庫(kù)用戶的代碼 中輸入并執(zhí)行即可列出ems的所有用戶信息

42、。3. 用戶授權(quán)管理對(duì)于登錄到sql server的合法數(shù)據(jù)庫(kù)用戶,必須獲得對(duì)數(shù)據(jù)庫(kù)操作的授權(quán)。在sql server中包括兩種類型的權(quán)限,即對(duì)彖權(quán)限和語(yǔ)句權(quán)限。1)對(duì)象權(quán)限對(duì)彖權(quán)限總是針對(duì)表、視圖、存儲(chǔ)過程而言,它決定了能對(duì)這些對(duì)彖執(zhí)行哪些操作(如 update delete insert select execute)o不同類型的對(duì)彖支持不同類型的操 作,表3為各種對(duì)彖的對(duì)能操作列舉。表3 :對(duì)象權(quán)限總結(jié)表對(duì)象操作表select update delete insert reference視圖select update delete insert存儲(chǔ)過程execute列update sel

43、ect例15為ems的用戶'qbb'授予表employee查詢權(quán)限。use emsgogrant select on employee to qbb圖34為用戶授權(quán)的代碼圖35連接到服務(wù)器對(duì)話框以系統(tǒng)分析員身份進(jìn)入杳詢分析器,輸入并執(zhí)行 如圖34的代碼。然后,在打開查詢分析器中文件下拉 菜單,點(diǎn)擊連接選項(xiàng),在彈出菜單(如圖35)輸入qbb 的信息,新打開的窗口即為qbb用戶的窗口,在該窗 口中輸入并執(zhí)行select * from employee即 町得到查詢結(jié)果,此時(shí)若輸入select * from dept,可以發(fā)現(xiàn)語(yǔ)句被拒絕執(zhí)行。因?yàn)?,qbb,沒有得depl 表得操作權(quán)限

44、。同樣,門j以使用 revoke select on employee frpm qbb命令川以收回qbb對(duì)employee的操作權(quán) 限。人家可以參考教材屮命令,對(duì)自己的數(shù)據(jù)庫(kù)的安全性進(jìn)行全面管理。2)語(yǔ)句權(quán)限語(yǔ)句權(quán)限指數(shù)據(jù)庫(kù)用戶執(zhí)行某種語(yǔ)句的操作權(quán),如創(chuàng)建數(shù)據(jù)卉、表、存儲(chǔ)過程等。這 些語(yǔ)句雖然(如create命令)包含有操作對(duì)彖,但這些對(duì)彖在操作前并不存在于數(shù)據(jù) 庫(kù)中。表4為所有權(quán)語(yǔ)句清單。農(nóng)4語(yǔ)句權(quán)限總結(jié)農(nóng)語(yǔ)句含義create dtatbase創(chuàng)建數(shù)據(jù)庫(kù)createtable創(chuàng)建表create view創(chuàng)建視圖create rule創(chuàng)建規(guī)則create default創(chuàng)建缺省create

45、procedure創(chuàng)建存儲(chǔ)過程backup database備份數(shù)據(jù)庫(kù)backuplog創(chuàng)建事務(wù)日志例16使用語(yǔ)句權(quán)限設(shè)置命令,授予用戶qbb在數(shù)據(jù)庫(kù)cms ±建立新表的權(quán)限。完成該 功能的代碼如圖36«use ems go grant create table to qbb圖36為用戶qbb授了創(chuàng)建基表的權(quán)限在sql server 2000中冇角色的概念,角色的設(shè)置可以降低權(quán)限管理的繁雜性,在大 的系統(tǒng)中,雖然冇很多數(shù)據(jù)庫(kù)用戶,但可以將這些用戶進(jìn)行分類,每類定義一種角色, 只要對(duì)角色進(jìn)行權(quán)限設(shè)置,就可以簡(jiǎn)單竹理用戶了。角色的設(shè)置在此不贅述了。六. 游標(biāo)的使用sql語(yǔ)言有兩

46、種使用方式,即交互式和恢入式。前而我們?cè)诓樵兎治銎髦袌?zhí)行的命 令均使用交互式方式。但是在應(yīng)用程序開發(fā)時(shí)往往需耍在其他程序開發(fā)語(yǔ)言中使用恢入 式的sql命令處理數(shù)據(jù)庫(kù)中的數(shù)據(jù),這時(shí)程序開發(fā)語(yǔ)言稱為主語(yǔ)言,sql語(yǔ)言稱為子語(yǔ) 言。由于主語(yǔ)言與sql語(yǔ)言處理數(shù)據(jù)的方式不同,因?yàn)殛P(guān)系數(shù)據(jù)庫(kù)的處理結(jié)果為集合, 而大多數(shù)程序開發(fā)語(yǔ)言使用記錄或線性處理。所以必須在兩者z間實(shí)現(xiàn)溝通,使集合數(shù) 據(jù)也可以一次一條記錄的處理。解決的辦法是使用游標(biāo)。游標(biāo)是一個(gè)很重要的概念,它 提供了一種對(duì)從表屮檢索結(jié)果進(jìn)行操作手段。能從包括多條記錄的結(jié)果集屮每次提取一 條記錄。1游標(biāo)的定義定義游標(biāo)的命令為:declare curso

47、r_name insensitive scroll cursorfor select_statementfor read onlylupdatefofcolunin_name町選項(xiàng)insensitive表明游標(biāo)的操作對(duì)應(yīng)一個(gè)內(nèi)部臨時(shí)表,在游標(biāo)的生命周期內(nèi),對(duì) 慕本表的修改操作不影響游標(biāo)的內(nèi)容,即游標(biāo)是靜態(tài)的。否則游標(biāo)的內(nèi)容將動(dòng)態(tài)地與基表 保持一致??蛇x項(xiàng)scroll表示游標(biāo)可以使用所有的提取操作,如first、last、prior、 relative> absolute等,否則只能使用next提取操作。read only表示游標(biāo)內(nèi) 的數(shù)據(jù)不允許更新。update ofcolumn.nam

48、e ,n定義在游標(biāo)屮可以修改的列。2.游標(biāo)的操作打開游標(biāo)游標(biāo)在定義以后,存儲(chǔ)在系統(tǒng)數(shù)據(jù)庫(kù)中,如杲從游標(biāo)中讀取數(shù)據(jù),則必須打開游標(biāo),打開游標(biāo)的命令為:open globalcursor_name山于游標(biāo)的作用域僅在其所在的批處理中,當(dāng)建立游標(biāo)的批處理文件執(zhí)行結(jié)束后,游 標(biāo)會(huì)被自動(dòng)釋放。因此在此打開操作前,要重新定義一次,因麗而定義的游標(biāo)已經(jīng)被釋 放。如果要保留游標(biāo)的作用域,可以在定義吋指定其作用域?yàn)間lobalo否則為localo讀取游標(biāo)中的數(shù)據(jù)當(dāng)游標(biāo)成功打開后,就可以從游標(biāo)中逐行讀取數(shù)據(jù)。使用fetch命令。語(yǔ)法為:fetch nextipriorifirstilast from cursor

49、_namc into v_namc,.nfetch命令執(zhí)行后,變gfetch_status返回被fetch語(yǔ)句執(zhí)行后游標(biāo)的狀態(tài)。 如表5所示。表5 fetch命令執(zhí)行示fetch status變量的值與狀態(tài)返回值描述0fetch語(yǔ)句成功。1fetch語(yǔ)句失敗或此行不在結(jié)果集中。2被提取的行不存在。游標(biāo)的關(guān)閉與釋放在處理完游標(biāo)中的數(shù)據(jù)后必須關(guān)閉游標(biāo)釋放數(shù)據(jù)結(jié)果。使用close命令關(guān)閉游標(biāo), 但不釋放定義的數(shù)據(jù)機(jī)構(gòu),釋放數(shù)據(jù)機(jī)構(gòu)應(yīng)使用deallocate命令。語(yǔ)法分別為: close cursor_namedeallocate cursor_name例17定義一個(gè)游標(biāo),逐行顯示employee &

50、#171;中的信息。對(duì)游標(biāo)進(jìn)行操作,最后關(guān)閉 游標(biāo)。在查詢分析器中輸入并執(zhí)行圖37所示的代碼即可完成要求。use ems;godeclare cursor_emp cursor global for select * from employee for read only; /* 定義游標(biāo)*/ declare v_cno varchar(40), v_cnamc varchar(lo),v_manager varchar(40), v_salary int, v_deptno varchar(30); /* 定義變量*/ open cursor_emp; /* 打開游標(biāo)*/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; /* 從游標(biāo)中讀収數(shù)據(jù)*/ while fetch_status = 0/*循壞處理從游標(biāo)屮讀取的數(shù)據(jù)*/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的代碼七. 數(shù)據(jù)庫(kù)的備份和恢復(fù)備份是指對(duì)sql server數(shù)據(jù)庫(kù)或事務(wù)日志進(jìn)行拷貝,如果數(shù)據(jù)庫(kù)因意外血損壞, 備份文件可以用來恢復(fù)數(shù)據(jù)庫(kù)。sql server 2000中有四種備份類型,分別是:數(shù)據(jù)庫(kù)備 份、事務(wù)日志備份、差界備份、文件和文件組備份。在使用是對(duì)以根據(jù)實(shí)際情況選擇一 種或幾種的混合應(yīng)用。1.備份設(shè)備在進(jìn)行備份以前必須創(chuàng)建備

53、份設(shè)備。備份設(shè)備是用來存儲(chǔ)數(shù)據(jù)庫(kù)、事務(wù)日志、文件 和文件組備份的存儲(chǔ)介質(zhì)。對(duì)以是磁盤、磁帶或管道。1)用企業(yè)管理器管理備份設(shè)備創(chuàng)建備份設(shè)備圖38創(chuàng)建備份設(shè)備對(duì)話框啟動(dòng)企業(yè)管理器,登錄到要增加備份設(shè)備 的服務(wù)器,打開管理文件夾,右擊備份,在彈 出菜單中選擇新建備份設(shè)備選項(xiàng),彈出備份設(shè) 備屬性一新設(shè)備對(duì)話框,如圖38所示。在名 稱欄中輸入設(shè)備的名稱,選擇設(shè)備類型,可以選擇磁盤、磁帶或管道,如果選擇文件名,則表示使用磁盤做備份,輸入文件名后,點(diǎn) 擊確定按鈕,新的備份設(shè)備即可創(chuàng)建。由于軟盤的容雖小不適合作為備份設(shè)備,通常都 選擇喚盤,但在本此實(shí)習(xí)中,由于數(shù)據(jù)庫(kù)cms的數(shù)據(jù)很少,也可以將a:盤作為備份設(shè)

54、 備。刪除備份設(shè)備在創(chuàng)建備份設(shè)備的第二步,選中備份圖標(biāo)后,在右窗格對(duì)話框中右擊要?jiǎng)h除的備份設(shè) 備,在彈出菜單中選擇刪除選項(xiàng),即可刪除該備份設(shè)備。2)用系統(tǒng)存儲(chǔ)過程管理備份設(shè)備 sp_addumpdevice (創(chuàng)建備份設(shè)備)。例:為數(shù)據(jù)庫(kù)ems創(chuàng)建一個(gè)邏輯use ems設(shè)備名為 emss 設(shè)備的實(shí)際名 exec sp_addumpdcvicc 'disk','emss', 'd:backupdevems.bak'稱為 c:backupdevems.bak 的備 份設(shè)備。代碼如圖39所示。 sp_dropdevice(刪除備份設(shè)備) 例:將數(shù)據(jù)庫(kù)e

55、ms的邏輯設(shè)備emss,刪去。 碼如圖40所示2 數(shù)據(jù)庫(kù)備份圖39創(chuàng)建備份設(shè)備emssuse emsexec sp_dropdevice 'emss'圖40刪除備份設(shè)備emss圖41創(chuàng)建sql server備份對(duì)話框sql server 2000捉供了兩種創(chuàng)建備份的途徑,即町視化方式和命令方式。1)用企業(yè)管理器管理備份啟動(dòng)企業(yè)管理器,登錄到要增加 備份設(shè)備的服務(wù)器,打開數(shù)據(jù)庫(kù)文件夾,右 擊要進(jìn)行備份的數(shù)據(jù)庫(kù)圖標(biāo),在彈出菜單中 選擇所有任務(wù)選項(xiàng),再選擇備份數(shù)據(jù)庫(kù),彈 岀sql server備份對(duì)話框,如圖41所示。 在常規(guī)頁(yè)中的備份選項(xiàng)欄中選擇備份類型, 單擊添加按鈕選擇備份設(shè)備

56、,彈出如圖42 所示對(duì)話框,在此口j以選擇文件名或備份設(shè) 備。在重寫選項(xiàng)欄,若選擇追加到媒體,則 將備份內(nèi)容添加到當(dāng)前備份z后,若選擇重 寫現(xiàn)有設(shè)備,則將原備份覆蓋。(在調(diào)度復(fù) 選框,可對(duì)備份的時(shí)間表進(jìn)行設(shè)置)。s所冇 設(shè)置完成后,點(diǎn)擊確定按鈕即可開始備份。圖42選擇設(shè)備對(duì)話框2)用命令備份數(shù)據(jù)庫(kù) 使用backup命令進(jìn)行備份操作。 備份完整數(shù)據(jù)庫(kù)例18將數(shù)據(jù)庫(kù)ems完全備份到設(shè)備 backupdevice_ems上。在驅(qū)動(dòng)器d上建立 backupdev子冃錄,并執(zhí)行如圖43所示的代碼, 即可將數(shù)據(jù)庫(kù)ems備份到指定的設(shè)備上,圖中 的第行是創(chuàng)建備份設(shè)備的命令,如果該設(shè)備已經(jīng)存在,則將其注解掉。

57、use ems/* exec sp_addumpdevice *disk','backupdevice_ems', 'd:backupdevems.bak'*/ backup database ems to backupdevice_ems圖43創(chuàng)建數(shù)據(jù)庫(kù)備份 備份事務(wù)日志use emsbackup log ems to backupdevice_ems圖44創(chuàng)建數(shù)據(jù)庫(kù)日志備份例:將數(shù)據(jù)庫(kù)ems的日志備份到設(shè)備backupdevice_ems上。執(zhí)行如圖44所示的代 碼,即可將數(shù)據(jù)庫(kù)ems備份到指定的設(shè)備 上,備份的日志與其他備份組織成一個(gè)文 件,所以,你在資源管理器中看到在 backupdev卜只有一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論