資料庫試題及
① 資料庫經典筆試題和面試題答案
如下這些有關資料庫知識考查的經典筆試題,非常全面,對計算機專業畢業生參加筆試會很有幫助,建議大家收藏。
一、選擇題
1. 下面敘述正確的是___c___。
A、演算法的執行效率與數據的存儲結構無關
B、演算法的空間復雜度是指演算法程序中指令(或語句)的條數
C、演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
D、以上三種描述都不對
2. 以下數據結構中不屬於線性數據結構的是___c___。
A、隊列B、線性表C、二叉樹D、棧
3. 在一棵二叉樹上第5層的結點數最多是__b____。2的(5-1)次方
A、8 B、16 C、32 D、15
4. 下面描述中,符合結構化程序設計風格的是___a___。
A、使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯
B、模塊只有一個入口,可以有多個出口
C、注重提高程序的執行效率 D、不使用goto語句
5. 下面概念中,不屬於面向對象方法的是___d___。
A、對象 B、繼承 C、類 D、過程調用
6. 在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是___b___。
A、可行性分析 B、需求分析 C、詳細設計 D、程序編碼
7. 在軟體開發中,下面任務不屬於設計階段的是__d____。
A、數據結構設計 B、給出系統模塊結構 C、定義模塊演算法 D、定義需求並建立系統模型
8. 資料庫系統的核心是___b___。
A、數據模型 B、資料庫管理系統 C、軟體工具 D、資料庫
9. 下列敘述中正確的是__c____。
A、資料庫是一個獨立的系統,不需要操作系統的支持
B、資料庫設計是指設計資料庫管理系統
C、資料庫技術的根本目標是要解決數據共享的問題
D、資料庫系統中,數據的物理結構必須與邏輯結構一致
10. 下列模式中,能夠給出資料庫物理存儲結構與物理存取方法的是___a___。
A、內模式 B、外模式 C、概念模式 D、邏輯模式
11. Visual FoxPro資料庫文件是___d___。
A、存放用戶數據的文件 B、管理資料庫對象的系統文件
C、存放用戶數據和系統的文件 D、前三種說法都對
12. sql語句中修改表結構的命令是___c___。
A、MODIFY TABLE B、MODIFY STRUCTURE
C、ALTER TABLE D、ALTER STRUCTURE
13. 如果要創建一個數據組分組報表,第一個分組表達式是"部門",第二個分組表達式是"性別",第三個分組表達式是"基本工資",當前索引的索引表達式應當是__b____。
A、部門+性別+基本工資 B、部門+性別+STR(基本工資)
C、STR(基本工資)+性別+部門 D、性別+部門+STR(基本工資)
14. 把一個項目編譯成一個應用程序時,下面的敘述正確的是___a___。
A、所有的項目文件將組合為一個單一的應用程序文件
B、所有項目的包含文件將組合為一個單一的應用程序文件
C、所有項目排除的文件將組合為一個單一的應用程序文件
D、由用戶選定的項目文件將組合為一個單一的應用程序文件
15. 資料庫DB、資料庫系統DBS、資料庫管理系統DBMS三者之間的關系是_a___。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
16. 在"選項"對話框的"文件位置"選項卡中可以設置___b___。
A、表單的默認大小 B、默認目錄
C、日期和時間的顯示格式 D、程序代碼的顏色
17. 要控制兩個表中數據的完整性和一致性可以設置"參照完整性",要求這兩個表_a_。
A、是同一個資料庫中的兩個表 B、不同資料庫中的兩個表
C、兩個自由表 D、一個是資料庫表另一個是自由表
18. 定位第一條記錄上的命令是___a___。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
19. 在關系模型中,實現"關系中不允許出現相同的元組"的約束是通過__b____。
A、候選鍵 B、主鍵 C、外鍵 D、超鍵
20. 設當前資料庫有10條記錄(記錄未進行任何索引),在下列三種情況下,當前記錄號為1時;EOF()為真時;BOF()為真時,命令?RECN()的結果分別是___a___。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
21. 下列表達式中結果不是日期型的是___c___。
A、CTOD("2000/10/01") B、{^99/10/01}+365
C、VAL("2000/10/01") D、DATE()
22. 只有滿足聯接條件的記錄才包含在查詢結果中,這種聯接為___c___。
A、左聯接 B、右聯接 C、內部聯接 D、完全聯接
23. 索引欄位值不唯一,應該選擇的索引類型為___b___。
A、主索引 B、普通索引 C、候選索引 D、唯一索引
24. 執行SELECT 0選擇工作區的結果是___b___。
A、選擇了0號工作區 B、選擇了空閑的最小號工作區
C、關閉選擇的工作區 D、選擇已打開的工作區
25. 從資料庫中刪除表的命令是___a___。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
26. DELETE FROM S WHERE 年齡>60語句的功能是__b____。
A、從S表中徹底刪除年齡大於60歲的記錄
B、S表中年齡大於60歲的記錄被加上刪除標記
C、刪除S表 D、刪除S表的年齡列 1 2
② Oracle資料庫的面試題目及答案
Oracle資料庫的面試題目及答案
基礎題目:
1. 比較truncate和 命令
解答:兩者都可以用來刪除表中所有的記錄。區別在於:truncate是DDL操作,它移動HWK,不需要 rollback segment .
而Delete是DML操作, 需要rollback segment 且花費較長時間.
【相同點
truncate和不帶where子句的, 以及drop都會刪除表內的數據
不同點:
1. truncate和 只姿轎刪除數據不刪除表的結構(定跡談肆義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴於該表的.存儲過程/函數將保留,
但是變為invalid狀態.
2.語句是dml,這個操作會放到rollback segement中,事務提交之後才生效;如果有相應的trigger,執行的時候將被觸發.
truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger.
3.語句不影響表所佔用的extent, 高水線(high watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate 語句預設情況下見空間釋放到 minextents個 extent,除非使侍渣用reuse storage; truncate會將高水線復位(回到最開始).
4.速度,一般來說: drop>; truncate >;
5.安全性:小心使用drop 和truncate,尤其沒有備份的時候.否則哭都來不及
使用上,想刪除部分數據行用,注意帶上where子句. 回滾段要足夠大.
想刪除表,當然用drop
想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還是用.
如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據
】
2.Oracle中,需要在查詢語句中把空值(NULL)輸出為0,如何處理?
答案:nvl(欄位,0).
nvl( ) 函數
從兩個表達式返回一個非 null 值。
語法
NVL(eExpression1, eExpression2)
參數
eExpression1, eExpression2
如果 eExpression1 的計算結果為 null 值,則 NVL( ) 返回 eExpression2。如果 eExpression1 的計算結果不是 null 值,
則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種數據類型。如果 eExpression1 與 eExpression2
的結果皆為 null 值,則 NVL( ) 返回 .NULL.。
返回值類型
字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值
說明
在不支持 null 值或 null 值無關緊要的情況下,可以使用 NVL( ) 來移去計算或操作中的 null 值。
select nvl(a.name,空得) as name from student a join school b on a.ID=b.ID
注意:兩個參數得類型要匹配
3.Oracle中char和varchar2數據類型有什麼區別?有數據」test」分別存放到10)和varchar2(10)類型的欄位中,
其存儲長度及類型有何區別?
答案:
區別: 1).CHAR的長度是固定的,而VARCHAR2的長度是可以變化的, 比如,存儲字元串「test",對於CHAR (10),
③ 資料庫原理及應用試題
1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A --不太確定 14.B 15.C 16.A 17.B 18.A 19.D 20.C
1.試述事務的概念及事務的四個特性。
答:
事務是用戶定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。
事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這個四個特性也簡稱為ACID特性。
原子性:事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性:事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。
隔離性:一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對其他並發事務是隔離的,並發執行的各個事務之間不能互相干擾。
持續性:持續性也稱永久性(Permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。
2.為什麼事務非正常結束時會影響資料庫數據的正確性,請列舉一例說明之。
答:
事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。如果資料庫系統運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入物理資料庫,這時資料庫就處於一種不正確的狀態,或者說是不一致的狀態。
例如某工廠的庫存管理系統中,要把數量為Q的某種零件從倉庫1移到倉庫2存放。
則可以定義一個事務T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則資料庫就處於不一致性狀態,庫存量無緣無故少了Q。
3.資料庫中為什麼要有恢復子系統?它的功能是什麼?
答:
因為計算機系統中硬體的故障、軟體的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響資料庫中數據的正確性,重則破壞資料庫,使資料庫中全部或部分數據丟失,因此必須要有恢復子系統。
恢復子系統的功能是:把資料庫從錯誤狀態恢復到某一已知的正確狀態(亦稱為一致狀態或完整狀態)。
4.資料庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞資料庫數據?
答:資料庫系統中可能發生各種各樣的故障,大致可以分以下幾類:
(1)事務內部的故障;
(2)系統故障;
(3)介質故障;
(4)計算機病毒。
事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據
庫數據。
5.據庫恢復的基本技術有哪些?
答:
數據轉儲和登錄日誌文件是資料庫恢復的基本技術。
當系統運行過程中發生故障,利用轉儲的資料庫後備副本和日誌文件就可以將資料庫恢復到故障前的某個一致性狀態。
6. 資料庫轉儲的意義是什麼? 試比較各種數據轉儲方法。
答:
數據轉儲是資料庫恢復中採用的基本技術。所謂轉儲即DBA定期地將資料庫復制到磁帶或另一個磁碟上保存起來的過程。當資料庫遭到破壞後可以將後備副本重新裝入,將資料庫恢復到轉儲時的狀態。
靜態轉儲:在系統中無運行事務時進行的轉儲操作。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低資料庫的可用性。
動態轉儲:指轉儲期間允許對資料庫進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時後援副本上的數據並不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數據,使得後援副本上的數據不是資料庫的一致版本。
為此,必須把轉儲期間各事務對資料庫的修改活動登記下來,建立日誌文件(log file)。這樣,後援副本加上日誌文件就能得到資料庫某一時刻的正確狀態。
轉儲還可以分為海量轉儲和增量轉儲兩種方式。
海量轉儲是指每次轉儲全部資料庫。增量轉儲則指每次只轉儲上一次轉儲後更新過的數據。從恢復角度看,使用海量轉儲得到的後備副本進行恢復一般說來更簡單些。但如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。
7. 什麼是日誌文件?為什麼要設立日誌文件?
答:
(1)日誌文件是用來記錄事務對資料庫的更新操作的文件。
(2)設立日誌文件的目的是: 進行事務故障恢復;進行系統故障恢復;協助後備副本進行介質故障恢復。
8. 登記日誌文件時為什麼必須先寫日誌文件,後寫資料庫?
答:
把對數據的修改寫到資料庫中和把表示這個修改的日誌記錄寫到日誌文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成了一個。
如果先寫了資料庫修改,而在運行記錄中沒有登記這個修改,則以後就無法恢復這個修改了。如果先寫日誌,但沒有修改資料庫,在恢復時只不過是多執行一次UNDO操作,並不會影響資料庫的正確性。所以一定要先寫日誌文件,即首先把日誌記錄寫到日誌文件中,然後寫資料庫的修改。
9. 針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統故障的恢復?介質故障恢復?)
答:
事務故障的恢復:
事務故障的恢復是由DBMS自動完成的,對用戶是透明的。
DBMS執行恢復步驟是:
(1)反向掃描文件日誌(即從最後向前掃描日誌文件),查找該事務的更新操作。
(2)對該事務的更新操作執行逆操作。即將日誌記錄中「更新前的值」寫入資料庫。
(3)繼續反向掃描日誌文件,做同樣處理。
(4)如此處理下去,直至讀到此事務的開始標記,該事務故障的恢復就完成了。
答:
系統故障的恢復:
系統故障可能會造成資料庫處於不一致狀態:
一是未完成事務對資料庫的更新可能已寫入資料庫;
二是已提交事務對資料庫的更新可能還留在緩沖區,沒來得及寫入資料庫。
因此恢復操作就是要撤銷(UNDO)故障發生時未完成的事務,重做(REDO)已完成的事務。
系統的恢復步驟是:
(1)正向掃描日誌文件,找出在故障發生前已經提交的事務隊列(REDO隊列)和未完成的事務隊列(UNDO隊列)。
(2)對撤銷隊列中的各個事務進行UNDO處理。
進行UNDO處理的方法是,反向掃描日誌文件,對每個UNDO事務的更新操作執行逆操作,即將日誌記錄中「更新前的值」(Before Image)寫入資料庫。
(3)對重做隊列中的各個事務進行REDO處理。
進行REDO處理的方法是:正向掃描日誌文件,對每個REDO事務重新執行日誌文件登記的操作。即將日誌記錄中「更新後的值」(After Image)寫入資料庫。
*解析:
在第(1)步中如何找出REDO隊列和UNDO隊列?請大家思考一下。
下面給出一個演算法:
1) 建立兩個事務隊列:
· UNDO-LIST: 需要執行undo操作的事務集合;
· REDO-LIST: 需要執行redo操作的事務集合;
兩個事務隊列初始均為空。
2) 從日誌文件頭開始,正向掃描日誌文件
· 如有新開始(遇到Begin Transaction)的事務Ti,把Ti暫時放入UNDO-LIST隊列;
· 如有提交的事務(遇到End Transaction)Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列;
直到日誌文件結束
答:
介質故障的恢復:
介質故障是最嚴重的一種故障。
恢復方法是重裝資料庫,然後重做已完成的事務。具體過程是:
(1)DBA裝入最新的資料庫後備副本(離故障發生時刻最近的轉儲副本),使資料庫恢復到轉儲時的一致性狀態。
(2)DBA裝入轉儲結束時刻的日誌文件副本
(3)DBA啟動系統恢復命令,由DBMS完成恢復功能,即重做已完成的事務。
*解析
1)我們假定採用的是靜態轉儲,因此第(1)步裝入資料庫後備副本便可以了。
2)如果採用的是靜動態轉儲,第(1)步裝入資料庫後備副本還不夠,還需同時裝入轉儲開始時刻的日誌文件副本,經過處理後才能得到正確的資料庫後備副本。
3)第(2)步重做已完成的事務的演算法是:
a. 正向掃描日誌文件,找出故障發生前已提交的事務的標識,將其記入重做隊列
b. 再一次正向掃描日誌文件,對重做隊列中的所有事務進行重做處理。即將日誌記錄中「更新後的值」寫入資料庫。
10. 具有檢查點的恢復技術有什麼優點?
答:
利用日誌技術進行資料庫恢復時,恢復子系統必須搜索日誌,確定哪些事務需要REDO,哪些事務需要UNDO。一般來說,需要檢查所有日誌記錄。這樣做有兩個問題:
一是搜索整個日誌將耗費大量的時間。
二是很多需要REDO處理的事務實際上已經將它們的更新操作結果寫到資料庫中了,恢復子系統又重新執行了這些操作,浪費了大量時間。
檢查點技術就是為了解決這些問題。
11. 試述使用檢查點方法進行恢復的步驟。
答:
① 從重新開始文件中找到最後一個檢查點記錄在日誌文件中的地址,由該地址在日誌文件中找到最後一個檢查點記錄。
② 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單ACTIVE-LIST。
這里建立兩個事務隊列:
· UNDO-LIST: 需要執行undo操作的事務集合;
· REDO-LIST: 需要執行redo操作的事務集合;
把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。
③ 從檢查點開始正向掃描日誌文件
· 如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列;
· 如有提交的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列,直到日誌文件結束;
④ 對UNDO-LIST中的每個事務執行UNDO操作, 對REDO-LIST中的每個事務執行REDO操作。
12. 什麼是資料庫鏡像?它有什麼用途?
答:
資料庫鏡像即根據DBA的要求,自動把整個資料庫或者其中的部分關鍵數據復制到另一個磁碟上。每當主資料庫更新時,DBMS自動把更新後的數據復制過去,即DBMS自動保證鏡像數據與主數據的一致性。
資料庫鏡像的用途有:
一是用於資料庫恢復。當出現介質故障時,可由鏡像磁碟繼續提供使用,同時DBMS自動利用鏡像磁碟數據進行資料庫的恢復,不需要關閉系統和重裝資料庫副本。
二是提高資料庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像資料庫上的數據,而不必等待該用戶釋放鎖。
④ 計算機三級《資料庫技術》單選專練及答案(2)
單選專練二
1[單選題] 下列關於瀏覽器/伺服器架構中的應用伺服器的說法中,錯誤的是__________。
A.應用伺服器一般運行程序代碼,實現面向應用領域的業務規則
B.應用伺服器會根據用戶請求連接相應的資料庫,獲取數據,並將結果返回給用戶
C.應用伺服器一般需要具有數據訪問和數據存儲功能
D.應用伺服器一般提供了集群、負載均衡等公共服務,可以大幅度提高系統性能和可靠性
參考答案:C
2[單選題]設在某SELECT語句的WHERE子句中,需要對Grade列的空值進行處理。下列關於空值的操作中,錯誤的是__________。
A.Grade IS NOT NULL
B.Grade IS NULL
C.Grade = NULL
D.NOT (Grade IS NULL)
參考答案:C
3[單選題]如果有兩個事務,同時對資料庫中同一數據進行操作,不可能引起沖突的操作是
A.其中有一個是DELETE
B.一個是SELECT,另一個是UPDATE
C.兩個都是SELECT
D.兩個都是UPDATE
參考答案:C
4[單選題]如果有兩個事務,同時對資料庫中同一數據進行操作,不可能引起沖突的操作是
A.其中有一個是DELETE
B.一個是SELECT,另一個是UPDATE
C.兩個都是SELECT
D.兩個都是UPDATE
參考答案:C
5[單選題]若要求查找姓名中第二個字為‘陽’字的學生的學號和姓名,下列SQL語句中,哪一個(些)是正確的?
Ⅰ.SELECT S#,SNAME FROM S WHERE SNAME=‘_陽%’
Ⅱ.SELECT S#,SNAME FRQM S WHERE SNAME LIKE‘_陽%’
Ⅲ.SELECT S#,SNAME FROM S WHERE SNAME LIKE‘%陽%’
A.只有ⅠB.只有ⅡC.只有ⅢD.都正確
參考答案:B
參考解析:第(2)~(5)題基於“學生—選課—課程”資料庫中的3個關系: S(S#,SNAME,SEX,AGE), SC(S#,C#,GRADE), C(C#,CNAME,TEACHER), 它們的主碼分別是S#、(S#,C#)、C#
6[單選題]資料庫管理系統為提高數據查詢效率,可能會採用如下索引技術:
Ⅰ.有序索引 Ⅱ.聚集索引
Ⅲ.樹型索引 Ⅳ.散列(哈希)索引
其中,將屬性值作為參數,不採用索引鍵值比較,而是採用一定的計算方法定位數據的有()
A.僅ⅠB.僅Ⅰ、Ⅱ和ⅢC.僅ⅣD.都
參考答案:C
7[單選題]瀏覽器/伺服器架構是現階段非常流行的資料庫應用系統架構。在此架構中,應用伺服器起到了非常重要的作用。下列關於應用伺服器的說法,錯誤的是()
A.應用伺服器一般運行程序代碼,實現面向具體應用領域的業務規則,資料庫伺服器承擔數據存儲、管理等功能
B.應用伺服器會根據用戶請求連接相應的資料庫,獲取數據並進行處理,將結果返回給用戶
C.應用伺服器一般需具有數據訪問和數據存儲等功能,在資料庫伺服器出現問題時可以繼續向用戶提供服務
D.應用伺服器一般提供了集群、失效恢復、負載均衡等公共服務,可以大幅度提高系統性能和可靠性
參考答案:C
8[單選題]
下列屬於商場經營管理系統資料庫功能需求的是__________。
A.系統中不考慮財務核算
B.對基本銷售業務要求實現秒級響應
C.多個終端同時操作資料庫
D.系統需支持節假日折扣
參考答案:C
9[單選題]事務由於某些內部條件而無法繼續正常執行,如非法輸入、找不到數據等,這樣的故障屬於
A.系統故障B.磁碟故障C.事務故障D.介質故障
參考答案:C
10[單選題]人機界面是資料庫應用系統的一個重要組成部分,人機界面設計與用戶的關系非常密切。關於人機界面設計,下列說法錯誤的是()
A.人機界面設計時,應使用戶感覺系統運行始終處於用戶的控制之下,人機界面應該向用戶及時反饋,保持人機界面與用戶之間的雙向交流
B.當系統發生錯誤時,人機界面應為用戶提供有意義的反饋信息,有時可以提供截屏等功能,使用戶可以了解錯誤,並及時向技術人員反饋問題
C.良好的人機界面應能容忍用戶使用過程中發生的操作錯誤,並能夠方便地從錯誤中恢復
D.設計人機界面可採用原型迭代法,首先進行用戶界面詳細設計,然後與用戶不斷討論,改進設計方案
參考答案:D
11[單選題]現要利用Student表查詢年齡最小的學生的姓名和年齡。下列實現此功能的查詢語句中,正確的是__________。
A.SELECT Sname, MIN(Sage) FROM Student
B.SELECT Sname, Sage FROM Student WHERE Sage = MIN(Sage)
C.SELECT TOP 1 Sname, Sage FROM Student
D.SELECT TOP 1 Sname, Sage FROM Student ORDER BY Sage
參考答案:D
12[單選題]下列關於保持數據完整性的敘述中,不正確的是( )。
A.向關系SC插入元組時,S#和C#都不能是空值(NULL)
B.可以任意刪除關系SC中的元組
C.向任何一個關系插入元組時,必須保證關系主碼值的唯一性
D.可以任意刪除關系C中的元組
參考答案:D
13[單選題]在SQL Server 2008中,設各系統資料庫當前主要數據文件及日誌文件的大小如下表所示:
資料庫主要數據文件(MB)日誌文件(MB)
master152
model41
msdb82
tempdb61
現要在該系統中創建一個新的用戶資料庫,則用戶資料庫中主要數據文件的
大小不能小於()
A.15MBB.4MBC.8MBD.6MB
參考答案:B
14[單選題]設SC表中記錄成績的列為:Grade,類型為int。若在查詢成績時,希望將成績按“優”、“良”、“中”、“及格”和“不及格”形式顯示,正確的Case函數是__________。
A.Case Grade
When 90~100 THEN'優'
When 80~89 TIIEN'良'
When 70~79 THEN'中'
When 60~69 THEN'及格'。
Else'不及格’
End
B.Case
When Grade between 90 and 100 THEN Grade='優'
When Grade between 80 and 89 THEN Grade='良'
When Grade between 70 and 79 THEN Grade='中'
When Grade between 60 and 69 THEN Grade='及格’
Else Grade='不及格’
End
C.Case
When Grade between 90 and 100 THEN'優'
When Grade between 80 and 89 THEN'良’
When Grade between 70 and 79 THEN'中’
When Grade between 60 and 69 THEN'及格’
Else'不及格’
End
D.Case Grade
When 90~100 THEN Grade='優’
When 80~89 THEN Grade='良’
When 70~79 THEN Grade='由’
When 60~69 THEN Grade='及格’
Else Grade='不及格’
End
參考答案:C
15[單選題] 下列關於瀏覽器/伺服器架構中的應用伺服器的說法中,錯誤的是__________。
A.應用伺服器一般運行程序代碼,實現面向應用領域的業務規則
B.應用伺服器會根據用戶請求連接相應的資料庫,獲取數據,並將結果返回給用戶
C.應用伺服器一般需要具有數據訪問和數據存儲功能
D.應用伺服器一般提供了集群、負載均衡等公共服務,可以大幅度提高系統性能和可靠性
參考答案:C
16[單選題]設在某SELECT語句的WHERE子句中,需要對Grade列的空值進行處理。下列關於空值的操作中,錯誤的是__________。
A.Grade IS NOT NULL
B.Grade IS NULL
C.Grade = NULL
D.NOT (Grade IS NULL)
參考答案:C
更多計算機三級相關試題分享:
⑤ IBM認證資料庫考試試題
(1)已知表T1中有2行數據,T2中有3行數據,執行SQL語句
“select a.* from T1 a,T2 b”後,返回的行數為______
A、2行
B、3行
C、5行
D、6行
多表查詢沒有指定連接條件,會導致笛卡爾積的出現,返回行數等於2張表的行數乘積,返回6行記錄
考察:對多表連接、笛卡爾積的理解
答案:A
(2)、已知表T1和T2的欄位定義完全相同,T1,T2中各有5條不同的數據,其中T1有2條數據存在於表T2中,語句“select * from T1 union select * from T2”
返回的行數為_______
A、8行
B、10行
C、3行
D、12行
第二題? UNION在進行表鏈接後會篩選掉重復的記錄,所以在表鏈接後會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。
考察:UNION 的理解
答案: A
(3)、 已知表T1含有欄位ID、CourseID和Score,且數據為
ID CourseID Score
3 1 90
2 1 85
2 2 90
3 2 80
則語句“select id,sum(ScorE) from T1 group by ID”的執行結果為_________
A、 ID sum(ScorE)
—– ? ———-
3 ? 170
2 ? 175
B、 ID sum(ScorE)
—– ? ———-
2 ? 175
3 ? 170
C、 ID sum(ScorE)
—– ? ———-
2 ? 170
3 ? 175
D、 ID sum(ScorE)
—– ? ———-
3 ? 175
2 170
第三題 GROUP BY 對按照ID欄位進行分組,同時對ID相同欄位的ScorE進行求和,GROUP by 會自動對結果集進行排序所以答案選B
考察:group by 的理解
答案: B
(4)、電話號碼表t_phonebook中含有100萬條數據,其中號碼欄位PhoneNo上創建了唯一索引,且電話號碼全部由數字組成,要統計號碼頭為321的.電話號碼的數量,下面寫法執行速度最慢的是_________
A、 select count(*) from t_phonebook where phoneno >= ‘321’ and phoneno < ‘321A’
B、 select count(*) from t_phonebook where phoneno like ‘321%’
C、 select count(*) from t_phonebook where substring(phoneno,1,3) = ‘321’
A>或者<操作符會採用索引查找
B:LIKE通配符在XXX%情況下會應用索引,如果在%xxx%等情況下不會應用索引
答案: C:採用函數處理的欄位不能利用索引,例如substr()? 這個題好像寫成java的函數了
答案: C
(5)、已知表tbl中欄位land_ID建有索引,欄位cust_id建有唯一索引,下列語句查詢邏輯相同,其中執行效率最優的是
A、 SELECT * FROM tbl
WHERE land_id > 750
or (cust_id=180 or cust_id=560)
B、 SELECT * FROM tbl
WHERE (cust_id=180 or cust_id=560)
or land_id > 750
C、 SELECT * FROM tbl WHERE land_id > 750
UNION
SELECT * FROM tbl WHERE cust_id = 180
UNION
SELECT * FROM tbl WHERE cust_id = 560
D、 SELECT * FROM tbl WHERE land_id > 750
UNION
( SELECT * FROM tbl WHERE cust_id = 180
UNION ALL
SELECT * FROM tbl WHERE cust_id = 560
)
C/D相比較而言,D的執行效率更高一些
UNION在進行表鏈接後會篩選掉重復的記錄,所以在表鏈接後會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。實際大部分應用中是不會產生重復的記錄
採用UNION ALL操作符替代UNION,因為UNION ALL操作只是簡單的將兩個結果合並後就返回。
(6)、員工技能表Staffskill結構如下,Staff和Skill欄位建有唯一約束
staff VARCHAR2(10),
skill VARCHAR2(10)
哪條語句可以查詢同時擁有技能A和技能B的員工
A、 select staff from Staffskill where skill=’A’ OR skill=’B’
B、 select staff from Staffskill where skill=’A’ AND skill=’B’
C、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff
D、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff having count(*)>1
答案:D
(7)員工表staff表結構如下
staffNo varchar2(10),
Email varchar2(50)
哪一個SQL語句查詢出沒有E_mail地址的員工號
A、select staffno from Staff where Email = NULL
B、select staffno from Staff where Email <> NULL
C、select staffno from Staff where Email is null
D、select staffno from Staff where Email is not null
答案: C
(8)Oracle資料庫啟動步驟的順序為
1.Mount? 2.Open? 3.Nomount
A、3-1-2
B、2-3-1
C、2-1-3
D、3-2-1
答案:A
(9)存在兩個結構相同的資料庫表T1(col1,col2,col3)、T2(col1,col2,col3),寫出一SQL語句將所有T1數據導入到T2表
A、select col1,col2,col3 from T1 INTO T2 (col1,col2,col3)
B、INSERT T1 (col1,col2,col3) INTO T2(col1,col2,col3)
C、insert into T2 (col1,col2,col3) AS select col1,col2,col3 from T1;
D、insert into T2 (col1,col2,col3) select col1,col2,col3 from T1;
答案: D
10)一個表的欄位為varchar2,如果建表時沒有指定長度,則默認長度為:
A、1
B、25
C、38
D、255
E、4000
F、建表時varchar2類型欄位必須指定長度
答案:F
(11)用TRUNCATE和DELETE語句刪除表中數據的區別?
A、TRUNCATE命令不記錄日誌
B、TRUNCATE命令記錄日誌
C、DELETE命令不記錄日誌
答案:A
(12)如下查詢語句SELECT id_number,100/quantity from inventory如果quantity為空,則查詢語句的第二個欄位將返回
A、 a space
B、 a null value
C、 a value of 0
D、 a value of 100
E、 the keywork null
答案:B
(13)如下語句:SELECT i.id_number,m.id_number FROM inventory i,manufacturer m
WHERE i.manufacturer_id = m.id_number
Order by inventory.description
執行時是錯誤的,請問以下措施哪個能夠改正這個錯誤?
A 在order by的子句中使用表的別名
B 在where子句中去掉表的別名
C 在where子句中用表名代替表的別名
D 在order by子句中去掉表名,只要欄位名稱即可
(如果2張表中,不同時存在欄位名為description的話,D答案也是正確的)
答案:A
14)A表欄位a 類型int中有100條記錄,值分別為1至100。如下語句
SELECT a FROM A
WHERE A BETWEEN 1 AND 50
OR (A IN (25,70,95)
AND A BETWEEN 25 AND 75)
則如下哪個值在這個sql語句返回的結果集中
A、30? B、51? C、75? D、95
答案:A
15) 變數v_time = ‘23-MAY-00’,如下那條語句返回值為‘01-JAN-00’?
A SELECT ROUND(V_TIME,’DAY’) FROM DUAL;
B SELECT ROUND(V_TIME,’YEAR’) FROM DUAL;
C SELECT ROUND(V_TIME,’MONTH’) FROM DUAL;
D SELECT ROUND(TO_CHAR(V_TIME,’YYYY’)) FROM DUAL;
答案:B
16)關於索引(index)的說法哪些是錯誤?
A、創建索引能提高數據插入的性能
B、索引應該根據具體的檢索需求來創建,在選擇性好的列上創建索引
C、索引並非越多越好
D、建立索引可使檢索操作更迅速
答案: A
(17)指出下面sql語句的錯誤之處:
select id_number “Part Number”,sum(price) “price” from inventory
where price > 50
group by “Part Number”
order by 2;
A、order by 2
B、from inventory
C、 where price > 50
D、group by “Part Number”
答案:D
(18)如下語句
if v_num > 5 then
v_example := 1;
elsif v_num > 10 then
v_example := 2;
elsif v_num < 20 then
v_example := 3;
elsif v_num < 39 then
v_example := 4;
else? v_example := 5;
如果v_num = 37,則v_example的值是多少?
A、1 ? B、2 C、3 D、4 E、5
答案:A