當前位置:首頁 » 編程語言 » sqlserver2005習題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver2005習題

發布時間: 2023-08-23 13:59:33

『壹』 我正在學習sql server 2005,我想找點練習題。

我這倒是有兩個;練習 但是是word文檔 不好復制進來 只能復制點筆試題 要機試題請發給郵件給我 我給你傳過來 郵件中說明 是目的 不然我不知道會當垃圾郵件處理的 我的郵箱是 [email protected]

針對以下題目請選擇正確答案(每道題目有一個或多個正確的答案)。針對每一道題目,所有答案都選對,則該題得分,否則不得分。
1. 資料庫設計的最終目標不包括()。 (選擇兩項)BD
A. 高效
B. 滿足範式要求
C. 安全
D. 表現設計者的技術實力
E. 易用
F. 便於將來擴展功能和容量
2. 有關數據冗餘說法錯誤的是()。(選擇一項)C
A. 資料庫中,數據存在副本的現象,就是數據冗餘。
B. 通過分類存儲,可以有效減少數據冗餘,但是會增加數據查找的復雜性。
C. 在資料庫設計階段,一定要盡最大可能避免數據冗餘,最好做到無數據冗餘。
D. 數據冗餘通常是由於資料庫設計引起的。
3. 用於表示資料庫實體之間的關系圖是()。A
A. 實體關系圖
B. 數據模型圖
C. 實體分類圖
D. 以上都不是
4. 假定有一個用戶表,表中包含欄位:userid (int)、username (varchar)、 password(varchar)等,該表需要設置主鍵,以下說法正確的是()。(選擇兩項)AB
A. 如果不能有同時重復的username和password,那麼username和password可以組合在一起作為主鍵。
B. 此表設計主鍵時,根據選擇主鍵的最小性原則,最好採用userid作為主鍵。
C. 此表設計主鍵時,根據選擇主鍵的最小性原則,最好採用username和password作為組合鍵。
D. 如果採用userid作為主鍵,那麼在userid列輸入的數值,允許為空。
5. 語句 alter table userinfo add constraint uq_userid unique(userid)執行成功後,為userinfo表的()欄位添加了()約束。B
A. userid 主鍵
B. userid 唯一
C. uq_userid 外鍵
D. uq_userid 檢查
6. 運行如下T-SQL,結果返回包含()的記錄集。A
create table scores
(
scoreid int identity(1,2),
score numeric(4,2) not null,
courseid int
)
insert int scores values(90.5,null);
insert into scores values(78.234,2);
select * from scores;
A. 1 90.50 NULL
3 78.23 2
B. 1 78.23 2
C. 1 90.50
D. 1 90.50
2 78.23 2
7. 關於子查詢,以下說法正確的是()。(選擇兩項)AC
A. 一般來說,表連接都可以用子查詢替換。
B. 一般來說,子查詢都可以用表連接替換。
C. 相對於表連接,子查詢適合於作為查詢的篩選條件。
D. 相對於表連接,子查詢適合於查看多表的數據。
8. 創建存儲過程如下:
create procere scoreproc
@scoreid int,@score numeric(4,2) output
as
select @score = score from scores where scoreid=@scoreid
正確的調用是:C
A. exec scoreproc 1,@myscore output
print @myscore
B. exec scoreproc @id = 1,@myscore output
print @myscore
C. declare @myscore numeric(4,2)
exec scoreproc 1,@myscore output
print @myscore
D. declare @myscore numeric(4,2)
exec scoreproc @id = 1,@myscore output
print @myscore
9. 假設需要設計一張表,記錄各個作者著作的所有圖書信息,表的結構如下:作者(作者名稱,圖書1,版本1,書價1,圖書二,版本2,書價2,…),該表最多符合第()範式。A
A. 一
B. 二
C. 三
D. 不符合任何範式
10. 一個學生只能就讀於一個班級,而一個班級可以同時容納多個學生,學生與班級之間是()的關系。C
A. 一對一
B. 一對多
C. 多對一
D. 多對多
11. E-R圖中,關系集用下面()來表示。B
A. 矩形
B. 橢圓形
C. 菱形
D. 圓形
12. 有如下表結構,#號打頭欄位代表主鍵或組合主鍵,一份訂單可以訂購多種產品。
產品:#產品編號,產品名稱,產品價格;
訂單:#訂單編號,#產品編號,訂購日期,訂購數量;(訂單編號與產品編號是組合主鍵)
該表最高符合第()範式。B
A. 一
B. 二
C. 三
D. 未規范化的
13. 有如下表結構,#號打頭欄位代表主鍵或組合主鍵,一份訂單可以訂購多種產品。
產品:#產品編號,產品名稱,產品價格;
訂單:#訂單編號,總價,訂購日期;
訂單子項: #子項編號,訂單編號,產品編號,訂購數量;
該表最高符合第()範式。C
A. 一
B. 二
C. 三
D. 未規范化的
14. 創建sql語句如下:
create table userInfo
(
userId int identity(-1,1), 第1行
userName nvarchar(20) not null, 第2行
cardNO char not null, 第3行
age smallint(2), 第4行
address ntext(300) 第5行
)
執行時,會在第()行出現錯誤。(選擇兩項)DE
A. 1
B. 2
C. 3
D. 4
E. 5
15. 以下關於規范設計的描述正確的是()。(選擇兩項)AD
A. 規范設計的主要目的是消除數據冗餘。
B. 規范設計往往會增加資料庫的性能。
C. 設計資料庫時,規范化程度越高越好。
D. 在規范化資料庫時,易於維護資料庫的完整性。
16. 關於存儲過程,以下說法正確的是()。(選擇一項)A
A. 不能在存儲過程中使用CREATE VIEW命令。
B. T-SQL批代碼的執行速度要快於存儲過程。
C. 存儲過程必須帶有參數。
D. 存儲過程不能返回結果集。
17. 已知有scores表,scoreid為主鍵,現在表中共有10條記錄,其中一條scoreid=21。
創建視圖:
create view view_scores
as
select * from scores
執行如下命令:
delete from view_scores where (scoreid = 21)
再執行如下命令:
select * from scores
select * from view_scores
假定上述命令全部執行成功,將各自返回()()行記錄。D
A. 10,10
B. 10,9
C. 9,10
D. 9,9
18. 設計用戶表時,身份證號為固定18位長,對該欄位最好採用()數據類型。(選擇一項)B
A. int
B. char
C. varchar
D. text
19. 授予用戶someone對scores表的一些許可權,正確的授權語句是()。(選擇一項)C
A. grant insert , update to talbe scores on someone
B. grant insert and update to table scores on someone
C. grant insert , update on scores to someone
D. grant insert and update on scores to someone
20. 建立如下資料庫表:
create talbe Department(
departID int not null primary key,
deptName varchar(20) not null
)
create table Employee(
employeeID int not null,
deptID int not null,
name varchar(20) not null
)
要想保證Employee表中每一個雇員(employee)是唯一的,且只能屬於在Department表中已經存在的部門,最有的做法是()。(選擇一項)B
A. 把employeeID和deptID設為組合主鍵。
B. 把employeeID設為主鍵,同時在deptID列上創建一個外鍵約束。
C. 把employeeID設為主鍵,同時在deptID列上創建一個檢查約束。
D. 在deptID列上創建一個唯一約束,同時在deptID列上創建一個外鍵約束。
21. 建立一張員工表,當向表中插入數據時,若不提供入職時間,就把系統當前時間作為員工入職時間插入資料庫,以下說法正確的是()。(選擇一項)D
A. 約束不能使用各種函數,所以無法實現要求的功能。
B. 可以使用CHECK約束實現,默認值採用日期函數getDate()。
C. 入職時間必須設為日期類型。
D. 可以使用DEFAULT約束實現,默認值採用日期函數getDate()。
22. 為了加快對某表查詢的速度,應對此表建立()。(選擇一項)D
A. 約束
B. 存儲過程
C. 規則
D. 索引
23. 假設有表student(學生)的設計如下:
id () 標識列
name () 學生姓名
address () 學生地址
department () 所屬院系
departmentHead () 學院主管
該表最高滿足()範式。(選擇一項)B
A. 一
B. 二
C. 三
D. 不滿足任何範式
24. 為資料庫中一個或者多個表中的數據提供另外一種查看方式的邏輯表被稱為()。(選擇一項)C
A. 存儲過程
B. 資料庫關系圖
C. 視圖
D. 表
25. 要建立一個教師表,包含姓名、職稱、級別等欄位。若插入數據時,級別欄位如果不輸入,預設值為「講師」,最合適的實現方式是()。A
A. 為「級別」欄位建立default約束。
B. 為「級別」欄位建立check約束。
C. 為教師表數據輸入編寫一個存儲過程進行控制。
26. 現有訂單表orders,包含數據如下表。若查詢既訂購了產品p01,又訂購了產品p02的顧客編號,可以執行以下()sql語句。(選擇兩項)CD

A. select distinct (cid) from orders ol where ol.pid in ('p01','p02')
B. select distinct (cid) from orders ol where ol.pid = 'p01' and ol.pid = 'p02'
C. select distinct (o1.cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o2.cid = o1.cid
D. select distinct(cid) from orders where pid = 'p01' and cid in(select cid from orders where pid='p02')
27. 關於聚集索引,以下()說法是錯誤的。(選擇兩項)CD
A. 一個表最多隻能創建一個聚集索引。
B. 聚集索引比非聚集索引有更快的訪問速度。
C. 主鍵一定是聚集索引。
D. 創建了聚集索引的列不允許有重復值。
28. 關於視圖,以下()說法是錯誤的。(選擇一項)C
A. 使用視圖,可以簡化數據的使用。
B. 使用視圖,可以保護敏感數據。
C. 視圖是一種虛擬表,視圖中的數據只能來源於物理數據表,不能來源於其他視圖。
D. 視圖中指存儲了查詢語句,並不包含任何數據。
29. 常用的存儲過程不包括()。(選擇一項)D
A. sp_tables
B. sp_columns
C. sp_stored_proceres
D. sp_renametable
30. 對事務的描述錯誤的是()。(選擇2項)BD
A. 一個事務中的所有命令作為一個整體提交或者回滾。
B. 如果兩個並發事務要同時修改一個表,可能產生死鎖。
C. SQL Server默認將每條單獨的T-SQL語句視為一個事務。
D. 事務必須使用begin transaction來明確制定事務的開始。
31. 分數表scores設計如下:
courseID(課程編號)
studentID(學生編號)
score(分數)
另有一個學生信息表student,包含studentID,sname(學生姓名)。
已知並非所有學生都參加了courseID為0001的考試,現在查詢所有參加0001號課程考試及格學生的學生姓名,下面正確的是()。(選擇一項)A
A. select sname from student where studentID in (select studentID from scores where courseID = 0001 and score>=60)
B. select sname from student where studentID = (select studentID from scores where courseID = 0001 and score>=60)
C. select sname from student where studentID not in (select studentID from scores where courseID = 0001 and score<=60)
D. select sname from student where studentID exists (select studentID from scores where courseID = 0001 and score>=60)
32. 在()的列上更適合創建索引。(選擇兩項)AD
A. 需要對數據進行排序
B. 具有默認值
C. 頻繁更改
D. 頻繁搜索
33. SQL Server資料庫有2種登錄認證方式。其中在()方式下,需要客戶端應用程序連接時提供登錄時需要用戶標識和密碼。C
A. Windows身份認證。
B. 以超級用戶身份登錄。
C. SQL Server身份認證。
D. 以系統身份登錄時。
34. SQL Server資料庫中,下列不屬於T-SQL事務管理語句的是()。(選擇一項)B
A. BEGIN TRANSACTION;
B. END TRANSACTION;
C. COMMIT TRANSACTION;
D. ROLLBACK TRANSACTION;
35. 要建立一個約束,保證用戶表(user)中年齡(age)必須在16歲以上,下面語句正確的是()。(選擇一項)A
A. alter table user add constraint ck_age CHECK(age>16)
B. alter table user add constraint df_age DEFAULT(16) for age
C. alter table user add constraint uq_age UNIQUE(age>16)
D. alter table user add constraint df_age DEFAULT(16)
36. SQL Server資料庫中,包含兩個表:Order訂單表,Item訂單子項目表。當一個新訂單被加入時,數據要分別保存到Order和Item表,要保證數據完整性,可以使用以下()語句。(選擇一項)C
A. BEGIN TRASACTION
INSERT INTO Order VALUES(此處省略)
INSERT INTO Items VALUES(此處省略)
END TRASACTION
B. BEGIN TRASACTION
INSERT INTO Order VALUES(此處省略)
INSERT INTO Items VALUES(此處省略)
IF(@@Erro = 0)
COMMIT TRASACTION
ELSE
ROLLBACK TRASACTION
C. BEGIN TRASACTION
INSERT INTO Order VALUES(此處省略)
IF(@@Erro = 0)
INSERT INTO Items VALUES(此處省略)
IF(@@Erro = 0)
COMMIT TRASACTION
ELSE
ROLLBACK TRASACTION
ELSE
ROLLBACK TRASACTION
D. BEGIN TRASACTION
INSERT INTO Order VALUES(此處省略)
INSERT INTO Items VALUES(此處省略)
IF(@@Erro <> 0)
ROLLBACK TRASACTION
37. 現有一個學生信息表student,包含主鍵studentID(學生編號)。又有分數表scores,包含studentID(學生編號)、以及score(考試分數)。已知student表中共有50個學生,有45人參加了考試(分數存在scores表中),其中10人不及格。執行以下SQL語句:
select * from student where exists(select studentId form score where score<60)
可返回()條記錄。(選擇一項)A
A. 50
B. 45
C. 10
D. 0
38. create table student
(
id int identity(1,1),
name varchar(20)
)
alter table student add constraint uq_name unique(name)
insert into student values(null)
insert into student values(null)
insert into student values('jack')
insert into student values('jack')
依次執行以上SQL語句後,student表中存在()行記錄。B
A. 1
B. 2
C. 3
D. 4
39. 已知employee表中具有默認約束df_email,刪除該約束的語句為()。(選擇一項)A
A. alter talbe employee drop constraint df_email
B. alter talbe employee remove constraint df_email
C. alter talbe employee delete constraint df_email
D. remove constraint df_email from talbe employee
40. 在employee表的firstname欄位上建立的非聚集索引的物理效果是()。(選擇一項)D
A. 所有的行按照firstname欄位值升序排列並物理地存儲在數據頁中
B. 索引中的項按照索引鍵值的順序存儲,但表中信息的順序保持不變。
C. 所有的行按照firstname欄位值降序排列並物理地存儲在數據頁中
D. 所有的行被物理地存儲在數據頁上,並且根據firstname欄位按照索引建立時指定的順序排列
41. 創建存儲過程的片斷如下:創建成功後,以下()調用方式是正確的。(選擇一項)B
create procere proc_score
@passed int = 60,
@count int output
as
select count(*) from scores where score < @passed
A. execute proc_score @count int output
B. declare @count int
execute proc_score 70,@count output
C. declare @count int output
execute proc_score 70,@count
D. execute proc_score 70,@count output
42. 現有學生表Students和用戶表Users,兩表中的數據如下:
執行sql語句:select * from Users union select * from Students。下列說法正確的是()。(選擇一項)A
Users Students
userID(int) name (varchar) studentID(int) age(int)
1 Wen 1 80
2 Shu 2 75
3 Gao
4 Shui
A. 出現錯誤:name與age不是同一數據類型。
B. 正確執行,返回6行4 列。
C. 正確執行,返回6行2 列。
D. 正確執行,返回4行2列。
43. 假設有scores表的設計如下:
ID(編號,主鍵)
StudentID(學生編號)
CourseID(課程編號)
Score(分數)
現在要查詢參加過至少兩門課程考試的學生各門課程的平均成績。以下SQL語句正確的是()。(選擇一項)A
A. select StudentID,avg(score) from scores group by StudentID having count(studentID)>1
B. select StudentID,avg(score) from scores group by StudentID where count(studentID)>1
C. select StudentID,avg(score) from scores group by StudentID where count(studentID)>1 group by StudentID
D. select StudentID,avg(score) from scores having count(studentID)>1
44. 假設orders表中存在orderid等於1的紀錄,執行下面T-SQL:
begin transaction
delete from orders where orderid = 1
if (@@error<>0)
rollback transaction
rollback transaction
以下說法正確的是()。(選擇一項)B
A. 執行成功,orderid為1的記錄被永久刪除。
B. 執行成功,orders表沒有任何變化。
C. 執行時出現錯誤。
D. 執行成功,但事務處理並沒有結束。
45. 項目開發需要經過幾個階段,繪制資料庫的E-R圖應該在()階段進行。(選擇一項)B
A. 需求分析
B. 概要設計
C. 詳細設計
D. 代碼編寫
46. 將E-R圖轉換為表的過程中,如果實體之間存在多對多的關系,通常的做法是()。(選擇一項)B
A. 在兩個實體間建立主外鍵關系。
B. 在兩個實體間建立關聯表,把一個多對多的關系分解成兩個一對多的關系。
C. 在兩個實體間建立關聯表,把一個多對多的關系分解成兩個一對一的關系。
D. 在兩個實體間不建立任何關系。
47. 某個欄位希望存放電話號碼,該欄位應選用()數據類型。
A. char(10)
B. text
C. varchar(13)
D. int
48. 運行以下語句得到的結果是()C
use javaWebDB
create table numbers
(
N1 INT,
N2 NUMERIC(5,0),
N3 NUMERIC(4,2),
)
INSERT numbers VALUES(100,100.5,10.5)
select * from numbers
A. 返回100,100,10.5的結果集
B. 返回100,100,10.50的結果集
C. 返回100,101,10.50的結果集
D. 語句無法全部成功執行
49. 資料庫事務處理具有如下特徵(),被簡稱為ACID。(選擇四項)ACEF
A. 原子性
B. 安全性
C. 隔離性
D. 完整性
E. 持久性
F. 一致性
50. SQL語言集數據查詢、數據操縱、數據定義和數據控制功能於一體,其中,CREATE、DROP、ALTER語句是實現哪種功能( )。C
A. 數據查詢
B. 數據操縱
C. 數據定義
D. 數據控制

『貳』 SQL的練習,求答案!!!

/*創建Moonfox_db資料庫*/
use master
if exists(select * from sysdatabases where name='Moonfox_db')
drop database Moonfox_db
create database Moonfox_db
on
(
name='Moonfox_db_data',
filename='D:\Visual Studio 2008 & Sql server 2005\Sql server\Moonfox_db.mdf',
size=10,
filegrowth=2MB
)
log on
(
name='Moonfox_db_log',
filename='D:\Visual Studio 2008 & Sql server 2005\Sql server\Moonfox_db.ldf',
size=5,
filegrowth=20%
)/*創建Department表*/
use Moonfox_db
if exists(select * from sysobjects where name='Department')
drop table Department
create table Department
(
DID int identity (1,1)primary key,--部門編號,主鍵
Dname nvarchar(20),--部門名稱
Address nvarchar(50),--部門地址
Photo decimal(12,0),--電話
)/*創建Employee表*/
use Moonfox_db
if exists(select * from sysobjects where name='Employee')
drop table Employee
create table Employee
(
EID int identity (1,1)primary key,--職工編號,主鍵
Ename varchar(10),--職工名
Gender nchar(2) check(Gender='男' or Gender='女'),--性別,添加限制
Position nvarchar(10) check(Position='員工' or Position='組長' or Position='經理'),--職務,添加限制
Address nvarchar(50),--家庭地址
DID int,--部門編號,外鍵
foreign key(DID) references Department(DID)--外鍵約束
)
/*創建Care表*/
use Moonfox_db
if exists(select * from sysobjects where name='Care')
drop table Care
create table Care
(
CID int identity (1,1)primary key,--保健卡編號,主鍵
EID int,--職工號,外鍵
foreign key(EID) references Employee(EID),--外鍵約束
CheckDate datetime,--檢查身體日期
PhysicalCondition nvarchar(4) check(PhysicalCondition='一般' or PhysicalCondition='差' or PhysicalCondition='好'),--健康狀況
)
/*創建Care表約束*/
alter table Care
add
constraint DF_CheckDate default(getdate()) for CheckDate--預設,默認凈時間為當前計算機時間 路徑自己修改,試圖自己做,選擇語句自己寫。我該睡覺了,抱歉,你試著在sql server中運行下,我等著休息,也不知道寫的有沒有錯誤,沒時間幫你寫省下的了。不急著用的話我明天幫你寫吧。