




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、網(wǎng)絡(luò)數(shù)據(jù)庫復(fù)習(xí)重點(diǎn)題型:判斷、選擇、 數(shù)據(jù)庫操作(寫程序、讀程序、程序填空)一.基本知識: 1.對SQLserver2000企業(yè)版內(nèi)存的要求。64MB以上 2.數(shù)據(jù)庫文件的種類、各自的特點(diǎn)及相關(guān)知識。 主數(shù)據(jù)庫文件.mdf:用來儲存數(shù)據(jù)庫的啟動信息,還用于儲存部分或全部數(shù)據(jù);每個數(shù)據(jù)庫有且只能有一個主數(shù)據(jù)庫文件;次要文件.ndf:用于儲存不能存儲與主數(shù)據(jù)庫文件的數(shù)據(jù);一個數(shù)據(jù)可無次要數(shù)據(jù)庫文件,也可有一個或多個;日志文件.ldf:包含用于恢復(fù)數(shù)據(jù)庫的日志信息;一個數(shù)據(jù)庫可以用一個或多個日志文件;主/次要文件的關(guān)系:如果主數(shù)據(jù)庫文件足夠大可以容納數(shù)據(jù)庫中的所有數(shù)據(jù),則無需次要數(shù)據(jù)庫,反之則需要;
2、 3.SQLserver寫日志和寫數(shù)據(jù)庫的順序。 SQL Server中采取提前寫入方式的事物,及對數(shù)據(jù)庫的修改先寫入事務(wù)日志中,再寫入數(shù)據(jù)庫; 4.UNIQUE約束、DISTINCT關(guān)鍵字、having子句的理解。UNIQUE約束(唯一性約束):唯一性約束指定一個或多個列的組合的值具有唯一性,以防止在列中輸入重復(fù)的值,其約束值可為空;由于主碼具有唯一性,因此主碼不能再設(shè)置唯一性約束;唯一性約束最多可由16個列組成;DISTINCT關(guān)鍵字:過濾重復(fù)記錄,用于返回唯一不同的值,只用于SELECT語句中;Having子句:指定組或聚合的搜索條件。HAVING只能與SELECT 語句一起使用。通常在
3、“GROUP BY”子句中使用它。如果不使用“GROUP BY”子句,HAVING 的行為與WHERE子句一樣。 5.視圖的定義、索引的分類及聚集索引的特點(diǎn),不適合創(chuàng)建索引的情況。視圖定義:不是真實(shí)存在的基礎(chǔ)表而是一張?zhí)摫恚晥D所對應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲在數(shù)據(jù)庫中,而是存儲在視圖所引用的表中索引分類:聚集索引與非聚集索引聚集索引的特點(diǎn):聚集索引的順序就是數(shù)據(jù)的物理存儲順序,具有較快的訪問速度不適合創(chuàng)建索引的情況:1.在查詢中幾乎不涉及的列。2.包含太多重復(fù)值得列,如性別字段。3.數(shù)據(jù)類型為text、ntext或image的列。4.只有較少行數(shù)的表沒有必要創(chuàng)
4、建索引。 6.數(shù)據(jù)庫的備份設(shè)備類型及相應(yīng)特點(diǎn)、備份策略的種類及相應(yīng)特點(diǎn)。備份設(shè)備:1. 磁盤備份設(shè)備(DISK):磁盤備份設(shè)備是硬盤或其他磁盤存儲媒體上的文件,與常規(guī)操作系統(tǒng)文件一樣2. 磁帶備份設(shè)備(TAPE):磁帶備份設(shè)備的用法與磁盤設(shè)備相同,但不支持遠(yuǎn)程備份 3. 命名管道備份設(shè)備(PIPE):這是微軟專門為第三方軟件供應(yīng)商提供的一個備份和恢復(fù)方式,命名管道設(shè)備不能通過企業(yè)管理器來建立和管理,若要將數(shù)據(jù)備份到一個命名管道設(shè)備,必須在BACKUP語句中提供管道的名字備份策略:1. 完全備份:備份整個數(shù)據(jù)庫,包括所有數(shù)據(jù)庫對象與事務(wù)日志2. 差異備份:僅備份上一次完全數(shù)據(jù)庫備份之后數(shù)據(jù)庫中更
5、改的部分3. 事務(wù)日志備份:記錄數(shù)據(jù)庫的更改活動信息,比如何用戶于何時對數(shù)據(jù)庫做了何種操作4. 文件和文件組備份:進(jìn)行完全數(shù)據(jù)庫備份通常耗時較長,可以僅備份數(shù)據(jù)庫文件和文件組,在時間花銷較小的范圍內(nèi)備份重要數(shù)據(jù) 7.SQLserver數(shù)據(jù)類型、通配符%、_的含義。 數(shù)據(jù)類型:整數(shù)數(shù)據(jù)類型、浮點(diǎn)數(shù)據(jù)類型、十進(jìn)制數(shù)據(jù)類型、字符數(shù)據(jù)類型、日期和時間數(shù)據(jù)類型、貨幣數(shù)據(jù)類型、二進(jìn)制數(shù)據(jù)類型、特殊數(shù)據(jù)類型 通配符含義:%:一個或多個字符 _:一個字符 補(bǔ)充: 字符列中任何單一字符 如abc表示abc三個字符中的任何一個字符 或!:表的非,如abc表示非abc三個字符中的任何一個字符8.SQLserver中
6、各系統(tǒng)數(shù)據(jù)庫各自的功能。SQL中共有master、model、msdb、northwind、pubs、tempdb 6個系統(tǒng)數(shù)據(jù)庫1.master:master 數(shù)據(jù)庫記錄 SQL Server 系統(tǒng)的所有系統(tǒng)級別信息2.model:model 數(shù)據(jù)庫用作在系統(tǒng)上創(chuàng)建的所有數(shù)據(jù)庫的模板3.msdb:msdb 數(shù)據(jù)庫供 SQL Server 代理程序調(diào)度警報(bào)和作業(yè)以及記錄操作員時使用4.northwind:Northwind Traders 示例數(shù)據(jù)庫包含一個名為 Northwind Traders 的虛構(gòu)公司的銷售數(shù)據(jù),該公司從事世界各地的特產(chǎn)食品進(jìn)出口貿(mào)易5.pubs:pubs 示例數(shù)據(jù)庫以
7、一個圖書出版公司為模型,用于演示 Microsoft® SQL Server 數(shù)據(jù)庫中可用的許多選項(xiàng)。該數(shù)據(jù)庫及其中的表經(jīng)常在文檔內(nèi)容所介紹的示例中使用6.tempdb:tempdb 數(shù)據(jù)庫保存所有的臨時表和臨時存儲過程9.特殊的數(shù)據(jù)庫角色、擁有最低權(quán)限的數(shù)據(jù)庫用戶帳戶。 特殊的數(shù)據(jù)庫角色:Public 擁有最低權(quán)限的數(shù)據(jù)庫有戶賬戶:Guest10.查看表行數(shù)及存儲空間情況使用的系統(tǒng)存儲過程。 SP_spaceused 表名11.存儲過程、視圖的優(yōu)點(diǎn)。 存儲過程優(yōu)點(diǎn):1:允許模塊化程序設(shè)計(jì);2:允許更快執(zhí)行;3:減少網(wǎng)絡(luò)流量; 4:可作為安全機(jī)制使用; 視圖優(yōu)點(diǎn):1:為用戶集中數(shù)據(jù);
8、2:掩蓋數(shù)據(jù)庫的復(fù)雜性;3:簡化用戶權(quán)限的管理;4:組織數(shù)據(jù)導(dǎo)出到其他應(yīng)用程序;12.創(chuàng)建存儲過程、視圖時各自不能使用的語句。 創(chuàng)建存儲過程中不能使用的語句:ALTER TABLE(修改表)、CREATE INDEX(創(chuàng)建索引)、CREATE TABLE(創(chuàng)建表)、ALL DBCC statements(所有的DBCC表達(dá)式)、DROP TABLE(刪除表)、DROP INDEX(刪除索引)、TRUNCATE TABLE(刪除表內(nèi)內(nèi)容)、UPDATE STATISTICS(對表或是視圖進(jìn)行更新) 創(chuàng)建視圖中不能使用的語句(在SELECT中):COMPUTE、COMPUTE BY、ORDER B
9、Y、INTO、OPTION、不能引用臨時表或表變量13.規(guī)則與CHECK約束的區(qū)別。 不同點(diǎn)相同點(diǎn)CHECK約束建表時指定一列能有多條CHECK約束只應(yīng)用于一列都是約束數(shù)據(jù)輸入的規(guī)則單獨(dú)存在一列只能有一條規(guī)則可應(yīng)用于多列二.數(shù)據(jù)庫應(yīng)用。Student (學(xué)生信息表)學(xué)號姓名性別年齡系別SnoSnameSsexSageSdept95001李勇男20CS95002劉晨女19IS95003王明女18MA95004張立男19ISCourse(課程信息表)課程號課程名學(xué)分CnoCnameCcredit1數(shù)據(jù)庫原理42高等數(shù)學(xué)23信息系統(tǒng)44操作系統(tǒng)35數(shù)據(jù)結(jié)構(gòu)4SC(選課信息表)學(xué)號課程號成績SnoCn
10、oGrade95001192950012859500238895002290950033521.創(chuàng)建數(shù)據(jù)庫。 要求在E:school中創(chuàng)建一個名為School的數(shù)據(jù)庫; 程序代碼如下:CREATE DATABASE School /*創(chuàng)建一個名為School的數(shù)據(jù)庫*/ON( NAME='School', /*以后T-SQL所引用的數(shù)據(jù)庫文件名(邏輯名)*/ FILENAME='E:schoolSchool.mdf', /*存放數(shù)據(jù)庫數(shù)據(jù)的物理地址,也叫數(shù)據(jù)庫物理名,注意帶上后綴名.mdf*/SIZE=10, /*數(shù)據(jù)庫大小,未指明單位則是MB,此數(shù)據(jù)庫大小為1
11、0MB*/ MAXSIZE=20, /*此數(shù)據(jù)庫可以增長到得最大值*/ FILEGROWTH=2 /*每次增長的值,此為2MB*/)LOG ON( NAME='School_log', FILENAME='E:schoolSchool.ldf', SIZE=10, MAXSIZE=20, FILEGROWTH=10% /*每次增長的值,此為每次增長數(shù)據(jù)庫大小的10%*/)GO2.備份數(shù)據(jù)庫。 請將上面創(chuàng)建的Schools數(shù)據(jù)庫進(jìn)行備份; 如要備份,則想要創(chuàng)建一個備份設(shè)備,我選擇在E:school下創(chuàng)建一個名為MYDISK的DISK備份設(shè)備;具體代碼如下:SP_A
12、DDUMPDEVICE 'DISK','MYDISK','E:schoolMYDISK.BAK'/*DISK為創(chuàng)建備份設(shè)備的類型;MYDISK為備份設(shè)備的邏輯名(引用名);E:schoolMYDISK.BAK為此備份設(shè)備的物理名,注意帶上后綴.BAK;*/創(chuàng)建好備份設(shè)備后,我們既可以對數(shù)據(jù)庫進(jìn)行備份,具體代碼如下:BACKUP DATABASE School TO MYDISK/*School為需要備份的數(shù)據(jù)庫,MYDISK為備份設(shè)備;本語句將數(shù)據(jù)庫School備份到了MYDISK備份設(shè)備上;*/3.創(chuàng)建表、對表中數(shù)據(jù)的插入、修改、刪除操作。(注
13、意主碼、UNIQUE、CHECK、NOT NULL約束) 1.在數(shù)據(jù)庫School中創(chuàng)建“學(xué)生信息表”,表中含有:Sno、Sname、Ssex、Sage、Sdept五列學(xué)生信息,其中,Sno為主碼且不為空,Sname、Ssex、Sdept不能為空,Sdept默認(rèn)為CS,Sage要求輸入值為15-25之間;具體代碼如下:USE SchoolGOCREATE TABLE Student /創(chuàng)建一張名為Student的表( Sno varchar(10) PRIMARY KEY NOT NULL, /*PRIMARY KEY 主鍵約束(定義主碼),NOT NULL 不為空約束;由于UNIQUE都為唯
14、一性約束,此段亦等價(jià)于:Sno varchar(10) NOT NULL UNIQUE*/ Sname varchar(20) NOT NULL, Ssex varchar(5) NOT NULL, Sage int NOT NULL CHECK(Sage>=15 AND Sage<=25), /*CHECK條件約束輸入值必須在15-25之間,此段也可寫作:Sage int NOT NULL CHECK(Sage between 15 and 25)*/ Sdept varchar(5) NOT NULL DEFAULT'CS') /*DEFAULTCS,默認(rèn)為值C
15、S*/2.依次在建立“選課信息表”和“課程信息表”;其具體代碼如下:USE SchoolGOCREATE TABLE SC( Sno varchar(10) NOT NULL, Cno int NOT NULL, Grade int NOT NULL CHECK(Grade between 0 and 100)GOCREATE TABLE Course( Cno int NOT NULL UNIQUE, Cname varchar(20) NOT NULL, Ccredit int NOT NULL)3.將學(xué)生信息表的內(nèi)容添加到學(xué)生信息表;其具體代碼如下:USE SchoolGOINSERT
16、INTO /*插入數(shù)據(jù)語句,每一條INSERT INTO語句對應(yīng)一條數(shù)據(jù)*/Student(Sno,Sname,Ssex,Sage,Sdept) /*Student為要插入數(shù)據(jù)的表,()內(nèi)為需要添加數(shù)據(jù)的列*/VALUES(95001,'李勇','男',20,'CS') /*()內(nèi)的值必須按上面()內(nèi)的列排列,非INT類型的值需要用*/INSERT INTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES(95002,'劉晨','女',19,'IS')INSERT I
17、NTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES(95003,'王明','女',18,'MA')INSERT INTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES(95004,'張立','男',19,'IS') 4.將選課信息表與課程信息表中的數(shù)據(jù)添加到各自的表中;其具體代碼如下:USE SchoolGOINSERT INTOSC(Sno,Cno,Grade)VALUES(95001,1,92)INSERT INTOSC(Sn
18、o,Cno,Grade)VALUES(95001,2,85)INSERT INTOSC(Sno,Cno,Grade)VALUES(95002,3,88)INSERT INTOSC(Sno,Cno,Grade)VALUES(95002,2,90)INSERT INTOSC(Sno,Cno,Grade)VALUES(95003,3,52)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(1,'數(shù)據(jù)庫原理',4)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(2,'高等數(shù)學(xué)',2)INSERT
19、INTOCourse(Cno,Cname,Ccredit)VALUES(3,'信息系統(tǒng)',4)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(4,'操作系統(tǒng)',3)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(5,'數(shù)據(jù)結(jié)構(gòu)',4)4.對用戶的授權(quán)、收回權(quán)限。 對用戶LIU和LIUCHEN授予在School數(shù)據(jù)庫中創(chuàng)建表和修改表的權(quán)限,并允許權(quán)限授予其他用戶;其具體代碼如下:USE SchoolGOGRANT CREATE TABLE,ALTER TABLE TO LI
20、U,LIUCHENWITH GRANT OPTION /*允許權(quán)限授予*/4.多表查詢、單表查詢。(注意分組、排序的情況) 單表查詢:查詢Student信息表中李勇的信息;具體代碼如下:USE SchoolGOSELECT Sno AS 學(xué)號,Sname AS 姓名,Ssex AS 性別,Sage AS 年齡,Sdept AS 系別/*查詢的列名,由于此為全字段查詢,如無需取別名,可以寫為:SELECT * (*代表全字段)*/FROM Student /*在那查詢,此代碼為在Student表中查詢*/WHERE Sname='李勇' /*查詢條件;此為查詢Sname為李勇*/
21、多表查詢:查詢李勇的選課信息;具體代碼如下:USE SchoolGOSELECT B.Sno AS 學(xué)號,A.Sname AS 姓名,B.Cno AS 課程號,B.Grade AS 成績FROM Student A join SC B on A.Sno=B.Sno /*多表查詢語句:join on語句,on后跟上兩張表共同字段*/WHERE A.Sname='李勇'分組排序:在SC表中查詢學(xué)生的平均成績;其具體代碼如下:USE SchoolGOSELECT Sno AS 學(xué)號,AVG(Grade) AS 平均成績FROM SCGROUP BY Sno /*GROUP BY 分組
22、;注意使用GROUP BY時SELECT中的字段必須是聚合函數(shù)或包含與GROUP BY中,不然代碼無法執(zhí)行.*/ORDER BY Sno DESC /*ORDER BY 排序,注意后面的參數(shù),不帶參數(shù)時默認(rèn)是ESC為升序排列,帶DESC時為降序排列*/6. 創(chuàng)建視圖、修改視圖、創(chuàng)建存儲過程(注意帶參數(shù)的情況)、 創(chuàng)建觸發(fā)器。 一.視圖:創(chuàng)建視圖:在School數(shù)據(jù)庫中建立一個名為AAA的視圖,用于從數(shù)據(jù)庫中檢索高等數(shù)學(xué)的選修情況;其具體代碼如下:CREATE VIEW AAAA(學(xué)號,姓名,系別,成績) /*在視圖中顯示的列名,與下面SELECT中的字段按序?qū)?yīng)*/WITH ENCRYPTIO
23、N /*加密視圖*/ASSELECT A.Sno,A.Sname,A.Sdept,B.GradeFROM Student A join SC B on A.Sno=B.Sno join Course C on B.Cno=C.CnoWHERE C.Cname='高等數(shù)學(xué)' /*注意三表的鏈接,A與B有公共字段Sno,B與C有公共字段Cno.*/WITH CHECK OPTION /*加以條件約束,詳見書:P151*/GO檢索視圖:使用AAA視圖來檢索數(shù)據(jù),要求按照學(xué)號降序排列:其具體代碼如下:USE SchoolGOSELECT *FROM AAAORDER BY 學(xué)號 DES
24、C修改視圖:1.將AAA視圖中的學(xué)號與姓名合并成 學(xué)生 “95001李勇”式樣;具體代碼如下:ALTER VIEW dbo.AAA(學(xué)生,成績) /*修改視圖格式為:ALTER VIEW 數(shù)據(jù)庫所有者.視圖名(.);在這,dbo為數(shù)據(jù)庫所有者,一般使用dbo*/ASSELECT A.Sno+' '+''+' '+A.Sname,B.GradeFROM Student A join SC B on A.Sno=B.Sno join Course C on B.Cno=C.CnoWHERE C.Cname='高等數(shù)學(xué)'2.重命名視圖名
25、:將視圖AAA重命名為AA;其具體代碼如下:SP_RENAME 'AAA','AA','OBJECT' /*OBJECT為對象類型,是由系統(tǒng)表SYSOBJECT跟蹤對象類型,可以使約束,也可以是用戶建立的表、視圖、存儲過程、觸發(fā)器以及規(guī)則*/3.刪除視圖:將視圖AA刪除;其具體代碼如下: DROP VIEW AA二.存儲過程 定義在數(shù)據(jù)庫School中的存儲過程AAA,要求需要輸入姓名來查詢關(guān)于該學(xué)生的選課信息;具體代碼如下:IF EXISTS( SELECT * FROM Sysobjects WHERE name='AAA'
26、and type='P' ) DROP PROC AAAGO /*以上段為判斷是否有同名的存儲過程存在,若存在則刪除*/CREATE PROC AAA /*建立存儲過程 AAA*/AAA CHAR(5) /*定義參數(shù)*/ ASSELECT A.Sno AS 學(xué)號,A.Sname AS 姓名,C.Cname AS 課程名,B.Grade AS 成績,C.Ccredit AS 學(xué)分FROM Student A join SC B on A.Sno=B.Sno join Course C on B.Cno=C.CnoWHERE A.Sname=AAA /*查詢條件帶參數(shù)*/GOEXE
27、C AAA '劉晨' /*調(diào)用帶參數(shù)的AAA存儲過程*/GO刪除存儲過程:刪除AAA存儲過程:DROP PROC AAA修改存儲過程與重命名存儲過程詳見書:P179-180三.觸發(fā)器 1.在數(shù)據(jù)庫School中創(chuàng)建一張名為SCOUNT的表,表內(nèi)有一列SCOUNT記錄Student表中的列數(shù),再創(chuàng)建一個名為tr_Student的觸發(fā)器,使在Student中的列數(shù)增加一行時自動將SCOUNT表中的Scount自動+1;具體代碼如下:USE SchoolGOCREATE TABLE SCOUNT(Scount int not null)GO /*以上為創(chuàng)建SCOUNT表*/INSERT INTO SCOUNTSELECT COUNT(*)FROM StudentGO /*以上為初始化表SCOUNT中的Scount的值*/IF EXISTS(SELECT name
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)音樂教學(xué):校園植物主題歌曲創(chuàng)作與演唱指導(dǎo)論文
- 運(yùn)動損傷知識普及對學(xué)生身體素質(zhì)的促進(jìn)論文
- 藝術(shù)插花室管理制度
- 花茶廠員工管理制度
- 茶葉審評室管理制度
- 陶瓷特價(jià)磚管理制度
- 財(cái)務(wù)會計(jì)課題申報(bào)書:《高職院校財(cái)務(wù)會計(jì)教學(xué)瓶頸與對策》課題申報(bào)材料
- 課題申報(bào)書:新質(zhì)生產(chǎn)力驅(qū)動下職業(yè)教育專業(yè)結(jié)構(gòu)優(yōu)化與轉(zhuǎn)型升級探索
- 建筑工程技術(shù)施工員專業(yè)介紹
- 大班社會收獲果實(shí)少兒英語幼兒教育教育專區(qū)
- 2025浙江嘉興市海寧市嘉睿人力招聘5人筆試參考題庫附帶答案詳解析版
- 黨課課件含講稿:《關(guān)于加強(qiáng)黨的作風(fēng)建設(shè)論述摘編》輔導(dǎo)報(bào)告
- GB/T 19023-2025質(zhì)量管理體系成文信息指南
- 2025中考?xì)v史高頻點(diǎn)速記大全
- 2025年北京西城區(qū)九年級中考二模英語試卷試題(含答案詳解)
- T/CECS 10378-2024建筑用輻射致冷涂料
- 多余物管理制度
- 2024北京朝陽區(qū)三年級(下)期末語文試題及答案
- DL5190.5-2019電力建設(shè)施工技術(shù)規(guī)范第5部分:管道及系統(tǒng)
- 河南省鄭州市高新區(qū)2023-2024學(xué)年下學(xué)期七年級期末英語試卷
- 國家開放大學(xué)《會計(jì)學(xué)概論》形考任務(wù)1-4參考答案
評論
0/150
提交評論