A.?dāng)?shù)據(jù)共享 B.數(shù)據(jù)完整性
C. 數(shù)據(jù)冗余很高 D.數(shù)據(jù)獨(dú)立性高
2. 目前( )數(shù)據(jù)庫(kù)系統(tǒng)已逐漸淘汰了網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù),成為當(dāng)今最為流行的商用數(shù)據(jù)庫(kù)系統(tǒng)。
A.關(guān)系 B.面向?qū)ο?span lang="EN-US"> C.分布
3. 數(shù)據(jù)庫(kù)設(shè)計(jì)中的概念結(jié)構(gòu)設(shè)計(jì)的主要工具是( )。
A.?dāng)?shù)據(jù)模型 B.E—R模型 C.新奧爾良模型 D.概念模型
4. ( )是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它屬于系統(tǒng)軟件,它為用戶或應(yīng)用程序提供訪問(wèn)數(shù)據(jù)庫(kù)的方法。數(shù)據(jù)庫(kù)在建立、使用和維護(hù)時(shí)由其統(tǒng)一管理、統(tǒng)一控制。
A.DBMS B.DB C.DBS D.DBA
5. 在SQL中,建立視圖用的命令是 ( )。
A.CREATE SCHEMA B.CREATE TABLE
C.CREATE VIEW D.CREATE INDEX
6. SQL語(yǔ)言中,條件“年齡BETWEEN 20 AND 30”表示年齡在20至30之間,且( )。
A.包括20歲和30歲 B.不包括20歲和30歲
C.包括20歲但不包括30歲 D.包括30歲但不包括20歲
8. 在MS SQL Server中,用來(lái)顯示數(shù)據(jù)庫(kù)信息的系統(tǒng)存儲(chǔ)過(guò)程是( )。
A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb
9. SQL語(yǔ)言中,刪除一個(gè)表的命令是( )。
A. DELETE B. DROP C. CLEAR D. REMOVE
10. SQL的視圖是從( )中導(dǎo)出的。
A.基本表 B. 視圖 C. 基本表或視圖 D. 數(shù)據(jù)庫(kù)
二、判斷題(每空1分,共10分)
1. "在那遙遠(yuǎn)的地方" 是SQL中的字符串常量嗎?
2. "11.9" 是SQL中的實(shí)型常量嗎?
3. 語(yǔ)句 select 16%4, 的執(zhí)行結(jié)果是: 0 嗎?
4. "2005.11.09" 是SQL中的日期型常量嗎?
5. ¥2005.89 是SQL中的貨幣型常量嗎?
6. 語(yǔ)句 select 15/2 的執(zhí)行結(jié)果是: 7.5 嗎?
7. '李白'>'杜甫' 比較運(yùn)算的結(jié)果為真嗎?
8. 在事務(wù)中包含create database語(yǔ)句嗎?
9. 創(chuàng)建唯一性索引的列可以有一些重復(fù)的值?
10.固定數(shù)據(jù)庫(kù)角色:db_datawriter 的成員刪除本數(shù)據(jù)庫(kù)內(nèi)任何表中的數(shù)據(jù)嗎?
三、填空題(每空1分,共20分)
1. 數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)的___________、_________和_________三級(jí)模式結(jié)構(gòu)。
2. SQL Server 2000局部變量名字必須以_________開(kāi)頭,而全局變量名字必須以_________開(kāi)頭。
3. 語(yǔ)句 select ascii('C'), char(68), len(' 你 是BigTiger ') 的執(zhí)行結(jié)果是: _________、_________和_________。
4. 語(yǔ)句 select upper('beautiful') , ltrim (' 我心中的太陽(yáng)') 的執(zhí)行結(jié)果是: ____________和___________。
5. 關(guān)系運(yùn)算主要有________、________、________。
6. 選擇運(yùn)算是根據(jù)某些條件對(duì)關(guān)系做______分割;投影是根據(jù)某些條件對(duì)關(guān)系做______分割。
7. 索引的類(lèi)型主要有_ _和_ __。
8. 在SQL Server 2000中,數(shù)據(jù)庫(kù)對(duì)象包括數(shù)據(jù)表、______、______、觸發(fā)器、規(guī)則、默認(rèn)和用戶自定義的數(shù)據(jù)類(lèi)型等。
四、簡(jiǎn)述題(每小題5分,共10分)
1. 簡(jiǎn)述使用游標(biāo)的步驟。
2. 簡(jiǎn)述SQL Server 2000的安全性管理機(jī)制,涉及登錄賬號(hào)、用戶、角色以及權(quán)限分配。
五、設(shè)計(jì)題(共50分)
現(xiàn)有關(guān)系數(shù)據(jù)庫(kù)如下:
數(shù)據(jù)庫(kù)名:學(xué)生成績(jī)數(shù)據(jù)庫(kù)
學(xué)生表(學(xué)號(hào) char(6),姓名,性別,民族,身份證號(hào))
課程表(課號(hào) char(6),名稱)
成績(jī)表(ID,學(xué)號(hào),課號(hào),分?jǐn)?shù))
用SQL語(yǔ)言實(shí)現(xiàn)下列功能的sql語(yǔ)句代碼:
1. 創(chuàng)建數(shù)據(jù)庫(kù)[學(xué)生成績(jī)數(shù)據(jù)庫(kù)]代碼(2分);
2. 創(chuàng)建[課程表]代碼(2分);
課程表(課號(hào) char(6),名稱)
要求使用:主鍵(課號(hào))、非空(名稱)
3. 創(chuàng)建[學(xué)生表]代碼(6分);
學(xué)生表(學(xué)號(hào) char(6),姓名,性別,民族,身份證號(hào))
要求使用:主鍵(學(xué)號(hào))、默認(rèn)(民族)、非空(民族,姓名)、唯一(身份證號(hào))、檢查(性別)
4. 創(chuàng)建[成績(jī)表]代碼(4分);
成績(jī)表(ID,學(xué)號(hào),課號(hào),分?jǐn)?shù))
要求使用:主鍵(課號(hào))、外鍵(成績(jī)表.學(xué)號(hào),成績(jī)表.課號(hào))、檢查(分?jǐn)?shù)),自動(dòng)編號(hào)(ID)
5. 將下列課程信息添加到課程表的代碼(8分)
課號(hào) 課程名稱
100001 大學(xué)語(yǔ)文
100002 大學(xué)英語(yǔ)
100003 西班牙語(yǔ)
修改 課號(hào)為100002的課程名稱:實(shí)用英語(yǔ)
刪除 課號(hào)為100003的課程信息
6. 寫(xiě)出創(chuàng)建:成績(jī)表視圖(學(xué)號(hào),姓名,課號(hào),課程名稱,分?jǐn)?shù))的代碼;(4分)
7. 寫(xiě)出創(chuàng)建:某門(mén)課程成績(jī) 內(nèi)嵌表值函數(shù)以及檢索的代碼;(6分)
檢索:所有修 實(shí)用英語(yǔ) 這門(mén)學(xué)生的成績(jī);
8. 寫(xiě)出創(chuàng)建:某門(mén)課程高低均分 計(jì)算某門(mén)課程成績(jī)最高分、最低分、平均分 存儲(chǔ)過(guò)程以及執(zhí)行的代碼;(6分)
執(zhí)行:所有修 實(shí)用英語(yǔ) 這門(mén)學(xué)生的最高分、最低分、平均分;
9. 檢索姓李的女同學(xué)的情況:姓名、性別、民族。(2分)
10. 檢索有一門(mén)或一門(mén)以上課程成績(jī)大于等于90分的所有學(xué)生的信息,包括學(xué)號(hào)、姓名。(4分)
11. 設(shè)置一SQL身份驗(yàn)證的賬戶:登錄名:U領(lǐng)導(dǎo),密碼:888,數(shù)據(jù)庫(kù)用戶名:U讀者,權(quán)限:可查詢查詢本數(shù)據(jù)庫(kù)中所有表、視圖、內(nèi)嵌表值函數(shù)的數(shù)據(jù)。請(qǐng)寫(xiě)出賬戶、權(quán)限設(shè)置的T_SQL腳本。(6分)
《SQL數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)教程與實(shí)訓(xùn)》試題參考答案
一、1.C 2.A 3. B 4.A 5.C 6.A 7. 8.D 9.B 10.C
二、1. N 2.N 3.Y 4.N 5.N 6.N 7. Y 8.N 9.N 10.Y
三、1. 外模式、模式、內(nèi)模式。
2. @,@@
3. 67, D, 12
4. BEAUTIFAL, 我心中的太陽(yáng)
5. 選擇、投影、連接。
6. 水平, 垂直
7. 聚簇索引 非聚簇索引
8. 視圖、存儲(chǔ)過(guò)程
四、簡(jiǎn)述題
1. 簡(jiǎn)述使用游標(biāo)的步驟。
(1) 聲明游標(biāo):declare 游標(biāo)名 cursor for select語(yǔ)句;
(2) 打開(kāi)游標(biāo):open 游標(biāo)名;
(3) 處理數(shù)據(jù): fetch delete update
(4) 關(guān)閉游標(biāo):close 游標(biāo)名;
(5) 釋放游標(biāo):deallocate 游標(biāo)名;
2. 要點(diǎn):
1. 計(jì)算機(jī)的連接
2. SQL Server服務(wù)器登錄(登錄、固定服務(wù)器角色)
3. 數(shù)據(jù)庫(kù)的訪問(wèn)(用戶/角色:固定/自定義數(shù)據(jù)庫(kù)角色)
4. 數(shù)據(jù)表(視圖)的訪問(wèn)(select insert update delete)
5. 存儲(chǔ)過(guò)程/內(nèi)嵌表值函數(shù)的訪問(wèn)(execute/select)
6. 數(shù)據(jù)表(視圖)中列(字段)的訪問(wèn)(select update)
五、設(shè)計(jì)題
1.
create database [學(xué)生成績(jī)數(shù)據(jù)庫(kù)]
go
use [學(xué)生成績(jī)數(shù)據(jù)庫(kù)]
go
2. create table 學(xué)生表
([學(xué)號(hào)] char(6) primary key,
[姓名] nchar(4) not null,
[性別] nchar(1) check([性別] in ('男', '女')),
[民族] nchar(8) default '漢族' not null,
[身份證號(hào)] char(18) unique
)
3. create table 課程表
([課號(hào)] char(6) primary key,
[名稱] char(40) not null
)
4. create table 成績(jī)表
(ID integer IDENTITY(1, 1),
[學(xué)號(hào)] char(6) references 學(xué)生表(學(xué)號(hào)),
[課號(hào)] char(6) references 課程表(課號(hào)),
[分?jǐn)?shù)] integer check([分?jǐn)?shù)] between 0 and 100)
)
5. insert 課程表 values('100001', '大學(xué)語(yǔ)文')
insert 課程表 values('100002', '大學(xué)英語(yǔ)')
insert 課程表 values('100003', '西班牙語(yǔ)')
update課程表 set 名稱='實(shí)用英語(yǔ)' where 課號(hào)='100002'
delete課程表 where 課號(hào)='100003'
6. create view [成績(jī)表視圖] as
select 成績(jī)表.學(xué)號(hào),姓名,成績(jī)表.課號(hào),名稱 課程名稱,分?jǐn)?shù)
from 成績(jī)表,學(xué)生表,課程表
where 成績(jī)表.學(xué)號(hào)=學(xué)生表.學(xué)號(hào)
and 成績(jī)表.課號(hào)=課程表.課號(hào)
create view [成績(jī)表視圖] as
select 成績(jī)表.學(xué)號(hào),姓名,成績(jī)表.課號(hào),名稱 課程名稱,分?jǐn)?shù)
from 成績(jī)表 join 學(xué)生表 on 成績(jī)表.學(xué)號(hào)=學(xué)生表.學(xué)號(hào)
join 課程表 on 成績(jī)表.課號(hào)=課程表.課號(hào)
7. create function [某門(mén)課程成績(jī)](@課程名 varchar(40))
returns table as
return (select 學(xué)號(hào),姓名,課程名稱,分?jǐn)?shù) from 成績(jī)表視圖
where 課程名稱=@課程名)
create function [某門(mén)課程成績(jī)](@課程名 varchar(40))
returns table as
return (select * from 成績(jī)表視圖
where 課程名稱=@課程名)
select * from [某門(mén)課程成績(jī)]('實(shí)用英語(yǔ)')
8. create procedure [某門(mén)課程高低均分]
@課程名 varchar(40) as
select 課程名稱, 最高分=max(分?jǐn)?shù))、最低分=min(分?jǐn)?shù))、平均分=avg(分?jǐn)?shù))
from 成績(jī)表視圖
where 課程名稱 = @課程名
execute [某門(mén)課程高低均分] '實(shí)用英語(yǔ)'
9. select 姓名, 性別, 民族 from 學(xué)生表 where 姓名 like '李%' and 性別='女'
10. select 學(xué)號(hào), 姓名 from 學(xué)生表 where學(xué)號(hào) in (select distinct 學(xué)號(hào) from 成績(jī)表 where分?jǐn)?shù)>=90)
11.
use [學(xué)生成績(jī)數(shù)據(jù)庫(kù)]
exec sp_addlogin 'U領(lǐng)導(dǎo)', NULL, '學(xué)生成績(jī)數(shù)據(jù)庫(kù)', '簡(jiǎn)體中文'
exec sp_password NULL, '888', 'U領(lǐng)導(dǎo)'
exec sp_grantdbaccess 'U領(lǐng)導(dǎo)', 'U讀者'
exec sp_addrolemember 'db_datareader', 'U讀者'
use [學(xué)生成績(jī)數(shù)據(jù)庫(kù)]
exec sp_addlogin 'U領(lǐng)導(dǎo)', '888', '學(xué)生成績(jī)數(shù)據(jù)庫(kù)'
exec sp_grantdbaccess 'U領(lǐng)導(dǎo)', 'U讀者'
exec sp_addrolemember 'db_datareader', 'U讀者'
聯(lián)系客服