《MySchool数据库设计优化》内部测试
1) 在SQL?Server?中,為數據庫表建立索引能夠( C )。
A. 防止非法的刪除操作
B. 防止非法的插入操作
C. 提高查詢性能
D. 節約數據庫的磁盤空間
解析:索引的作用是通過使用索引,大大提高數據庫的檢索速度,改善數據庫性能
?
2) 在SQL?SERVER中,創建一個表使用( ?C)語句。
A. INSERT
B. DROP
C. CREATE
D. ALERT
解析:A :insert 插入數據。 ? B: drop 進行刪除操作 D:alter 添加約束
?
3) 在SQL?SERVER中,下面關于視圖說法錯誤的是(C ?)。
A. 對查詢執行的大多數操作也可以在視圖上進行
B. 使用視圖可以增加數據庫的安全性
C. 不能利用視圖增加,刪除,修改數據庫中的數據
D. 視圖使用戶更靈活的訪問所需要的數據
解析:對視圖進行增刪改操作。(答題的話可以,面試不可以)
?
4) 在數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它是數據庫設計的( B )階段。
A. 需求分析
B. 概要設計
C. 邏輯設計
D. 物理設計
解析:
A:分析客戶的業務和數據處理需求
B:概要設計 ?繪制數據庫的E-R圖,用于在項目團隊內部、設計人員和客戶之間進行溝通,確認需求信息的正確性和完整性
C:利用數據模型進行概念數據庫的模式設計
D:將一個給定邏輯結構實施到具體的環境中時,邏輯數據模型要選取一個具體的工作環境,這個工作環境提供了數據存儲結構與存取方法,這個過程就是數據庫的物理設計。
?
5) 在SQL?Server?數據庫中,如果強制要求grades表中的學員必須是Students表中存在的學員,以下描述正確的是( A )。
A. 在grades表中創建外鍵約束
B. 在grades表中創建檢查約束
C. 在grades表中創建唯一約束
D. 在grades表中創建默認約束
解析:
A: ?外鍵約束 用于在兩表之間建立關系,需要指定引用主表的哪一列
B:檢查約束 某列的取值范圍限制、格式限制等
C:唯一約束 要求該列的值必須唯一,允許為空 但只能出現一個空值
D:默認約束 某列的默認值
?
6) 在SQL?Server?數據庫中,下面的T-SQL語句段執行第三句時出現錯誤,數據庫中的內容修改情況是(C ?)。
BEGIN?TRANSACTION
update?Account?set?balance=7800?where?id=1
update?Account?set?balance=9000?where?id=1
IF?@@error?<>?0
ROLLBACK?TRANSACTION
ELSE
COMMIT?TRANSACTION
?
A. Account表中id為1的記錄中balance字段的值被修改為7800
B. Account表中id為1的記錄中balance字段的值被修改為9000
C. Account表中id為1的記錄中balance字段的值不變
D. 不可能發生這種情況
解析:rollback tran 回滾事務,那么在begin transaction 語句之后的所有更新數據都回滾到初始狀態?
?
7) 在SQL?Server?數據庫中,有關下列T-SQL語句的功能,說法正確的是(C ?)。
DECLARE?@I?int,?@J?int
SET?@I=0
WHILE?(@I?<?2) ? //循環兩次
??BEGIN
SELECT?@J=COUNT(*)?FROM?stuMarks?WHERE?writtenExam<60
????IF(@J>0)
??????UPDATE?stuMarks?SET?writtenExam=writtenExam+5?WHERE?writtenExam<60 ? //小于60分加5分
????ELSE
??????BREAK
????SET?@I?=?@I?+?1 ? ?//改變循環變量 ?@I為1繼續再循環一次!
??END
SELECT?stuNo,成績=CASE
????????????????????WHEN?writtenExam<60?THEN?'不及格'
????????????????????ELSE?'及格'
??????????????????END
???FROM?stuMarks
A. 給不及格的學員反復提5分直到通過為止,最后展示所有學員是否及格的情況信息
B. 給不及格的學員提10分,最后展示所有學員是否及格的情況信息
C. 給不及格的學員提5分,提分后仍不及格的學員再提5分,最后展示所有學員是否及格的情況信息
D. 給不及格的學員提5分,最后展示所有學員是否及格的情況信息
?
?
8) 在SQL?Server?數據庫中,下面調用存儲過程的語句錯誤的是( ?B)。
?
A. EXEC?proc_stu?@sum?OUTPUT,64,78
?
B. EXEC?proc_stu??@sum?OUTPUT,@total?output,78
?
C. EXEC?proc_stu??@sum?OUTPUT,604
?
D. EXEC?Calculate?@sum?OUTPUT,@total?output
?
?
?
9) 在SQL?SERVER中,下面關于子查詢的說法你認為正確的是( C )。?
?
A. 應用簡單子查詢的SQL語句的執行效率比采用SQL變量的實現方案要低
?
B. 帶子查詢的查詢執行順序是,先執行父查詢,再執行子查詢
?
C. 表連接一般都可以用子查詢替換,但有的子查詢不能用表連接替換
?
D. 如果一個子查詢語句一次返回二個字段的值,那么父查詢的where子句中應該使用NOT?EXISTS關鍵字
?
?
?
10)?在SQL?SERVER中,按以下要求創建學員表正確的SQL語句是(D ?)。?
?
學員表(stuTable)的要求是:學號為5位數字,自動編號;姓名最多為4個漢字,身份證號碼最多為18位數字。
?
A. CREATE?TABLE?stuTable?(
?
ID?NUMERIC(6,0)?NOT?NULL,
?
Name?VARCHAR(4),
?
Card?INT
?
)
?
B. CREATE?TABLE?stuTable
?
(
?
ID?INT?IDENTITY(10000,1),
?
Name?VARCHAR(4),
?
Card?DECIMAL(18,0)
?
)
?
C. IF?EXISTS(SELECT?*?FROM?sysobjects?WHERE?name='?stuTable?')
?
DROP?TABLE?stuTable
?
GO
?
CREATE?TABLE?stuTable
?
(
?
ID?NUMERIC(4,0)?NOT?NULL,
?
Name?VARCHAR(4),
?
Card?INT
?
)
?
D. IF?EXISTS(SELECT?*?FROM?sysobjects?WHERE?name='?stuTable?')
?
DROP?TABLE?stuTable
?
GO
?
CREATE?TABLE?stuTable
?
(
?
ID?INT?IDENTITY(10000,1),
?
Name?VARCHAR(8),
?
Card?NUMERIC(18,0)
?
)
?解析:D:??identity:自增 ?numberic(18,0)指身份證號碼最多為18位數字,varchar(8)?姓名最多為4個漢字 ?條件滿足
?
?
11) 在SQL?SERVER中,聲明并創建以下存儲過程,正確調用該存儲過程的的語句是( ?BC)。
?
CREATE PROCEDURE??PRO
?
@passNum?int?OUTPUT,
?
@passPoint?int=60?
?
AS
?
Select?@passNum=count(*)?From?stuTable?Where?point?>@passPoint
?
GO
?
A. Declare?@sum?int
?
EXEC?PRO?@passNum,70
?
B. Declare?@sum?int
?
EXEC?PRO?@sum?output,70
?
C. Declare?@sum?int
?
EXEC?PRO?@sum?output
?
D. EXEC?PRO?70
?
?解析:A:output表明參數是輸出參數?D:未聲明局部變量
?
?
12) 下面描述的四個階段中,不是數據庫設計過程中經歷的階段是( D )。
?
A. 需求分析階段
?
B. 概要設計階段
?
C. 詳細設計階段
?
D. 代碼設計階段
?
解析:?代碼設計階段不屬于數據庫設計過程中經歷的階段
?
?
13) 在SQL?Server?中,對IN語句取反的方法是,在IN前面添加( ?B)。
?
A. NONE
?
B. NOT
?
C. !
?
D. NO
解析:對in語句進行取反的方法是not ?in
?
?
?
14) 在SQL?Server?數據庫中,以下對變量的定義錯誤的是(D ?)。
?
A. DECLARE?@username??varchar(10)
?
B. DECLARE?@RowCount??varchar(30)
?
C. DECLARE?@@username??varchar(10)
?
D. DECLARE?@@RowCount??varchar(30)
?
?
?
15) 在SQL?Server中,繪制E-R圖時一般使用( B )表示實體的屬性。
?
A. 矩形
?
B. 橢圓
?
C. 菱形
?
D. 三角形
解析:A:實體---矩形 C:聯系--菱形
?
16) 在SQL?SERVER中,運行下列語句,輸出結果是( B )。
?
Create?proc?proc_Search
?
@myStuno?varchar(8)?is?null
?
as?
?
if?@myStuno?=?null
?
begin
?
????print?'你忘記了傳遞學號'
?
???return?
?
end
?
Select?*?from?stuinfo?where?stuno=@myStuno
?
go
?
exec?proc_Search
?
A. 你忘記了傳遞學號
?
B. 編譯錯誤
?
C. 顯示空的記錄
?
D. 調用存儲過程proc_Search出錯
解析:未聲明變量 @myStuno
?
17) 下面關于SQL?Server中變量的操作正確的是(AD ?)。
?
A. DECLARE?@name?varchar(8)
?
SET?@name='lkl'
?
print?'姓名是'+@name
?
B. DECLARE?name?varchar(8)
?
SET?name='lkl'
?
print?'姓名是'+name
?
C. print??@@VERSION?AS?'版本',?@@SERVERNAME?AS?'服務器'
?
D. SELECT?@@VERSION?AS?'版本',?@@SERVERNAME?AS?'服務器'
解析:B:name應該為局部變量 缺少@符號 ? ?C:語法錯誤
?
18) 下面選項中關于在SQL語句中使用的邏輯控制語句的說法正確的是(A ?)。
?
A. 在IF-ELSE?條件語句中,IF為必選,而ELSE為可選
?
B. 在IF-ELSE?條件語句中,語句塊使用{??}括起來
?
C. 在CASE多分支語句中不可以出現ELSE分支
?
D. 在WHILE循環語句中條件為false,就重復執行循環語句
解析:
B:在SQL中 if-else條件語句中 語句塊使用begin-end括起來
C:case多分支語句中可出現else 作為條件
?
19) 已知dept表有部門編號字段deptno、部門名稱字段dname,員工表emp具有員工編號字段empno、員工姓名字段ename、電話字段phone和所屬部門編號字段deptno,該字段參考dept表的deptno字段,要使用SQL語句查詢?“研發部”部門所有員工的編號和姓名信息,下面選項中正確的是(B ?)。
?
A. SELECT?empno,ename?FROM?emp
?
WHERE?empno=(SELECT?empno?FROM?dept?WHERE?dname="研發部")
?
B. SELECT?empno,ename?FROM?emp
?
WHERE?deptno=(SELECT?deptno?FROM?dept?WHERE?dname='研發部')
?
C. SELECT?empno,ename?FROM?emp
?
WHERE?deptno=(SELECT?*?FROM?dept?WHERE?dname='研發部')
?
D. SELECT?empno,ename?FROM?dept
?
WHERE?deptno=(SELECT?deptno?FROM?emp?WHERE?dname="研發部")
?
解析:?查詢?“研發部”部門所有員工的編號和姓名信息 即排除AC 查詢的信息是來自于部門表 排除D
?
?
20) 在SQL?Server中,下面關于視圖的描述,說法正確的是( ?AD)。
?
A. 使用視圖可以篩選原始物理表中的數據,增加了數據訪問的安全性
?
B. 視圖是一種虛擬表,數據只能來自一個原始物理表
?
C. CREATE?VIEW語句中可以包含UPDATE語句
?
D. 為了安全起見,一般只對視圖執行查詢操作,不推薦在視圖上執行修改操作
?
解析:
?B: 視圖是一種虛擬表。通常是作為來自一個或多個表的行或列的子集創建的
?C:??CREATE?VIEW語句中不可包含UPDATE語句
?
?
21) 在SQL?Server中,創建如下存儲過程:
?
create?proc?stu_exam
?
@writtenExam?int=null
?
as?
?
if?@writtenExam?is?null
?
begin
?
print?'請輸入筆試成績及格線'
?
return
?
end
?
select?*?from?student?where?stu_id?in?
?
(select?stu_id?from?stu_marks?
?
where?writtenExam>@writtenExam)
?
GO
?
下列選項正確的是( C )。
?
A. 執行EXEC?stu_exam語句,控制臺顯示所有筆試成績及格的學生信息記錄集
?
B. 存儲過程(stu_exam)代碼存在語法錯誤
?
C. 執行EXEC?stu_exam語句,控制臺顯示“請輸入筆試成績及格線”
?
D. 執行EXEC?stu_exam?75語句,控制臺顯示“請輸入筆試成績及格線”
解析:有IF條件進行過濾,若果沒有輸出筆試成績的話,將輸出提示。
?
22) 下列選項中不屬于SQL?Server的邏輯控制語句的是( ?B)。
?
A. IF-ELSE語句
?
B. FOR循環語句
?
C. CASE子句
?
D. WHILE循環語句
解析:SQL?Server的邏輯控制語句包括?IF-ELSE語句、?CASE子句、WHILE循環語句三種
?
23) 在SQL?SERVER中,關于聚集索引和非聚集索引的描述錯誤的是(B ?)。
?
A. 一個表可以有多個非聚集索引,但只能有一個聚集索引
?
B. 非聚集索引的值順序與數據表中記錄的物理順序完全相同
?
C. 在建立聚集索引的列上不允許有重復的值
?
D. 使用聚集索引查詢的速度要比非聚集索引速度快
?
?解析:聚集索引和表中記錄的物理順序一致 ?即B選項表述錯誤
?
?
24) 在SQL?SERVER中,關于系統存儲過程以下說法錯誤的是( ?D)。
?
A. 系統存儲過程提供了管理數據庫和更新表的機制
?
B. 所有系統存儲過程都以sp_開頭
?
C. 所有系統存儲過程都存放在master數據庫中
?
D. 用戶不能使用系統存儲過程更新系統表,只能查詢系統表
?
25) 在SQL?Server?數據庫中,從product表里查詢出price(價格)高于pName(產品名稱)為“一次性紙杯”所有記錄中最高價格的產品的查詢語句為( D )。
?
A. SELECT?*?FROM?product?WHERE?max(price)>'一次性紙杯'
?
B. SELECT?*?FROM?product?WHERE?price>(SELECT?max(*)?FROM?product?WHERE?pName=?'一次性紙杯')
?
C. SELECT?*?FROM?product?WHERE?EXISTS?pName='一次性紙杯'
?
D. SELECT?*?FROM?product?WHERE?price>(SELECT?max(price)?FROM?product?WHERE?pName='一次性紙杯')
?
解析:
AC:條件不明確
B:查詢的是最高價格的產品,并非所有的。因此錯誤
?
轉載于:https://www.cnblogs.com/WJ-163/p/5295939.html
總結
以上是生活随笔為你收集整理的《MySchool数据库设计优化》内部测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: error:This Android S
- 下一篇: App测试如何进行?手机app测试要点