《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(A 卷)_第1頁
《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(A 卷)_第2頁
《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(A 卷)_第3頁
《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(A 卷)_第4頁
《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(A 卷)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(A卷)

一、單項選擇題(每小題1分,共10分)

1.下列四項中,不屬于數(shù)據(jù)庫特點的是(c)。

A.數(shù)據(jù)共享B.數(shù)據(jù)完整性

C.數(shù)據(jù)冗余很高D.數(shù)據(jù)獨立性高

2.下列四項中,不屬于SQL2000實用程序的是(D)。

A.企業(yè)管理器B.查詢分析器

C.服務(wù)管理器D.媒體播放器

3.SQLServer安裝程序創(chuàng)建4個系統(tǒng)數(shù)據(jù)庫,下列哪個不是(C)系統(tǒng)數(shù)據(jù)庫。

A.masterB.model

C.pubD.msdb

4.(A)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它屬于系統(tǒng)軟件,它為用戶

或應(yīng)用程序提供訪問數(shù)據(jù)庫的方法。數(shù)據(jù)庫在建立、使用和維護時由其統(tǒng)一管理、統(tǒng)一控

制。

A.DBMSB.DB

C.DBSD.DBA

5.在SQL中,建立表用的命令是(B)。

A.CREATESCHEMAB.CREATETABLE

C.CREATEVIEWD.CREATEINDEX

6.SQL語言中,條件年齡BETWEEN15AND35表示年齡在15至35之間,且(A)。

A.包括15歲和35歲

B.不包括15歲和35歲

C.包括15歲但不包括35歲

D.包括35歲但不包括15歲

7.下列四項中,不正確的提法是(C)。

A.SQL語言是關(guān)系數(shù)據(jù)庫的國際標準語言

B.SQL語言具有數(shù)據(jù)定義、查詢、操縱和控制功能

C.SQL語言可以自動實現(xiàn)關(guān)系數(shù)據(jù)庫的規(guī)范化

D.SQL語言稱為結(jié)構(gòu)查詢語言

8.在MSSQLServer中,用來顯示數(shù)據(jù)庫信息的系統(tǒng)存儲過程是(D)。

A.sp_dbhelpB.sp_db

C.sphelpD.sphelpdb

9.SQL語言中,刪除表中數(shù)據(jù)的命令是(A)。

A.DELETEB.DROP

C.CLEARD.REMOVE

10.SQL的視圖是從(C)中導(dǎo)出的。

A.基本表B.視圖

C.基本表或視圖D.數(shù)據(jù)庫

二、判斷題(每空1分,共10分)

1/在那遙遠的地方'是SQL中的字符串常量嗎?Y

2.'11.9'是SQL中的實型常量嗎N

3.select16%4,的執(zhí)行結(jié)果是:4嗎?N

4.2005.11.09是SQL中的日期型常量嗎?N

5.¥2005.89是SQL中的貨幣型常量嗎?N

6.select25/2的執(zhí)行結(jié)果是:12.5嗎?N

7/岳飛'>"文天祥’比較運算的結(jié)果為真嗎?Y

8.一個表可以創(chuàng)建多個主鍵嗎?N

9.創(chuàng)建唯一性索引的列可以有一些重復(fù)的值?N

10.固定數(shù)據(jù)庫角色:db_datareader的成員能修改本數(shù)據(jù)庫內(nèi)表中的數(shù)據(jù)嗎?N

三、填空題(每空1分,共20分)

1.數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)的—外模式―、「模式—和內(nèi)模式三級模式結(jié)構(gòu)。

2.SQLServer2000局部變量名字必須以_@_開頭,而全局變量名字必須以____@@

開頭。

3.語句selectascii('D'),char(67)的執(zhí)行結(jié)果是:68和C

4.語句selectrtrim('我心中的太陽')+lower('Beautiful')的執(zhí)行結(jié)果是:

我心中的太陽beautiful_____。

5.選擇運算是根據(jù)某些條件對關(guān)系做「水平一分割;投影是根據(jù)某些條件對關(guān)系做—

垂直—分割。

6.關(guān)系運算主要有—選擇一、一投影—和連接。

7.完整性約束包括—實體一完整性、—域—完整性、參照完整性和用戶定義完整性。

8.在SQLServer2000中,數(shù)據(jù)庫對象包括—表一、—視圖——、觸發(fā)器、過程、歹索弓I、

約束、規(guī)則、默認和用戶自定義的數(shù)據(jù)類型等。

9.語句selectday('2004-4-6'),len('我們快放假了.')的執(zhí)行結(jié)果是:—6和

7。

10.語句selectround(13.4321,2),round(13.4567,3)的執(zhí)行結(jié)果是:—13.4300—和

_13.4570—。

四、簡答題(每小就5分,共10分)

1.在SQLServer2000中,使用視圖的好處是什么?

(1)為用戶集中需要的數(shù)據(jù),簡化了數(shù)據(jù)的用戶操作:

(2)對用戶隱藏了數(shù)據(jù)庫設(shè)計的復(fù)雜性;

(3)簡化用戶權(quán)限的管理

(4)組織數(shù)據(jù)導(dǎo)出到其它應(yīng)用程序;

2.ftSQLServer2000中,用戶訪問表/視圖、列的權(quán)限是什么?

1.數(shù)據(jù)表/視圖(selectinsertupdatedelete)

2.歹!](字段)的訪問(selectupdate)

五、設(shè)計題(共50分)

現(xiàn)有關(guān)系數(shù)據(jù)庫如下:

數(shù)據(jù)庫名:我班同學(xué)數(shù)據(jù)庫

同學(xué)表(學(xué)號char(6),姓名,性別,年齡,民族,身份證號,宿舍號)

宿舍表(宿舍號char(6),宿舍電話)

用SQL語言實現(xiàn)下列功能的sql語句代碼:

1.創(chuàng)建數(shù)據(jù)庫[我班同學(xué)數(shù)據(jù)庫]代碼(2分)o

createdatabase我班同學(xué)數(shù)據(jù)庫

go

use我班同學(xué)數(shù)據(jù)庫

go

2.創(chuàng)建數(shù)據(jù)表[宿舍表]代碼(3分);

宿舍表(宿舍號char(6),宿舍電話)

要求使用:主鍵(宿舍號)、宿舍電話:以633開頭的7位電話號碼

createtable宿舍表

(宿舍號char(6)primarykey,

宿舍電話char(7)check(宿舍電話like'633[0-9][0-9][0-9][0-9?))

3.創(chuàng)建數(shù)據(jù)表[同學(xué)表]代碼(6分);

同學(xué)表(學(xué)號char(6),姓名,性別,年齡,民族,身份證號,宿舍號)

要求使用:主鍵(學(xué)號)、外鍵(宿舍號)、默認(民族)、非空(民族,姓名,年齡)、唯一

(身份證號)、檢查(性別)

createtable同學(xué)表

(學(xué)號char(6)primarykey,

姓名char(8)notnull,

性別char(2)check(性別in('男,,女)),

年齡int,

民族char(8)default'漢族'notnull,

身份證號char(l8)unique,

宿舍號char(6)references宿舍表(宿舍號)

)

4.將下列宿舍信息添加到宿舍表的代碼(8分)

宿舍號宿舍電話

1016331157

1026331777

修改宿舍號為101的宿舍電話:6331158

刪除宿舍號為102的宿舍信息

insert宿舍表values。01','6331157')

insert宿舍表values"02;'6331777)

update宿舍表set宿舍電話=’6331158'where宿舍號='宿1'

delete宿舍表where宿舍號='102'

5.創(chuàng)建視圖[同學(xué)表視圖]代碼(5分);

同學(xué)表視圖(學(xué)號,姓名,性別,年齡,民族,身份證號,宿舍號,宿舍電話)

createview同學(xué)表視圖as

select學(xué)號,姓名,性別,年齡,民族,身份證號,同學(xué)表.宿舍號,宿舍電話

from同學(xué)表,宿舍表

where同學(xué)表.宿舍號=宿舍表.宿舍號

6.從同學(xué)表視圖中查詢姓張的女同學(xué)的姓名、性別、宿舍電話。(4分)

select姓名,性別,宿舍電話

from同學(xué)表視圖

where姓名like'張%'and性別='女'

7.從同學(xué)表中查詢女同學(xué)的最大年齡、最小年齡、平均年齡。(5分)

select最大年齡=max(年齡),最小年齡=min(年齡),平均年齡=avg(年齡)

from同學(xué)表

where性別二'女'

8.創(chuàng)建帶參數(shù)的存儲過程[某宿舍同學(xué)]:姓名,性別,宿舍電話

執(zhí)行此過程,查詢‘101'宿舍情況(8分)

createprocedure某宿舍同學(xué)@宿舍號varchar(6)

as

select姓名,性別,宿舍電話

from同學(xué)表視圖

where宿舍號=@宿舍號

go

execute某宿舍同學(xué)'101'

《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(B卷)

一、單項選擇題

1.數(shù)據(jù)庫應(yīng)用系統(tǒng)是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、(D)和

用戶構(gòu)成。

A.DBMSB.DB

C.DBSD.DBA

2.目前(A)數(shù)據(jù)庫系統(tǒng)已逐漸淘汰了網(wǎng)狀數(shù)據(jù)庫和層次數(shù)據(jù)庫,成為當今最為流行的

商用數(shù)據(jù)庫系統(tǒng)。

A.關(guān)系B.面向?qū)ο驝.分布

3.在關(guān)系運算中,選取符合條件的元組是(D)運算。

A.除法B.投影

C.連接D.選擇

4.數(shù)據(jù)庫設(shè)計中的邏輯結(jié)構(gòu)設(shè)計的任務(wù)是把(D)階段產(chǎn)生的概念數(shù)據(jù)庫模式變換為

邏輯結(jié)構(gòu)的數(shù)據(jù)庫模式。

A.需求分析B.物理設(shè)計

C.邏輯結(jié)構(gòu)設(shè)計D.概念結(jié)構(gòu)設(shè)計

5.一個規(guī)范化的關(guān)系至少應(yīng)當滿足(C)的要求。

A.一范式B.二范式

C.三范式D.四范式

6.在實際數(shù)據(jù)庫設(shè)計中,“學(xué)號”通常作為(C)存在。

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)存儲

C.數(shù)據(jù)項目D.處理過程

7.在SQL語言中,建立存儲過程的命令是(A)

A、CREATEPROCEDUREB、CREATERULE

C、CREATEDURED、CREATEFILE

8.運行命令SELECTASCII('Alklk')的結(jié)果是(D)o

A.48B.32

C.90D.65

9.在SQL中,建立視圖用的命令是(C)。

A.CREATESCHEMAB.CREATETABLE

C.CREATEVIEWD.CREATEINDEX

10卜列哪個不是sql數(shù)據(jù)庫文件的后綴。C

A..mdfB..Idf

C..tifD..ndf

二、判斷題

1.連接、選擇和投影三種關(guān)系運算具有相同的結(jié)果。N

2.數(shù)據(jù)的安全性主要防范的對象是合法用戶。N

3.數(shù)據(jù)庫設(shè)計前只需選擇數(shù)據(jù)庫分析設(shè)計人員。N

4.恢復(fù)是利用冗余數(shù)據(jù)來重建數(shù)據(jù)庫。Y

5.定義外鍵級級聯(lián)是為了保證相關(guān)表之I'HJ數(shù)據(jù)的一致性嗎?Y

6.創(chuàng)建唯一性索引的列可以有一些重復(fù)的值?N

7.存儲過程的輸出結(jié)果可以傳遞給一個變量。Y

8.視圖具有與表相同的功能,在視圖上也可以創(chuàng)建觸發(fā)器。N

9.能在游標中刪除數(shù)據(jù)記錄。Y

10.SQLServer2000不具有數(shù)據(jù)的導(dǎo)入與導(dǎo)出功能。N

三、填空題

1.數(shù)據(jù)庫三個要素是數(shù)據(jù)結(jié)構(gòu)、一數(shù)據(jù)操作—和—完整性約束——。

2.語句selectyear(,1931-9-18")的執(zhí)行結(jié)果是__1931__。

3.一域完整性—是指保證指定列的數(shù)據(jù)具有正確的數(shù)據(jù)類型、格式和有效的數(shù)據(jù)范圍。

4.觸發(fā)器是特殊類型的存儲過程,它能在任何試圖改變表中由觸發(fā)器保護的數(shù)據(jù)時執(zhí)

行。

5.事務(wù)(Transaction)可以看成是由對數(shù)據(jù)庫的若干操作組成的一個單元,這些操作要么

—都完成—,要么「都取消「(如果在操作執(zhí)行過程中不能完成其中任一操作)。

6.SQLServer2000采用的身份驗證模式有windows身份驗證.模式和一混合一模式。

7.用戶訪問SQLServer數(shù)據(jù)庫時,經(jīng)過了兩個一身份—驗證和一權(quán)限一驗證安全驗證階

段。

8.SQLServer2000提供的數(shù)據(jù)庫備份方法有—完整一數(shù)據(jù)庫備份和一差異—數(shù)據(jù)庫備

份、一事務(wù)日志一備份和「文件和文件組—備份。

9.SQLServer代理主要由—操作員_、—作業(yè)一和警報來組成。P7

10.語句selectfloor(17.4),floor(-214.2),round(13.4382,2),

round(T8.4562,3)的執(zhí)行結(jié)果是:_17一、_-215一、」3.4400一和_-18.4560_。P42

四、設(shè)計題

1.計算1+2+3+……+100的和,并使用PRINT顯示計算結(jié)果。

DECLARE@1int,@sumint,@csumchar(10)

SELECT@1=1,@sum=0

WHILE@I<=

BEGIN

SELECT@sum=

SELECT@I=@I+1

END

SELECT@csum=convert(char(10),@sum)

'1+2+3+……+100='+@csum

100@sum+@iprint

2.使用SQL語句創(chuàng)建一個班級表CLASS,屬性如下:CLASSNO,DEPARTNO,CLASSNAME;類

型均為字符型;長度分別為8、2、20且均不允許為空。

CREATECLASS

(CLASSNO{8)NOTNULL,

DEPARTNOCHAR(2)NOTNULL,

CLASSNAMECHAR()NOTNULL

tablechar20

3.聲明一個名為CRSCOURSE的游標,并利用游標遍歷,顯示整個結(jié)果集。

USEXK

DECLARE@COUNOVARCHAR(3)f@COUNAMEVARCHAR(20)

FORSELECTCOUNO,COUNAMEFROMCOURSEORDERBYCOUNO

FETCHNEXTFROMCRSCOURSEINTO@COUNO,@COUNAME

WHILE@@FETCH_STATUS=0

BEGIN

PRINT,課程號:,+@COUNO+,課程名稱:,+@CouName

FETCHNEXTFROMCRSCOURSEINTO@COUNO,@COUNAME

END

DEALLOCATECRSCOURSSE

Declarecrscoursecursoropencrscourseclosecrscourse

4,使用SQL語句在XK數(shù)據(jù)庫中創(chuàng)建一個名為VSTUDENT的視圖,該視圖僅查看“STUDENT'

表中“00電子商務(wù)”班的學(xué)生信息。

USEXK

CREATEV_STUDENT

AS

SELECT*

FROM____________

WHERECLASSNO='20000001'

viewstudent

5.使用SQL語句在XK數(shù)據(jù)庫中創(chuàng)建一個名為P_STUDENT的存儲過程,該存儲過程返回

“STUDEND”表中所有班級代碼為200000001的記錄。

USEXK

CREATEP_STUDENT

AS

SELECT*

______________STUDENT

WHERECLASSNO='20000001'

procedurefrom

6.創(chuàng)建觸發(fā)器TEST,要求每當在STUDENT表中修改數(shù)據(jù)時,將向客戶端顯示一條“記錄

已修改”的消息。

USEXK

ONSTUDENT

AS

PRINT、記錄已修改,

createtriggertestforupdate

7.定義事務(wù)向[學(xué)生]數(shù)據(jù)庫的[選課表]中插入學(xué)號二’20030021,的多條記錄,并檢驗若

報名課程超過4門,則回滾事務(wù),即報名無效,否則成功提交。

選課表(學(xué)號,課號,報名號)

假設(shè)要插入的記錄為以下三條:

'20030021','01',1*2003002'02',2'20030021','03',3

根據(jù)以上要求編寫程序,并指出本題定義的事務(wù)是否成功提交。

Use學(xué)生

Begintransaction

Insert選課表(學(xué)號,課程號,報名號)values('200300211‘01’,1)

Insert選課表(學(xué)號,課程號,報名號)values('2003002151025,2)

Insert選課表(學(xué)號,課程號,報名號)values('20030021;’03’,3)

Declare@numint

Set@num=(selectcount(*)from選課表where學(xué)號='20030021,)

If@num>4

begin

Rollbacktransaction

Print'超過報名門數(shù)!,

end

Else

Begin

Committransaction

Print'報名成功!,

end

go

本題定義的事務(wù)成功提交。

《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(C卷)

一、單項選擇題

1.SQLServer系統(tǒng)中的所有服務(wù)器級系統(tǒng)信息存儲于哪個數(shù)據(jù)庫(A)。

A.masterB.model

C.tempdbD.msdb

2.下列標識符可以作為局部變量使用(C)。

A.MyvarB.Myvar

C.@MyvarD.@Myvar

3.在SQLSERVER服務(wù)器上,存儲過程是一組預(yù)先定義并(B)的Transact-SQL語句。

A.保存B.編譯

C.解釋D.編寫

4.在T-SQL語言中,修改表結(jié)構(gòu)時,應(yīng)使用的命令是(C)

A.UPDATEB.INSERT

C.ALTERD.MODIFY

5.SQLServer2000中表查詢的命令是(B)。

A.USEB.SELECTC.UPDATED.DROP

6.SQLServer2000中表更新數(shù)據(jù)的命令是(C)。

A.USEB.SELECTC.UPDATED.DROP

7.在SQLServer2000中,下列變量名正確的是(A)。

A.@sumB.jC.sumD.4kk

8.建立索引的目的是(D)o

A.降低SQLServer數(shù)據(jù)檢索的速度

B.與SQLServer數(shù)據(jù)檢索的速度無關(guān)

C.加快數(shù)據(jù)庫的打開速度

D.提高SQLServer數(shù)據(jù)檢索的速度

9.用于求系統(tǒng)日期的函數(shù)是(B)o

A.YEAR()B.GETDATE()C.COUNT()D.SUM()

10.向用戶授予操作權(quán)限的SQL語句是(D)o

A.CTEATEB.REVOKEC.SELECTD.GRANT

二、判斷題

1.因為通過視圖可以插入.修改或刪除數(shù)據(jù),因此視圖也是一個實在表,SQLSERVER將

它保存在syscommens系統(tǒng)表中。N

2.可以在企業(yè)管理器中修改數(shù)據(jù)庫的名稱。N

3.恢復(fù)數(shù)據(jù),可以在查詢分析器中使用這樣的命令:BACKUPDATABASEdatabase_name

FROMbackupoN

4.設(shè)計好的數(shù)據(jù)庫管理系統(tǒng)在投入使用后出現(xiàn)問題由使用方負責。N

5.DELETE語句只是刪除表中的數(shù)據(jù),表本身依然存在數(shù)據(jù)庫中Y

6.缺省情況下,所創(chuàng)建的索引是非聚集索引?Y

7.在數(shù)據(jù)庫中建立的索引越多越好。N

8.觸發(fā)器是可在程序中被調(diào)用執(zhí)行。N

9.游標中可發(fā)插入數(shù)據(jù)記錄。N

10.sa能否創(chuàng)建和刪除數(shù)據(jù)庫角色?Y

三、填空題

1.在SQL中,createview、alterview和dropview命令分別為_建立—、—修改—和—

刪除—視圖的命令。

2.語句selectupper('beautiful')+ltrim('我心中的太陽')的執(zhí)行結(jié)果是:

BEAUTIFAL我心中的太陽。

3.語句SELECT(7+3)*4-17/(4-(8-6))+99部1的執(zhí)行結(jié)果是35。

4.—視圖__是由一個或多個數(shù)據(jù)表(基本表)或視圖導(dǎo)出的虛擬表。

5.實體完整性—用于保證數(shù)據(jù)庫中數(shù)據(jù)表的每一個特定實體的記錄都是惟一的。

6.索引的類型有__聚集索引和非聚集索引。

7.一存儲過程一是已經(jīng)存儲在SQLServer服務(wù)器中的一組預(yù)編譯過的Transact-SQL語句。

8.觸發(fā)器定義在一個表中,當在表中執(zhí)行—insert_、update一或delete操作時被觸發(fā)

自動執(zhí)行。

9.事務(wù)的ACID屬性是指—原子—性、一一致—性、—獨立—性和「持久—性。

10.數(shù)據(jù)庫管理系統(tǒng)的安全性通常包括兩個方面,一是指數(shù)據(jù)—訪問的安全性,二是

指數(shù)據(jù)__運行—的安全性。

11.SQLServer代理主要由__作業(yè)—、操作員和—警報—來組成。

四、簡述題

1.存儲過程與觸發(fā)器有什么不同?

答:觸發(fā)器是特殊類型的存儲過程,它能在任何試圖改變表中由觸發(fā)器保護的數(shù)據(jù)時執(zhí)

行。觸發(fā)器主要通過事件進行觸發(fā)而被執(zhí)行,觸發(fā)器不能直接調(diào)用執(zhí)行,也不能被傳送和接

受參數(shù),而存儲過程可以通過存儲過程名被直接調(diào)用。觸發(fā)器與表有關(guān),存儲過程與表無關(guān).

2.什么是游標?游標的使用步驟。

答:游標是允許用戶能夠從select語句查詢的結(jié)果集中,逐條逐行地訪問記錄,可以按

照自己的意愿逐行地顯示、修改或刪除這些記錄的數(shù)據(jù)訪問處理機制。

使用步驟:聲明游標,打開游標,讀取游標,關(guān)閉游標,釋放游標

3.什么是事務(wù)?

答:事務(wù)(Transaction)可以看成是由對數(shù)據(jù)庫的若干操作組成的一個單元,如果這些操作在執(zhí)

行過程中任何一條操作不能正常完成的話,就取消單元中的所有操作,要么單元中的所有操

作都正常完成。

五、設(shè)計題(每小題5分,共40分)

現(xiàn)有關(guān)系數(shù)據(jù)庫如下:

數(shù)據(jù)庫名:學(xué)生成績數(shù)據(jù)庫

學(xué)生表(*學(xué)號,姓名,性別,民族)

課程表(*課程號,課程名稱,任課教師)

成績表(*學(xué)號,*課程號,分數(shù))

用SQL語言實現(xiàn)下列功能的sql語句代碼:

1.創(chuàng)建數(shù)據(jù)庫[學(xué)生成績數(shù)據(jù)庫]代碼(2分);

createdatabase學(xué)生成績數(shù)據(jù)庫

go

use學(xué)生成績數(shù)據(jù)庫

go

2.創(chuàng)建[課程表]代碼(2分);

課程表(課號char(6),名稱)

要求使用:主鍵(課號)、非空(名稱)

createtable課程表

(課程號char(6)primarykey,

課程名稱char(40)notnull

任課教師char(4)

3.創(chuàng)建[學(xué)生表]代碼(2分);

學(xué)生表(學(xué)號char(6),姓名,性別,民族)

要求使用:主鍵(學(xué)號)、默認(民族)、非空(民族,姓名)、檢查(性別)

createtable學(xué)生表

(學(xué)號char(6)primarykey,

姓名nchar(4)notnull,

性別nchar(l)check([性別]in('男','女')),

民族nchar(8)default'漢族'notnull

)

4.創(chuàng)建[成績表]代碼(2分);

成績表(學(xué)號,課程號,分數(shù))

要求使用:外鍵(成績表.學(xué)號,成績表.課程號)、檢查(分數(shù))

createtable成績表

(學(xué)號char(6)references學(xué)生表(學(xué)號),

課程號char(6)references課程表(課號),

成績integercheck([成績]between0and100)

5.將下列課程信息添加到課程表中

課號課程名稱

100001大學(xué)語文

100002大學(xué)英語

insert課程表values('100001'大學(xué)語文')

insert課程表values('100002','大學(xué)英語')

insert課程表values('100003'西班牙語')

6.寫出創(chuàng)建成績表視圖(學(xué)號,姓名,課程號,課程名稱,成績)的代碼;

createview成績表視圖(學(xué)號,姓名,課程號,課程名稱,成績)as

select學(xué)生表.學(xué)號,姓名,課程表.課程號,課程名稱,成績

from成績表,學(xué)生表,課程表

where成績表.學(xué)號=學(xué)生表.學(xué)號AND成績表.課程號=課程表.課程號

7.寫出創(chuàng)建分數(shù)存儲過程用于計算某門課程成績最高分、最低分、平均分

createprocedure分數(shù)

@課程名varchar(16)as

select課程名稱,最高分=max(分數(shù))、最低分=min(分數(shù))、平均分=2丫8(分數(shù))

from成績表視圖

where課程名稱=@課程名

8.檢索姓李的女同學(xué)的信息:姓名、性別、民族。

select姓名,性別,民族from學(xué)生表where姓名like'李%'and性別二’女'

六.設(shè)計題(每小題5分,共40分)

有一個[學(xué)生課程]數(shù)據(jù)庫,數(shù)據(jù)庫中包括三個表:

學(xué)生表Student由學(xué)號(Sno)>姓名(Sname)性別(Ssex)、年齡(Sage)>所在系(Sdept)

五個屬性組成,記為:Student(Sno,Sname,Ssex,Sage,Sdept),Sno為關(guān)鍵字。

課程表Course由課程號(Cno)、課程名(Cname)、先修課號(Cpno)、學(xué)分(Ccredit)四個

屬性組成,記為:Course(Cno,Cname,Cpno,Ccredit)Cno為關(guān)鍵字。

成績表SG由學(xué)號(Sno)、課程號(Cno)、成績(Grade)三個屬性組成,記為:

SG(Sno,Cno,Grade)(SNO,CNO)為關(guān)鍵字。

用SQL語言實現(xiàn)下列功能:

1.建立學(xué)生表Student,其中學(xué)號屬性不能為空,并且其值是唯一的。

CREATETABLEStudent

(SnoCHAR(5)NOTNULLUN工QUE,

SnameCHAR(20),

SsexCHAR(2),

SageINT,

SdeptCHAR(15))

2.向Student表增加“入學(xué)時間(Scome)”歹U,其數(shù)據(jù)類型為日期型。

ALTERTABLEStudentADDScomeDATETIME

3.查詢選修了3號課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按分數(shù)的降序排列。

SELECTSno,Grade

FROMSG

WHERECno=,3,

ORDERBYGradeDESC

4.查詢學(xué)習(xí)1號課程的學(xué)生最高分數(shù)、平均成績。

SELECTMAX(Grade),AVG(Grade)

FROMSC

WHERECno=,l,

5.查詢與“李洋”在同一個系學(xué)習(xí)的學(xué)生。

SELECTSno,Sname,Sdept

FROMStudent

WHERESdeptIN

(SELECTSdeptFROMStudent

WHERESname=’李洋')

6.將計算機系全體學(xué)生的成績置零。

UPDATESG

SETGrade=0

WHERESnoin

(SELECTSnoFROMStudent

WHERESdept='計算機系1)

7.刪除學(xué)號為05019的學(xué)生記錄。

DELETEFROMStudent

WHERESno=,05019,

8.刪除計算機系所有學(xué)生的成績記錄。

DELETEFROMSG

WHERESnoin

(SELECTSnoFROMStudent

WHERESdept='計算機系')

《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(D卷)

一、單項選擇題

1.下列四項中說法不正確的是(c)

A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫中的數(shù)據(jù)可以共享

C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復(fù)D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性

2.下列哪個不是SQLServer服務(wù)(D

A.SQLServerB.SQLServerAgent

C.MSDTCD.PWS

3.下列哪個不是數(shù)據(jù)庫對象(A)O

A.數(shù)據(jù)類型B.規(guī)則

C.默認D.用戶

4.SQLServer對象的完整名稱不包括下面哪個(D)。

A.服務(wù)器名B.數(shù)據(jù)庫名

C.對象名D.文件夾名

5.數(shù)據(jù)定義語言的縮寫詞為(A)。

A.DDLB.DCL

C.DMLD.DBL

6.SQL語言中,條件表示年齡在40至50之間的表達式為(B)。

A.IN(40,50)B.BETWEEN40AND50

C.BETWEEN40OR50D.BETWEEN40,50

7.表示職稱為副教授同時性別為男的表達式為(B)

A.職稱='副教授’0R性別='男'B.職稱='副教授'AND性別='男'

C.BETWEEN'副教授'AND'男'D.IN('副教授‘,‘男‘)

8.下面哪個不是SQLServer的合法標識符(B)。

A.al2B.12a

C.@al2D.#qq

9.SQL語言中,不是邏輯運算符號的(D)。

A.ANDB.NOT

C.ORD.XOR

10.下面哪個函數(shù)是屬于字符串運算的(C)。

A.ABSB.SIN

C.STRD.ROUND

二、判斷題

1.視圖和表是完全一樣的?N

2.SQLServer允許用戶自定義類型?Y

3.惟一鍵就是主鍵?N

4.SQLServer不允許字段名為漢字?N

5.$2005.89是SQL中的貨幣型常量嗎?Y

6.語句select15%2的執(zhí)行結(jié)果是:7.5嗎?N

7.在SQLServer系統(tǒng)中,數(shù)據(jù)信息和日志信息不能放在同一個操作系統(tǒng)文件中。Y

8.視圖本身沒有保存數(shù)據(jù),而是保存一條查詢語句。Y

9.設(shè)置惟一約束的列不允許為空?N

10.主鍵可以是復(fù)合鍵嗎?Y

三、填空題

1.創(chuàng)建、修改和刪除表命令分別是createtable、—alter_table和—drop_table。

2.SQLServer2000以#—開頭的標識符,表示臨時表或過程;局部變量名字必須

以?一開頭,而全局變量名字必須以@@—開頭。

3.leftjoin運算是____左外連接一

4.SELECTDATEADD(day,10,'2005-12-22)結(jié)果是2006-01-01。

5.R0UND()函數(shù)的是一四舍五入函數(shù)。

6.檢索姓名字段中含有'娟'的表達式為姓名like—'%娟%'。

四、簡述題

1.流程控制語句包括哪些語句,他們各自的作用是什么?

1)IF...ELSE是條件判斷語句

2)BEGIN...END能將多個SQL語句組合成一個語句塊,并視為一個單元處理

3)CASE多情況語句,將其中一個符合條件的結(jié)果表達式返回

4)WHILE...COUNTINUE...BREAK設(shè)置循環(huán)語句,C0UNTINUE可以終止本次循環(huán),開始下一次

循環(huán),BREAK中斷循環(huán),跳出循環(huán)外

5)GOTO可以使程序跳到指定的標有標識符的位置處繼續(xù)執(zhí)行

6)WAITF0R暫時停止執(zhí)行SQL語句、語句塊或者存儲過程

7)RETURN無條件的終止一個查詢、存儲過程或批處理

2.請敘述T-SQL的查詢操作中包含幾種表之間的聯(lián)接操作,并說明他們之間的區(qū)別。

T-SQL支持的聯(lián)接操作有:內(nèi)聯(lián)接、完全外聯(lián)接、左外聯(lián)接、右外聯(lián)接和交叉聯(lián)接

內(nèi)聯(lián)接:是默認的聯(lián)接類型,它指定只有與ON條件匹配的表行才能包含在結(jié)果集中,

不匹配的丟棄

左外聯(lián)接:返回匹配的行,并加上JOIN關(guān)鍵字左側(cè)表的所有行

右外聯(lián)接:返回匹配的行,并加上JOIN關(guān)鍵字右側(cè)表的所有行

完全外聯(lián)接:不滿足ON條件的行和滿足條件的匹配的行都輸出到結(jié)果集中

交叉聯(lián)接:返回的結(jié)果集是來自一個表的一行與來自另一個表的每一行相匹配,因此結(jié)

果集大小就是兩個表大小不一的乘積。

3.使用哪些存儲過程可以查看存儲過程信息?

Sp_help;Sp_helptext;Sp_depends;Sp_stored_procedures

4.觸發(fā)器與一般存儲過程的主要區(qū)別是?

觸發(fā)器是種特殊類型的存儲過程,它不同與般的存儲過程。一般的存儲過程通過過

程名稱被直接調(diào)用,而觸發(fā)器主要是通過事件進行觸發(fā)而執(zhí)行。觸發(fā)器是一個功能強大

的工具,它與表格緊密相連,在表中數(shù)據(jù)發(fā)生變化時自動強制執(zhí)行。

5.觸發(fā)器的類型有哪些?

after觸發(fā)器:這種類型的觸發(fā)器將在數(shù)據(jù)變動(insert、update和delete操作)完成以后才

被觸發(fā)??梢詫ψ儎拥臄?shù)據(jù)進行檢查,如果發(fā)現(xiàn)錯誤,將拒絕接受或回滾數(shù)據(jù)。after觸發(fā)

器只能在表上定義。在同一個數(shù)據(jù)表上可以創(chuàng)建多個after觸發(fā)器.

Insteadof觸發(fā)器:Insteadof觸發(fā)器是SQLServer2000中新增加的功能。這種類型的觸

發(fā)器將在數(shù)據(jù)變動以前被觸發(fā),并取代變動數(shù)據(jù)的操作(insert、update和delete操作),而

去執(zhí)行觸發(fā)器定義的操作。Insteadof觸發(fā)器可以在表上或視圖上定義。在表上或視圖上,

每個insert,update和delete語句最多可以定義?個Insteadof觸發(fā)器。

6.使用觸發(fā)器有哪些優(yōu)點?

觸發(fā)器可以通過數(shù)據(jù)庫中的相關(guān)表進行層疊更改;觸發(fā)器是自動執(zhí)行的。

觸發(fā)器可以強制執(zhí)行。

7.SQLServer2000數(shù)據(jù)庫的備份有幾種類型?

a.完全數(shù)據(jù)庫備份:是對所有數(shù)據(jù)庫操作和事務(wù)II志中的事務(wù)進行備份

b.差異備份:是對最近一次數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化進行備份

c.事務(wù)日志備份:是對數(shù)據(jù)庫發(fā)生的事務(wù)進行備份

d.數(shù)據(jù)庫文件和文件組備份

8.何為備份設(shè)備?

在進行備份以前必須創(chuàng)建或指定備份設(shè)備,備份設(shè)備是用來存儲數(shù)據(jù)庫、事務(wù)日志或文

件和文件組備份的存儲介質(zhì),可以是硬盤、磁帶或管道。

五、設(shè)計題

現(xiàn)有關(guān)系數(shù)據(jù)庫如下:

數(shù)據(jù)庫名:醫(yī)院數(shù)據(jù)庫

醫(yī)生表(編號,姓名,性別,出生日期,職稱)

病人表(編號,姓名,性別,民族,身份證號)

病歷表(ID,病人編號,醫(yī)生編號,病歷描述)

用SQL語言實現(xiàn)下列功能的sql語句代碼:

1.創(chuàng)建上述三表的建庫、建表代碼;

要求使用:主鍵(師醫(yī)生表.編號,病人表.課號)、外鍵(病歷表.醫(yī)生編號,病歷表.病

人課號)、非空(職稱,姓名)、檢查(性別),自動編號QD)(16分)

createdatabase醫(yī)院數(shù)據(jù)庫

use醫(yī)院數(shù)據(jù)庫

go

createtable醫(yī)生表

(編號char(6)primarykey,

姓名char(4)notnull,

性別char(1)check([性別]in「男l(wèi),女,)),

出生日期datetime,

職稱char(18)notnull)

createtable病人表

(課號char(6)primarykey,

姓名char(4)notnull,

性別char(l)check([性別]in「男l(wèi),女')),

民族char(10)z

身份證號char(18)notnull

)

createtable病歷表

(IDIDENTITY(lz1),

病人編號char(6)references病人表(學(xué)號),

醫(yī)生編號char(6)references醫(yī)生表(編號),

病歷描述varchar(1000))

2.將下列醫(yī)生信息添加到醫(yī)生表的代碼

編號姓名性別出生日期職稱

100001杜醫(yī)生男1963-5-18副主任醫(yī)師

100002郭醫(yī)生女1950-7-26副主任醫(yī)師

100003劉醫(yī)生男1973-9-18醫(yī)師

修改編號為100002的醫(yī)生職稱為'主任醫(yī)師'

刪除編號為100003的醫(yī)生信息(8分)

insert醫(yī)生表values('100001'杜醫(yī)生','男','1963-5-18'副主任醫(yī)師')

insert醫(yī)生表values('1000021,郭醫(yī)生I,女If1950-7-26f,1副主

任醫(yī)師D

insert醫(yī)生表values01000031'劉醫(yī)生I,男I11973-9-181,,醫(yī)師

update醫(yī)生表set職稱=,主任醫(yī)師,where編號=,100002,

delete醫(yī)生表where編號=’100003,

3.寫出創(chuàng)建:醫(yī)療表視圖(醫(yī)生編號,姓名,病人姓名,病歷)的代碼;(4分)

createview醫(yī)療表視圖as

selectbr.姓名,ys?姓名,yl.病歷from病人表asbrjoin病歷表asyl

onbr.編號=yl.病人編號

join醫(yī)生表asys

onyl.醫(yī)生編號=丫S.編號

4.寫出所有病人編號、姓名、病歷、以及病人所對應(yīng)的醫(yī)生編號的查詢語句;(4分)

Selectbr.編號,br.姓名,br.病歷,yl.醫(yī)生編號

from病人表brleftjoin病歷表yl

onbr,編號=yl.病人編號

5.寫出查詢1970年以前出生的醫(yī)生(4分)。

select*from醫(yī)生表where出生日期〈'1970-01-01'

6.檢索有病人的醫(yī)生信息。(4分)

select編號,姓名,性別,出生日期,職稱from醫(yī)生表

where編號in(select醫(yī)生編號from醫(yī)療表)

《SQLServer數(shù)據(jù)庫管理與設(shè)計》試題(E卷)

一、選擇題

1.關(guān)于索引描述錯誤的是以下的哪一項(A)

A、表中的任何列都可以添加索引B、創(chuàng)建索引的列最好不要含有許多重復(fù)的值

C、一般不給很少使用的列添加索引D、在ORDERBY中使用的列適合建索引

2.關(guān)于觸發(fā)器敘述正確的是(A)

A、觸發(fā)器是自動執(zhí)行的,可以在一定條件下觸發(fā)

B、觸發(fā)器不可以同步數(shù)據(jù)庫的相關(guān)表進行級聯(lián)更改

C、當定義一個觸發(fā)器時,可以不用指定觸發(fā)器的名字

D、存儲過程不屬于存儲過程

3.SQLServer支持在線備份,但在備份過程中,不允許執(zhí)行的操作是(D)

(1)、創(chuàng)建或刪除數(shù)據(jù)庫文件(2)、創(chuàng)建索引

(3)、執(zhí)行非日志操作(4)、自動或手工縮小數(shù)據(jù)庫或數(shù)據(jù)庫文件大小

A、(1)B、(1)(2)

C、(1)(2)(3)D、⑴⑵⑶⑷

4.MSSQL$6、61'是(D)

A、數(shù)據(jù)庫B、數(shù)據(jù)庫系統(tǒng)

C、數(shù)據(jù)處理系統(tǒng)D、數(shù)據(jù)庫管理系統(tǒng)

5.下面關(guān)于WHERE語句和HAVING語句的描述正確的是(C)

A.WHERE和HAVING語句都引導(dǎo)搜索條件,它們是等價的

B、WHERE語句和HAVING語句不能同時使用在?個查詢操作中

C、HAVING語句用于組或者聚合函數(shù)的搜索條件,它常用于GROUPBY子句后

D、WHERE語句的效率要高于HAVING語句,所以最好用WHERE語句引導(dǎo)搜索條件

6.數(shù)據(jù)庫中存放兩個關(guān)系:教師(教師編號,姓名)和課程(課程號,課程名,教師編號),

為快速查出某位教師所講授的課程,應(yīng)該(C)

A、在教師表上按教師編號建索引B,在課程表上按課程號建索引

C、在課程表上按教師編號建索引D、在教師表上按姓名建索引

7.如果要修改表的結(jié)構(gòu),應(yīng)該使用SQL語言的命令(C)

A、UPDATETABLEB、MODIFYTABLE

C、ALTERTABLED、CHANGETABLE

8.已知員工和員工親屬兩個關(guān)系,當員工調(diào)出時,應(yīng)該從員工關(guān)系中刪除該員工的元組,

同時在員工親屬關(guān)系中刪除對應(yīng)的親屬元組。在SQL語言中定義這個完整性約束的短語

是(C)

A、INSTEADOFDELETEB、INSTEADOFDROP

C、AFTERDELETED、AFTERUPDATE

9.安裝MSSQLServer時,系統(tǒng)自動建立幾個數(shù)據(jù)庫,其中有一個數(shù)據(jù)庫被刪除后,不影

響系統(tǒng)的正常運行,這個數(shù)據(jù)庫是(D)

A^master數(shù)據(jù)庫B、model數(shù)據(jù)庫

C、tempdb數(shù)據(jù)庫D、pubs數(shù)據(jù)庫

10.對于數(shù)據(jù)庫的管理,SQLServer的授權(quán)系統(tǒng)將用戶分成四類,其中權(quán)限最大的用戶是

(B)

A、一般用戶B,系統(tǒng)管理員

C、數(shù)據(jù)庫擁有者D、數(shù)據(jù)庫對象擁有者

11.下面的哪一種不是Transact-SQL的系統(tǒng)數(shù)據(jù)類型(C)

A、intB、realC、numberD、char

12.數(shù)據(jù)庫的并發(fā)操作可能帶來的問題包括(A)

A、丟失更新B、數(shù)據(jù)獨立性會提高

C、非法用戶的使用D、增加數(shù)據(jù)冗余度

13.在Transact-SQL的模式匹配中,使用哪個符號表示匹配任意長度的字符串(C)

A、*B、_C、%D、?

14.關(guān)于SQLServer2000縮小數(shù)據(jù)庫的操作敘述正確的是(A)

A

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論