sqlserver201*數(shù)據(jù)庫(kù)總結(jié)
數(shù)據(jù)庫(kù)優(yōu)化
第一章數(shù)據(jù)庫(kù)的設(shè)計(jì)
什么是數(shù)據(jù)庫(kù)設(shè)計(jì)?
數(shù)據(jù)庫(kù)設(shè)計(jì)就是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)實(shí)體以及這些數(shù)據(jù)實(shí)體之間關(guān)系,進(jìn)行規(guī)劃和結(jié)
構(gòu)化的過(guò)程。設(shè)計(jì)數(shù)據(jù)庫(kù)
1.收集信息
2.標(biāo)識(shí)實(shí)體
3.表示每個(gè)實(shí)體需要存儲(chǔ)的詳細(xì)信息4.表示實(shí)體之間的關(guān)系繪制e-r圖
e-r可以稱(chēng)為實(shí)體-關(guān)系圖實(shí)體屬性聯(lián)系映射基數(shù)
一對(duì)一一對(duì)多
多對(duì)一多對(duì)多實(shí)體關(guān)系圖
矩形表示實(shí)體集
橢圓表示屬性菱形表示聯(lián)系集
直線(xiàn)用來(lái)連接屬性和實(shí)體集,也用來(lái)連接實(shí)體集和聯(lián)系集
三大范式
1.第一范式
第一范式的目標(biāo)就是確保每列的原子性
2.第二范式
第二范式在第一范式的基礎(chǔ)上更進(jìn)一層,其目標(biāo)是確保表中的每列都和主鍵相關(guān)。
3.第三范式
第三范式在第二范式的基礎(chǔ)上更進(jìn)一層,第三范式的目標(biāo)是確保每列都和主鍵列直接相關(guān),而不是間接相關(guān)。
第二章數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
創(chuàng)建數(shù)據(jù)庫(kù)
usemaster--引用空間go
--批處理
ifexists(select*fromsysdatabaseswherename="MySchool")dropdatabaseMySchoolcreatedatabaseMySchoolon()
name="MySchool_data",
--數(shù)據(jù)庫(kù)名
--判斷數(shù)據(jù)庫(kù)是否存在,如果存--創(chuàng)建數(shù)據(jù)庫(kù)
在就刪除
filename="D:\\MySchool_data.mdf",--數(shù)據(jù)庫(kù)的存放位置size=3,--數(shù)據(jù)庫(kù)的初始大小maxsize=100,filegrowth=1
--日志文件
--數(shù)據(jù)庫(kù)的最大值--數(shù)據(jù)庫(kù)的增長(zhǎng)率
logon()go
創(chuàng)建表
name="MySchool_log",--數(shù)據(jù)庫(kù)的日志名filename="D:\\MySchool_log.ldf",--數(shù)據(jù)庫(kù)日志文件的存放位置size=1,--數(shù)據(jù)庫(kù)日志文件的初始大小filegrowth=1--數(shù)據(jù)庫(kù)日志文件的增長(zhǎng)率
ifexists(select*fromsysobjectswherename="Grade")droptableGrade
createtableGrade()Go
--判斷該表是否存在,如果存在就刪除
--創(chuàng)建表
GradeIdintprimarykeyidentity(1,1)notnull,列明類(lèi)型主鍵自增不許為空GradeNamenvarchar(50)notnull添加約束
AltertableSubject--針對(duì)那張表添加約束修改表表名
addconstraintFK_Subjectforeignkey(GradeId)referencesGrade(GradeId)添加約束名約束類(lèi)型具體約束說(shuō)明Go
SQL編程
局部變量
declare
@xvarchar(5)
聲明變量set@x="★"select@x="★"
變量名變量類(lèi)型變量賦值(單一)
變量賦值(支持多條,接收最后一條返回值)
print@x打印輸出變量
@@error以?xún)蓚(gè)@為前綴的為全局變量
類(lèi)型轉(zhuǎn)換的兩種方式
Cast(表達(dá)式as數(shù)據(jù)類(lèi)型)(常用)
Convert(數(shù)據(jù)類(lèi)型[(長(zhǎng)度)],長(zhǎng)度[,樣式])(不常用)
邏輯控制語(yǔ)句-------------------
BeginEnd
-------------------If()
BeginEndElse
BeginEnd
-------------------
While(1=1)BeginEnd-------------------
casewhenStudentResult=60then"差"whenStudentResultbetween60and80then"中"else"優(yōu)"
第四章子查詢(xún)
簡(jiǎn)單子查詢(xún)多層嵌套+in子查詢(xún)
------------------------------------------三層子查詢(xún)---------------------------------------
selectStudentNamefromdbo.StudentwhereStudentNo=(selectStudentNofromdbo.ResultwhereStudentResult="61"andSubJectId=(
selectSubJectIdfromdbo.SubjectwhereSubjectName="C#OOP"))
selectStudentNamefromdbo.StudentwhereStudentNoin(--返回多個(gè)用inselectStudentNofromdbo.ResultwhereStudentResult="61"andSubJectId=(
selectSubJectIdfromdbo.SubjectwhereSubjectName="C#OOP"
notin子查詢(xún)你懂得
Exists子查詢(xún)
用ifexists判斷是否存在Notexists你懂得
第六章事務(wù)視圖和索引
什么是事務(wù)?
事務(wù)是單個(gè)的工作單元。如果某一事務(wù)成功。則在該事務(wù)中進(jìn)行的所有的數(shù)據(jù)更改均會(huì)提交,成為數(shù)據(jù)庫(kù)中的永久組成部分。如果事務(wù)遇到錯(cuò)誤且必須取消或者回滾,則所有數(shù)據(jù)更改均
被清除。
begintransactiondeclare@errorintset@error=0
selectdbo.Result.*intoStroyResultfromdbo.Result
innerjoindbo.StudentonResult.StudentNo=Student.StudentNoinnerjoindbo.GradeonStudent.GradeId=Grade.GradeIdwhereGradeName="y2"
set@error=@error+@@error--返回錯(cuò)誤行數(shù)
deletedbo.Resultfromdbo.Result
innerjoindbo.StudentonResult.StudentNo=Student.StudentNoinnerjoindbo.GradeonStudent.GradeId=Grade.GradeIdwhereGradeName="y2"set@error=@error+@@error
selectdbo.Student.*intoStroyStudentfromdbo.Studentinnerjoindbo.GradeonStudent.GradeId=Grade.GradeIdwhereGradeName="y2"set@error=@error+@@error
deletedbo.Studentfromdbo.Student
innerjoinGradeondbo.Grade.GradeId=dbo.Student.GradeIdwhereGradeName="y2"
set@error=@error+@@error
if(@error0)begin
print"失敗"rollbacktransactionendelse
beginprint"成功"
committransaction---提交end
---回滾
第七章存儲(chǔ)過(guò)程
什么是存儲(chǔ)過(guò)程?
存儲(chǔ)過(guò)程是sql語(yǔ)句和控制語(yǔ)句的預(yù)編譯集合。存儲(chǔ)過(guò)程優(yōu)點(diǎn)
1.模塊化程序設(shè)計(jì)
2.執(zhí)行速度快,效率高3.減少網(wǎng)絡(luò)流量
4.具有良好的安全性總結(jié)
創(chuàng)建存儲(chǔ)過(guò)程以及使用例子
ifexists(select*fromsysobjectswherename="xp_SelectStu")dropprocedurexp_SelectStugo
createprocedurexp_SelectStuas
SELECTdbo.Grade.GradeName,dbo.Student.StudentName,dbo.Student.LoginPwd,dbo.Student.Address,dbo.Student.BornDate,dbo.Student.Email
execxp_SelectStu
ifexists(select*fromsysobjectswherename="xp_inserStu")dropprocedurexp_inserStugo
createprocedurexp_inserStu@StudentNonvarchar(50),@LoginPwdnvarchar(20),@StudentNamenvarchar(50),@Sexchar(2),@GradeIdint,
@Phonenvarchar(255),@Addressnvarchar(255),@BornDatedatetime,@Emailnvarchar(50)as
insertintodbo.Studentselect
FROMdbo.GradeINNERJOIN
dbo.StudentONdbo.Grade.GradeId=dbo.Student.GradeId
@StudentNo,@LoginPwd,@StudentName,@Sex,@GradeId,@Phone,@Address,@BornDate,@Emailgoexec
xp_inserStu
"tcs2125","12345","
名字","
難","2","131313131","
你猜","201*-12-12","4564165@yahoo.com"---調(diào)用以及插入數(shù)據(jù)
刪除存儲(chǔ)
Dropprocedure存儲(chǔ)過(guò)程名
擴(kuò)展閱讀:常見(jiàn)的SQLServer數(shù)據(jù)庫(kù)試題及答案總結(jié)
常見(jiàn)的SQLServer數(shù)據(jù)庫(kù)試題及答案總結(jié)
來(lái)源:發(fā)布時(shí)間:201*-04-22瀏覽:6348人次字體:[大中小]選擇題:(20分)
1、根據(jù)關(guān)系數(shù)據(jù)基于的數(shù)據(jù)模型關(guān)系模型的特征判斷下列正確的一項(xiàng):(___)A、只存在一對(duì)多的實(shí)體關(guān)系,以圖形方式來(lái)表示。
B、以二維表格結(jié)構(gòu)來(lái)保存數(shù)據(jù),在關(guān)系表中不允許有重復(fù)行存在。C、能體現(xiàn)一對(duì)多、多對(duì)多的關(guān)系,但不能體現(xiàn)一對(duì)一的關(guān)系。D、關(guān)系模型數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)發(fā)展的最初階段。
2、在“連接”組中有兩種連接認(rèn)證方式,其中在(___)方式下,需要客戶(hù)端應(yīng)用程序連接時(shí)提供登錄時(shí)需要的用戶(hù)標(biāo)識(shí)和密碼。
A、Windows身份驗(yàn)證B、SQLServer身份驗(yàn)證C、以超級(jí)用戶(hù)身份登錄時(shí)D、其他方式登錄時(shí)3、SQLServer201*在安裝之前,應(yīng)注意的事項(xiàng):(___)
A、SQLServer201*的任何版本在安裝時(shí)都不用考慮操作系統(tǒng)的制約。B、SQLServer201*的安裝對(duì)硬件的要求不作任何限制。
C、SQLServer201*在安裝之前,必須在操作系統(tǒng)級(jí)啟用TCP/IP。D、在WindowsNTServer4.0上安裝SQLServer201*時(shí),最低的要求是必須安裝ServicePack4(SP4)以上。
4、關(guān)系數(shù)據(jù)庫(kù)中,主鍵是(1___),主鍵的建立有(2___)種方法,當(dāng)運(yùn)用Transact-SQL語(yǔ)句創(chuàng)建主鍵時(shí),可以是(3___)。
⑴A、為標(biāo)識(shí)表中唯一的實(shí)體B、創(chuàng)建唯一的索引,允許空值C、只允許以表中第一字段建立D、允許有多個(gè)主鍵的⑵A、一B、二C、三D、四⑶A、createtabletable1
(column1char(13)notnullprimary,column2intnot)onprimary;
B、altertabletable1withnotcheckadd
constraint[PK_table1]primarykeynonclustered(column1)onprimary;
C、altertabletable1column1primarykey;
5、表在數(shù)據(jù)庫(kù)中是一個(gè)非常重要的數(shù)據(jù)對(duì)象,它是用來(lái)(1___)各種數(shù)據(jù)內(nèi)容的,數(shù)據(jù)庫(kù)創(chuàng)建后就可以創(chuàng)建表了,創(chuàng)建表可以用(2___)等方法來(lái)創(chuàng)建。⑴A、顯示B、查詢(xún)C、存放D、檢索⑵A、企業(yè)管理器B、查詢(xún)分析器
C、OSQLD、企業(yè)管理器和CREATETABLE語(yǔ)句6、為數(shù)據(jù)表創(chuàng)建索引的目的是(1___),可以在創(chuàng)建表時(shí)用(2___)來(lái)創(chuàng)建唯一索引,也可以用(2___)來(lái)創(chuàng)建唯一索引。
⑴A、提高查詢(xún)的檢索性能B、創(chuàng)建唯一索引C、創(chuàng)建主鍵D、歸類(lèi)
⑵A、設(shè)置主鍵約束,設(shè)置唯一約束B(niǎo)、Createtable,CreateindexC、設(shè)置主鍵約束,CreateindexD、以上都可以
7、在Transact-SQL語(yǔ)法中,用來(lái)插入數(shù)據(jù)的命令是(___),用于更新的命令是(___)。A、INSERT,UPDATEB、UPDATE,INSERT
C、DELETE,UPDATED、CREATE,INSERTINTO8、在Transact-SQL語(yǔ)法中,SELECT語(yǔ)句的完整語(yǔ)法較復(fù)雜,但至少包括的部分(1___),使用關(guān)鍵字(2___)可以把重復(fù)行屏蔽,將多個(gè)查詢(xún)結(jié)果返回一個(gè)結(jié)果集合的運(yùn)算符是(3___),如果在SELECT語(yǔ)句中使用集合函數(shù)時(shí),一定在后面使用(4___)。
⑴A、SELECT,INTOB、SELECT,F(xiàn)ROMC、SELECT,GROUPD、僅SELECT⑵A、DISTINCTB、UNIONC、ALLC、TOP⑶A、JOINB、UNIONC、INTOC、LIKE
⑷A、GROUPBYB、COMPUTEBYC、HAVINGD、COMPUTE
9、視圖是一種常用的數(shù)據(jù)對(duì)象,它是提供(1___)和(1___)數(shù)據(jù)的另一種途徑,可以簡(jiǎn)化數(shù)據(jù)庫(kù)操作,當(dāng)使用多個(gè)數(shù)據(jù)表來(lái)建立視圖時(shí),表的連接不能使用(2___)方式,并且不允許在該語(yǔ)句中包括(3___)等關(guān)鍵字。⑴A、查看,存放B、查看,檢索C、插入,更新D、檢索,插入⑵A、外連接B、內(nèi)連接C、左連接D、右連接
⑶A、ORDERBY,COMPUTEB、ORDERBY,COMPUTE,COMPUTRBYC、ORDERBY,COMPUTEBY,GROUPBYD、GROUPBY,COMPUTEBY
10、在SQLSERVER服務(wù)器上,存儲(chǔ)過(guò)程是一組預(yù)先定義并(1___)的Transact-SQL語(yǔ)句?梢杂茫2___)來(lái)聲明游標(biāo)。
⑴A、保存B、編譯C、解釋D、編寫(xiě)⑵A、CREATECURSORB、ALTERCURSORC、SETCURSORD、DECLARECURSOR填空題:(20分)
1、更改MicrosoftSQLServer登錄的密碼的命令是_______________,2、舉例說(shuō)明其語(yǔ)法格式:_____________________________________。
3、WindowsNT授權(quán)認(rèn)證模式只適用于________________________平臺(tái),4、對(duì)于Windows95/98操作系統(tǒng)下的SQLServer系統(tǒng)將不5、適用。
6、SQLServer中索引類(lèi)型包括的三種類(lèi)型分別是_________________,_________________和____________________。
7、在SELECT語(yǔ)句的FROM子句中最多可以指8、定_______個(gè)表或視圖,9、相互之間要用________分隔,10、當(dāng)所查詢(xún)的表不11、在當(dāng)前數(shù)據(jù)庫(kù)時(shí),12、可用___________________________格式來(lái)指13、出表或視圖對(duì)象。
14、服15、務(wù)器網(wǎng)絡(luò)實(shí)用工具的目的_________________________________。
16、在當(dāng)SQLSERVER實(shí)例中有DBOA數(shù)據(jù)庫(kù),17、要將它設(shè)置成為單用戶(hù)狀態(tài),18、請(qǐng)寫(xiě)出設(shè)置命令:___________________________________________。
19、刪除表命令是:___________________________________________。
20、用SELECT進(jìn)行模糊查詢(xún)時(shí),21、可以使用_________或________匹配符,22、但要在條件值中使用____或____等通配符來(lái)配合查詢(xún)。并且,23、模糊查詢(xún)只能針對(duì)字段類(lèi)型是_________的查詢(xún)。
24、計(jì)算字段的累加和的函數(shù)是:_______,25、統(tǒng)計(jì)項(xiàng)目數(shù)的函數(shù)是:________。10、SQLSERVER中的編程語(yǔ)言就是_____________________________語(yǔ)言。判斷題(10分)
1、在CREATEINDEX語(yǔ)句中,使用CLUSTERED來(lái)建立簇索引。()2、可以在企業(yè)管理器中修改數(shù)據(jù)庫(kù)的名稱(chēng)。()3、恢復(fù)數(shù)據(jù),可以在查詢(xún)分析器中使用這樣的命令:
BACKUPDATABASEdatabase_nameFROMbackup()
4、在查詢(xún)分析器中修改帳戶(hù)時(shí)可以用系統(tǒng)存儲(chǔ)過(guò)程Sp_modibaccess。()
5、每個(gè)存儲(chǔ)過(guò)程向調(diào)用方返回一個(gè)整數(shù)返回代碼。如果存儲(chǔ)過(guò)程沒(méi)有顯式設(shè)置返回代碼的值,則返回代碼為0,表示成功。
6、在Transact-SQL語(yǔ)句中,對(duì)不符合所有標(biāo)識(shí)符規(guī)則的標(biāo)識(shí)符必須進(jìn)行分隔。7、在SQLSERVER中,觸發(fā)器的執(zhí)行是在數(shù)據(jù)的插入、更新或刪除之前執(zhí)行的。
8、在Transact-SQL語(yǔ)句的WHERE子句中,完全可以用IN子查詢(xún)來(lái)代替OR邏輯表達(dá)式。9、通配符“_”表示某單個(gè)字符。
10、因?yàn)橥ㄟ^(guò)視圖可以插入、修改或刪除數(shù)據(jù),因此視圖也是一個(gè)實(shí)在表,SQLSERVER將它保存在syscommens系統(tǒng)表中。簡(jiǎn)答題:(20分)
26、寫(xiě)出關(guān)系型數(shù)據(jù)庫(kù)的第一、第二、第三標(biāo)27、準(zhǔn)形式的各自要求。28、觸發(fā)器的類(lèi)型以及相對(duì)的語(yǔ)句命令?29、自定義函數(shù)的類(lèi)型?各自原返回值。30、用戶(hù)權(quán)限的種類(lèi)有哪些?各自的作用?分析編碼題(20分)
31、請(qǐng)使用Transact-SQL建立如下表:表名:雇員基本信息表;
字段名數(shù)據(jù)類(lèi)型寬度精度可空性要求NO_IDCHAR7NOTNULL設(shè)為主鍵NAMECHAR10NOTNULL
SEXCHAR2NOTNULL默認(rèn)值為”男”AGEINTNOTNULLDEPTVARCHAR50NULLPHONEVARCHAR20NULLNOTESVARCHAR50NULL
32、現(xiàn)有1銷(xiāo)售表,33、它們結(jié)構(gòu)如下:idint(標(biāo)識(shí)號(hào))codnochar(7)(商品編碼)codnamevarchar(30)(商品名稱(chēng))specvarchar(20)(商品規(guī)格)pricenumeric(10,2)(價(jià)格)sellnumint(銷(xiāo)售數(shù)量)
deptnochar(3)(售出分店編碼)selldatedatetime(銷(xiāo)售時(shí)間)
要求:寫(xiě)出查詢(xún)銷(xiāo)售時(shí)間段在201*-2-15日到201*-4-29之間,分店編碼是01的所有記錄。
34、在table1數(shù)據(jù)表中增加“No_id”字段,35、數(shù)據(jù)類(lèi)型char(12),36、不37、可空,38、并將其設(shè)定為UNIQUE約束,39、寫(xiě)出其命令語(yǔ)句。編程填空題:(10分)
填寫(xiě)出下列觸發(fā)器中缺少的關(guān)鍵字,使下面語(yǔ)句完整:ifupdate([lcostprice])update[b_drug_data]set[scostprice]=((select[lcostprice]frominserted
____________[codno],[lcostprice],[scostprice]
________{b_drug_data.codno}=[inserted.codno])/(select[fsco]from[b_drug_data]__________[codno],[fsco]
_________[b_drug_data.codno]=
(select[codno]frominsertedgroupby[codno])))where[b_drug_data.codno]___(select[codno]frominserted)
選擇題:(20分)注:每個(gè)選空1分
1、B,2、B,3、C,4、⑴A,⑵C,⑶B,5、⑴C,⑵D,6、⑴A,⑵C7、A,A8、⑴B,⑵A,⑶B,⑷A,9、⑴A,⑵A,⑶B,10、⑴B,⑵D填空題:(20分)注:每空1分
1、Sp_password,sp_password“12345”,”54321”,”abc”2、WindowsNT
3、唯一索引,簇索引,非簇索引4、256,逗號(hào),”數(shù)據(jù)庫(kù).所有者名稱(chēng).對(duì)象名稱(chēng)”5、為客戶(hù)端網(wǎng)絡(luò)實(shí)用工具提供參數(shù)。
6、sp_dboption‘DBOA’,’singleuse’,’true’7、droptable
8、like,notlike,”%”,”_”,字符9、Sum(),Count()10、TranSact_SQL判斷題:(10分,每題1分)
1、√2、×3、×4、×5、√6、√7、×8、×9、√10、×簡(jiǎn)答題:(20分,1、2題每題5分)
1、①第一標(biāo)2、準(zhǔn)形式:由原子值和主鍵值組成,3、數(shù)據(jù)表中的每一個(gè)字段都不4、可以再分。(同5、一數(shù)據(jù)表中同6、類(lèi)字段不7、允許重復(fù)8、出現(xiàn),9、在一個(gè)字段內(nèi)也不10、允許放置多個(gè)數(shù)據(jù)項(xiàng))
②第二標(biāo)準(zhǔn)形式:要求所有的非關(guān)鍵字段完全依賴(lài)于主鍵。(或類(lèi)似的解釋?zhuān)鄣谌龢?biāo)準(zhǔn)形式:每一個(gè)非主鍵字段列中沒(méi)有可傳遞的的依賴(lài)性。(一個(gè)非主鍵列不能依賴(lài)于另一個(gè)非主鍵列)
2、類(lèi)型:①I(mǎi)NSERT觸發(fā)器、②UPDATE觸發(fā)器、③DELETE觸發(fā)器相對(duì)應(yīng)的語(yǔ)句:①I(mǎi)NSERT語(yǔ)句、②UPDATE語(yǔ)句、③DELETE語(yǔ)句11、自定義函數(shù)類(lèi)型:①標(biāo)12、量函數(shù)返回值:?jiǎn)蝹(gè)數(shù)據(jù)值②內(nèi)嵌表值函數(shù)返回值:table,③多語(yǔ)句表值函數(shù)返回值:table4、權(quán)限類(lèi)型及作用:
①對(duì)象權(quán)限作用:決定用戶(hù)對(duì)數(shù)據(jù)庫(kù)對(duì)象所執(zhí)行的操作,包括用戶(hù)對(duì)數(shù)據(jù)庫(kù)中的表、視圖、列或存儲(chǔ)過(guò)程等對(duì)象的操作權(quán)限
②語(yǔ)句權(quán)限作用:決定用戶(hù)能否操作數(shù)據(jù)庫(kù)和創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象③隱含權(quán)限作用:控制那些只能由預(yù)定義系統(tǒng)角色的成員或數(shù)據(jù)庫(kù)對(duì)象所有者執(zhí)行的活動(dòng)。五、(20分,1題10分,2題5分,3題5分)1、(答案中的英語(yǔ)單詞不允許錯(cuò)誤,男字只能用單引號(hào)括起來(lái),否則不給分;)CREATETABLE雇員基本信息表2分
(NO_IDchar(7)notnullprimarykey,2分NAMEchar(10)notnull,1分SEXchar(2)notnulldefault‘男’,2分AGEintnotnull,1分DEPTvarchar(50)null,1分PHONEvarchar(20)null,0.5分NOTESvarchar(50)null0.5分)
2、(答案中的英語(yǔ)單詞不允許錯(cuò)誤,日期要用引號(hào)括起來(lái),否則不給分)SELECT*FROM銷(xiāo)售表
WHERE(selldate>="201*-2-15"ANDselldate()。
(A)master(B)NorthWind(C)msdb(D)bookdb
7、在SQLServer201*中,當(dāng)數(shù)據(jù)表被修改時(shí),系統(tǒng)自動(dòng)執(zhí)行的數(shù)據(jù)庫(kù)對(duì)象是()。(A)存儲(chǔ)過(guò)程(B)觸發(fā)器(C)視圖(D)其他數(shù)據(jù)庫(kù)對(duì)象8、SQLServer的字符型系統(tǒng)數(shù)據(jù)類(lèi)型主要包括()。A.Int、money、charB.char、varchar、textC.datetime、binary、intD.char、varchar、int
9、在SQLServer201*中,索引的順序和數(shù)據(jù)表的物理順序相同的索引是()。(A)聚集索引(B)非聚集索引(C)主鍵索引(D)唯一索引
10、要查詢(xún)book表中所有書(shū)名中包含“計(jì)算機(jī)”的書(shū)籍情況,可用()語(yǔ)句。(A)SELECT*FROMbookWHEREbook_nameLIKE‘計(jì)算機(jī)*’(B)SELECT*FROMbookWHEREbook_nameLIKE‘計(jì)算機(jī)%’(C)SELECT*FROMbookWHEREbook_name=‘計(jì)算機(jī)*’
(D)SELECT*FROMbookWHEREbook_name=‘計(jì)算機(jī)%’
11、SELECT語(yǔ)句中與HAVING子句通常同時(shí)使用的是()子句。
A.ORDERBYB.WHEREC.GROUPBYD.無(wú)需配合12、要?jiǎng)h除mytable表中的myindex索引,可以使用()語(yǔ)句。(A)DROPmyindex
(B)DROPmytable.myindex
(C)DROPINDEXmyindex(D)DROPINDEXmytable.myindex
13、下列選項(xiàng)都是系統(tǒng)提供的存儲(chǔ)過(guò)程,其中可以進(jìn)行視圖信息的查詢(xún)是()。(A)sp_helptext(B)sp_helpindex(C)sp_bindrule(D)sp_rename14、SQLServer提供的單行注釋語(yǔ)句是使用()開(kāi)始的一行內(nèi)容。A.“/*”B.“--”C.“{”D.“/”15、以下運(yùn)算符中優(yōu)先級(jí)最低的是()。
(A)+(加)(B)=(等于)(C)like(D)=(賦值)
二、填空題(每空2分,共15空)
1、數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)分別是數(shù)據(jù)的結(jié)構(gòu)化、、數(shù)據(jù)獨(dú)立性和。2、在數(shù)據(jù)庫(kù)的表中,是指表中的某一列,該列的值唯一標(biāo)識(shí)一行。3、SQLServer201*的文件包括:數(shù)據(jù)文件(.mdf或.ndf)和。4、在SQLServer201*中,要訪(fǎng)問(wèn)某個(gè)數(shù)據(jù)庫(kù),除了需要有一個(gè)登錄帳號(hào)外,還必須有一個(gè)該數(shù)據(jù)庫(kù)的帳號(hào)。
5、,簡(jiǎn)稱(chēng)DBMS,它是指幫助用戶(hù)建立、使用和管理數(shù)據(jù)庫(kù)的軟件系統(tǒng)。
6、在SQLServer201*中,Unicode標(biāo)準(zhǔn)的全稱(chēng)是。7、
SQLServer201*
和。
8、在T-SQL語(yǔ)言中,若要修改某張表的結(jié)構(gòu),應(yīng)該使用的修改關(guān)鍵字是;若要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù),應(yīng)該使用的語(yǔ)句是。9、游標(biāo)的概念包括兩個(gè)部分,它們是和。10、一個(gè)事務(wù)的操作必須是具備以下四個(gè)屬性:原子性、、和
提供備份數(shù)據(jù)庫(kù)的兩種方式是永久性。
三、程序閱讀題(共2題)
1、閱讀下面的程序段,然后簡(jiǎn)述該程序段所完成的功能。(5分)Begin
Waitfortime’15:43’CreateViewmy_view
AsSelectorder_date,book_number,book_idFromorderform
Wherebook_number!<25End
該程序段的功能是:
。2、下面程序段的功能是:在數(shù)據(jù)庫(kù)中判斷是否存在名為my_proc的存儲(chǔ)過(guò)程,若存在,則刪除之,然后創(chuàng)建同名的存儲(chǔ)過(guò)程,該存儲(chǔ)過(guò)程的功能是向book表的book_id、book_name、price和publisher字段插入數(shù)據(jù)。閱讀并回答以下問(wèn)題:(10分)UsebookdbGo
Ifexists(SelectnameFrom①
Wherename=’my_proc’andtype=’②’)
DropProcmy_procGo
CreateProcmy_proc
@aint,@bchar(50),@cfloat,@dpublisher③
InsertIntostudent(book_id,book_name,price,publisher)Values(@a,@b,@c,@d)Go
問(wèn)題:(1)填寫(xiě)該程序段中空白處的內(nèi)容:①②③
(四、編程題(共4題)
有一個(gè)“學(xué)生-課程”數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中包括三個(gè)表:(1)“學(xué)生”表Student由學(xué)號(hào)(Sno)、姓名(Sname)、性別(Ssex)、年齡(Sage)、所在系(Sdept)五個(gè)屬性組成,可記為:Student(Sno,Sname,Ssex,Sage,Sdept)Sno為關(guān)鍵字。
(2)“課程”表Course由課程號(hào)(Cno)、課程名(Cname)、先修課號(hào)(Cpno)、學(xué)分(Ccredit)四個(gè)屬性組成,可記為:Course(Cno,Cname,Cpno,Ccredit)Cno為關(guān)鍵字。
(3)“學(xué)生選課”表SC由學(xué)號(hào)(Sno)、課程號(hào)(Cno)、成績(jī)(Grade)三個(gè)屬性組成,可記為:SC(Sno,Cno,Grade)(SNO,CNO)為關(guān)鍵字。
2)任寫(xiě)一條調(diào)用該存儲(chǔ)過(guò)程的語(yǔ)句:。
完成下列操作:
1、請(qǐng)把其中建立“學(xué)生”表Student的語(yǔ)句寫(xiě)下來(lái),表Student是由學(xué)號(hào)Sno、姓名Sname、
性別Ssex、年齡Sage、所在系Sdept五個(gè)屬性組成,其中學(xué)號(hào)屬性不能為空,并且其值是唯一的。
2、在student表中查詢(xún)Sdept是‘計(jì)算機(jī)’的學(xué)生的所有信息,并按Sno降序排列。(5
分)
3、在以上三個(gè)表中查詢(xún)Ccredit為5并且Grade大于60的學(xué)生的學(xué)號(hào)、姓名和性別。(7
分)
4、為Course表創(chuàng)建一個(gè)名稱(chēng)為my_trig的觸發(fā)器,當(dāng)用戶(hù)成功刪除該表中的一條或多條記錄時(shí),觸發(fā)器自動(dòng)刪除SC表中與之有關(guān)的記錄。
(注:在創(chuàng)建觸發(fā)器之前要判斷是否有同名的觸發(fā)器存在,若存在則刪除之。)(9分)
SQLServer數(shù)據(jù)庫(kù)試卷5參考答案
一、選擇題(每題2分,共30分)
CCDDABBBABCBACD二、填空題(每空2分,共30分)
1、數(shù)據(jù)共享、可控冗余度2、主鍵3、日志文件4、用戶(hù)5、數(shù)據(jù)庫(kù)管理系統(tǒng)6、統(tǒng)一字符編碼標(biāo)準(zhǔn)7、備份數(shù)據(jù)庫(kù)、備份事務(wù)日志8、ALTER、CREATEDATABASE9、游標(biāo)結(jié)果集、游標(biāo)位置10、一致性、隔離性三、程序閱讀題(第一題5分,第二題10分,共15分)
1、系統(tǒng)在15:43分為orderform表中訂購(gòu)數(shù)量book_number大于25本的訂購(gòu)信息的order_date、book_number和book_id三個(gè)字段創(chuàng)建一個(gè)名為my_view的視圖。(答題意思差不多即可得滿(mǎn)分,其他情況酌情給分)
2、(1)①Sysobjects②P③As(每空2分)
(2)Execmy_proc7,’SQLServer201*教程’,38,‘北京科海集團(tuán)公司’或Execmy_proc@a=7,@b=’SQLServer201*教程’,@c=38,@d=’北京科海集團(tuán)公司’(4分)注:該小題不管怎樣調(diào)用該存儲(chǔ)過(guò)程,Exec和my_proc不可少,也不可多用Proc關(guān)鍵字;若不全對(duì)則酌情給分。四、編程題(共4題,共25分)
1、(共6分)
CREATETABLEStudent(1分)(SnoCHAR(5)NOTNULLUNIQUE,(1分)SnameCHAR(20),(1分)SsexCHAR(1),(1分)SageINT,(1分)SdeptCHAR(15));(1分)2、select*fromstudentwhereSdept=’計(jì)算機(jī)’orderbySnodesc(5分)
1分
1分
1分
2分
3、(共7分)方法1:
selectstudent.Sno,Sname,Ssexfromstudent,course,sc
(1分)(1分)
where(student.Sno=sc.Sno)and(course.Cno=sc.Cno)
and(course.Ccredit=5)and(sc.Grade>60)(1+1+1+1+1分)
(1分)
(2分+2分)
(1分+1分)
方法2:
selectstudent.Sno,Sname,Ssex
Onstudent.Sno=sc.Sno
4、(共9分)
Ifexists(SelectnameFromsysobjects
Wherename=’my_trig’andtype=’tr’)(整個(gè)If語(yǔ)句1分)
Droptriggermy_trigGo
Createtriggermy_trigOnCourseForDeleteAs
(0.5分)
(0.5分)
(1分)(0.5分)(1分)
fromstudentInnerJoin(scInnerJoincourseOncourse.Cno=sc.Cno)where(course.Ccredit=5)and(sc.Grade>60)
(0.5分)(1分)
(1分+2分)
DeleteFromscGo
WhereSnoin(SelectSnoFromDeleted)
友情提示:本文中關(guān)于《sqlserver201*數(shù)據(jù)庫(kù)總結(jié)》給出的范例僅供您參考拓展思維使用,sqlserver201*數(shù)據(jù)庫(kù)總結(jié):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。