數據庫 基礎題

一.選擇題

1. 下面敘述正確的是___c___。

A、算法的執行效率與數據的存儲結構無關

B、算法的空間複雜度是指算法程序中指令(或語句)的條數

C、算法的有窮性是指算法必須能在執行有限個步驟之後終止D、以上三種描述都不對

2. 以下數據結構中不屬於線性數據結構的是___c___。A、隊列B、線性表C、二叉樹D、棧

3. 在一棵二叉樹上第5層的結點數最多是___b___。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三者之間的關係是____D__。

A、DBS包括DB和DBMS B、DBMS包括DB和DBS

C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS

16. 在"選項"對話框的"文件位置"選項卡中可以設置______。

A、表單的默認大小 B、默認目錄

C、日期和時間的顯示格式 D、程序代碼的顏色

17. 要控制兩個表中數據的完整性和一致性可以設置"參照完整性",要求這兩個表___A___。

A、是同一個數據庫中的兩個表 B、不同數據庫中的兩個表

C、兩個自由表 D、一個是數據庫表另一個是自由

18. 定位第一條記錄上的命令是______。

A、Go TOP B、GO BOTTOM C、GO 6 D、SKIP

19. 在關係模型中,實現"關係中不允許出現相同的元組"的約束是通過___B___。

A、候選鍵 B、主鍵 C、外鍵 D、超鍵

20. 設當前數據庫有10條記錄(記錄未進行任何索引),在下列三種情況下,當前記錄號爲1時;EOF()爲真時;BOF()爲真時,命令?RECN()的結果分別是______。

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表的年齡列

27. SELECT-SQL語句是__B____。

A、選擇工作區語句 B、數據查詢語句 C、選擇標準語句 D、數據修改語句

28. SQL語言是______語言。A、層次數據庫 B、網絡數據庫 C、關係數據庫 D、非數據庫

29. 在SQL中,刪除視圖用______。

A、DROP SCHEMA命令 B、CREATE TABLE命令 C、DROP VIEW命令 D、DROP INDEX命令

30. 以下屬於非容器類控件的是______。A、Form B、Label C、page D、Container

31. 將查詢結果放在數組中應使用______短語。

A、INTO CURSOR B、TO ARRAY C、INTO TABLE D、INTO ARRAY

32. 在命令窗口執行SQL命令時,若命令要佔用多行,續行符是______。

A、冒號(:) B、分號(;) C、逗號(,) D、連字符(-)

33. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對於圖書管理數據庫,查詢0001號借書證的讀者姓名和所借圖書的書名。

SQL語句正確的是___a___。

SELECT 姓名,書名 FROM 借閱,圖書,讀者 WHERE;

借閱.借書證號="0001" AND;

______

______

A、圖書.總編號=借閱.總編號 AND;

讀者.借書證號=借閱.借書證號

B、圖書.分類號=借閱.分類號 AND;

讀者.借書證號=借閱.借書證號

C、讀者.總編號=借閱.總編號 AND;

讀者.借書證號=借閱.借書證號

D、圖書.總編號=借閱.總編號 AND;

讀者.書名=借閱.書名

34. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對於圖書管理數據庫,分別求出各個單位當前借閱圖書的讀者人次。下面的SQL語句正確的是______。

SELECT 單位,______ FROM 借閱,讀者 WHERE;

借閱.借書證號=讀者.借書證號 __a____

A、COUNT(借閱.借書證號) GROUP BY 單位 B、SUM(借閱.借書證號) GROUP BY 單位

C、COUNT(借閱.借書證號) ORDER BY 單位 D、COUNT(借閱.借書證號) HAVING 單位

35. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對於圖書管理數據庫,檢索借閱了《現代網絡技術基礎》一書的借書證號。下面SQL語句正確的是______。

SELECT 借書證號 FROM 借閱 WHERE 總編號=;

______

A、(SELECT 借書證號 FROM 圖書 WHERE 書名="現代網絡技術基礎")

B、(SELECT 總編號 FROM 圖書 WHERE 書名="現代網絡技術基礎")

C、(SELECT 借書證號 FROM 借閱 WHERE 書名="現代網絡技術基礎")

D、(SELECT 總編號 FROM 借閱 WHERE 書名="現代網絡技術基礎")

二、填空題

36. 算法的複雜度主要包括______複雜度和空間複雜度。

37. 數據的邏輯結構在計算機存儲空間中的存放形式稱爲數據的______。

38. 若按功能劃分,軟件測試的方法通常分爲白盒測試方法和______測試方法。

39. 如果一個工人可管理多個設施,而一個設施只被一個工人管理,則實體"工人"與實體"設備"之間存在______聯繫。

40. 關係數據庫管理系統能實現的專門關係運算包括選擇、連接和______。

41. 命令?LEN("THIS IS MY BOOK")的結果是______。

42.SQL SELECT語句爲了將查詢結果存放到臨時表中應該使用______短語。

43. 多欄報表的欄目數可以通過______來設置。

44. 在打開項目管理器之後再打開"應用程序生成器",可以通過按ALT+F2鍵,快捷菜單和"工具"菜單中的______。

45. 數據庫系統的核心是______。

46. 查詢設計器中的"聯接"選項卡,可以控制______選擇。

47. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

用SQL的CREATE命令建立借閱表(字段順序要相同),請對下面的SQL語句填空:

______

48. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對圖書管理數據庫,查詢由"清華大學出版社"或"電子工業出版社"出版,並且單價不超出20元的書名。請對下面的SQL語句填空:

SELECT 書名,出版單位,單價 FROM 圖書;

WHERE_______ AND;

_______

49. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對圖書管理數據庫,求共借出多少種圖書。請對下面的SQL語句填空:

SELECT _______ FROM 借閱

第一套題答案

選擇題

1-5 CCBAD 6-10 BDBCA 11-15 DCBAA 16-20 BAABA 21-25 CCBBA 26-30 BBCCB 31-35 DDAAB

填空題

36.時間 37.模式或邏輯模式 38.黑盒 39. 一對多 或 1對多 或 一對n 或 1:N 或 1:n 或 1:n 或 1:N 或 一對m 或 1:M 或 1:m 或 1:m 或 1:N 40. 投影 41.15 42. Into cursor 或 Into cursor cursorname 43. 頁面設置 或 列數 44. 應用程序生成器 45. 數據庫管理系統 或 DBMS 46. 聯接類型 或 聯接條件 47. CREATE TABLE 借閱 (借書證號 C(4),總編號 C(6),借書日期 D(8)) 或 CREA TABL 借閱 (借書證號 C(4),總編號 C(6),借書日期D(8)) 或 CREATE TABLE 借閱 (借書證號 C(4),總編號 C(6),借書日期 D) 或 CREA TABL 借閱 (借書證號 C(4),總編號 C(6),借書日期 D) 48. 單價<=20 或 (出版單位="清華大學出版社" OR 出版單位="電子工業出版社") 或 (出版單位="電子工業出版社" OR 出版單位="清華大學出版社") 或 (出版單位='清華大學出版社' OR 出版單位='電子工業出版社') 與 (出版單位="清華大學出版社" OR 出版單位="電子工業出版社") 或 (出版單位='清華大學出版社‘) 49. COUNT(DISTINCT 總編號) 或 COUN(DISTINCT 總編號) 或 COUNT(DIST 總編號) 或 COUN(DIST 總編號)

第二套題

一、 選擇題

1. 以下數據結構中不屬於線性數據結構的是______。

A、隊列 B、線性表 C、二叉樹 D、棧

2. 在結構化方法中,用數據流程圖(DFD)作爲描述工具的軟件開發階段是__B____。

A、可行性分析 B、需求分析 C、詳細設計 D、程序編碼

3. 結構化程序設計主要強調的是__B____。

A、程序的規模 B、程序的易讀性 C、程序的執行效率 D、程序的可移植性

4. 在軟件生命週期中,能準確地確定軟件系統必須做什麼和必須具備哪些功能的階段是_D_____。

A、概要設計 B、詳細設計 C、可行性分析 D、需求分析

5. 下列關於棧的敘述中正確的是___D___。A、在棧中只能插入數據 B、在棧中只能刪除數據

C、棧是先進先出的線性表 D、棧是先進後出的線性表

6. 下面不屬於軟件設計原則的是______。A、抽象 B、模塊化 C、自底向上 D、信息隱蔽

7. 對長度爲N的線性表進行順序查找,在最壞情況下所需要的比較次數爲__B____。

A、N+1 B、N C、(N+1)/2 D、N/2

8. 視圖設計一般有3種設計次序,下列不屬於視圖設計的是______。

A、自頂向下 B、由外向內 C、由內向外 D、自底向上

9. 下列有關數據庫的描述,正確的是______。A、數據庫是一個DBF文件 B、數據庫是一個關係

C、數據庫是一個結構化的數據集合 D、數據庫是一組文件

10. 下列說法中,不屬於數據模型所描述的內容的是______。

A、數據結構 B、數據操作 C、數據查詢 D、數據約束

11. 在下面的Visual FoxPro表達式中,運算結果是邏輯真的是______。

A、EMPTY(.NULL.) B、LIKE('acd','ac?') C、AT('a','123abc') D、EMPTY(SPACE(2))

12. 表達式VAL(SUBS("奔騰586",5,1))*Len("visual foxpro")的結果是______。

A、13.00 B、14.00 C、45.00 D、65.00

13. 以下關於自由表的敘述,正確的是______。

A、全部是用以前版本的FOXPRO(FOXBASE)建立的表

B、可以用Visual FoxPro建立,但是不能把它添加到數據庫中

C、自由表可以添加到數據庫中,數據庫表也可以從數據庫中移出成爲自由表

D、自由表可以添加到數據庫中,但數據庫表不可從數據庫中移出成爲自由表

14. 下面關於數據環境和數據環境中兩個表之間的關係的陳述中,______是正確的。

A、數據環境是對象,關係不是對象 B、數據環境不是對象,關係是對象

C、數據環境是對象,關係是數據環境中的對象 D、數據環境和關係均不是對象

15. 在"報表設計器"中,可以使用的控件是______。

A、標籤、域控件和線條 B、標籤、域控件和列表框

C、標籤、文本框和列表框 D、佈局和數據源

16.用二維表數據來表示實體及實體之間聯繫的數據模型稱爲______。

A、實體--聯繫模型 B、層次模型 C、網狀模型 D、關係模型

17. 用來指明覆選框的當前選中狀態的屬性是______。A、Selected B、Caption C、Value D、ControlSource

18. 使用菜單操作方法打開一個在當前目錄下已經存在的查詢文件zgjk.qpr後,在命令窗口生成的命令是____。

A、OPEN QUERY zgjk.qpr B、MODIFY QUERY zgjk.qpr

C、DO QUERY zgjk.qpr D、CREATE QUERY zgjk.qpr

19. 可以伴隨着表的打開而自動打開的索引是______。

A、單一索引文件(IDX) B、複合索引文件(CDX)C、結構化複合索引文件 D、非結構化複合索引文件

20. 在數據庫設計器中,建立兩個表之間的一對多聯繫是通過以下索引實現的______。

A、"一方"表的主索引或候選索引,"多方"表的普通索引

B、"一方"表的主索引,"多方"表的普通索引或候選索引

C、"一方"表的普通索引,"多方"表的主索引或候選索引

D、"一方"表的普通索引,"多方"表的候選索引或普通索引

21. 下列函數中函數值爲字符型的是______。 A、DATE() B、TIME() C、YEAR() D、DATETIME()

22. 下面對控件的描述正確的是______。

A、用戶可以在組合框中進行多重選擇 B、用戶可以在列表框中進行多重選擇

C、用戶可以在一個選項組中選中多個選項按鈕 D、用戶對一個表單內的一組複選框只能選中其中一個

23. 確定列表框內的某個條目是否被選定應使用的屬性是______。

A、Value B、ColumnCount C、ListCount D、Selected

24. 設有關係R1和R2,經過關係運算得到結果S,則S是______。

A、一個關係 B、一個表單 C、一個數據庫 D、一個數組

25. DBAS指的是______。A、數據庫管理系統B、數據庫系統C、數據庫應用系統 D、數據庫服務系統

26. 設X="ABC",Y="ABCD",則下列表達式中值爲.T.的是______。A、X=Y B、X==Y C、X$Y D、AT(X,Y)=0

27. 在表結構中,邏輯型、日期型、備註型字段的寬度分別固定爲______。

A、3,8,10 B、1,6,4 C、1,8,任意 D、1,8,4

28. 在標準SQL中,建立視圖的命令是______。

A、CREATE SCHEMA命令 B、CREATE TABLE命令 C、CREATE VIEW命令 D、CREATE INDEX命令

29. 有關SCAN循環結構,敘述正確的是______。

A、SCAN循環結構中的LOOP語句,可將程序流程直接指向循環開始語句SCAN,首先判斷EOF()函數的真假

B、在使用SCAN循環結構時,必須打開某一個數據庫

C、SCAN循環結構的循環體中必須寫有SKIP語句

D、SCAN循環結構,如果省略了子句\FOR和WHILE條件子句,則直接退出循環

30. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對於圖書管理數據庫,要查詢所藏圖書中,各個出版社的圖書最高單價、平均單價和冊數,下面SQL語句正確的是______。

SELECT 出版單位,______,______,______;

FROM 圖書管理!圖書 ______ 出版單位

A、MIN(單價) AVGAGE(單價) COUNT(*) GROUP BY B、MAX(單價) AVG(單價) COUNT(*) ORDER BY

C、MAX(單價) AVG(單價) SUM(*) ORDER BY D、MAX(單價) AVG(單價) COUNT(*) GROUP BY

31. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

對於圖書管理數據庫,求CIE單位借閱圖書的讀者的人數。

下面SQL語句正確的是______。

SELECT ______ FROM 借閱 WHERE;

借書證號 _______

A、COUNT (DISTINCT 借書證號)

IN (SELECT 借書證號 FROM 讀者 WHERE 單位="CIE")

B、COUNT (DISTINCT 借書證號)

IN (SELECT 借書證號 FROM 借閱 WHERE 單位="CIE")

C、SUM (DISTINCT 借書證號)

IN (SELECT 借書證號 FROM 讀者 WHERE 單位="CIE")

D、SUM (DISTINCT 借書證號)

IN (SELECT 借書證號 FOR 借閱 WHERE 單位="CIE")

32. 查詢訂購單號(字符型,長度爲4)尾字符是"1"的錯誤命令是______。

A、SELECT * FROM 訂單 WHERE SUBSTR(訂購單號,4)="1"

B、SELECT * FROM 訂單 WHERE SUBSTR(訂購單號,4,1)="1"

C、SELECT * FROM 訂單 WHERE "1"$訂購單號

D、SELECT * FROM 訂單 WHERE RIGHT(訂購單號,1)="1"

33. 在關係模型中,爲了實現"關係中不允許出現相同元組"的約束應使用______。

A、臨時關鍵字 B、主關鍵字 C、外部關鍵字 D、索引關鍵字

34. 根據"職工"項目文件生成emp_sys.exe應用程序的命令是______。

A、BUILD EXE emp_sys FROM 職工 B、BUILD APP emp_sys.exe FROM 職工

C、LIKE EXE emp_sys FROM 職工 D、LIKE APP emp_sys.exe FROM 職工

35. 當前盤當前目錄下有數據庫:學院.dbc,其中有"教師"表和"學院"表。

"教師"表:

 

"學院"表:

 

有SQL語句:

SELECT DISTINCT 系號 FROM 教師 WHERE 工資>=;

ALL (SELECT 工資 FROM 教師 WHERE 系號="02")

與如上語句等價的SQL語句是______。

A、SELECT DISTINCT 系號 FROM 教師 WHERE工資>=;

(SELECT MAX(工資) FROM 教師 WHERE 系號="02")

B、SELECT DISTINCT 系號 FROM 教師 WHERE 工資>=;

(SELECT MIN(工資) FROM 教師 WHERE 系號="02")

C、SELECT DISTINCT 系號 FROM 教師 WHERE 工資>=;

ANY(SELECT 工資 FROM 教師 WHERE 系號="02")

D、SELECT DISTINCT 系號 FROM 教師 WHERE 工資>=;

SOME (SELECT 工資 FROM 教師 WHERE 系號="02")

二、 填空題

36. 若按功能劃分,軟件測試的方法通常分爲白盒測試方法和______測試方法。

37. 數據庫系統的三級模式分別爲______模式、內部級模式與外部級模式。

38. 在最壞情況下,冒泡排序的時間複雜度爲______。

39. 在面向對象方法中,信息隱蔽是通過對象的______性來實現的。

40. 關係模型的數據操縱即是建立在關係上的數據操縱,一般有______、增加、刪除和修改四種操作。

41.要把幫助文件設置爲複製到硬盤上的Foxhelp.chm文件,需要在"選項"對話框的______選項卡上設置。

42. TIME( )的返回值的數據類型是______類型。

43. 在定義字段有效性規則中,在規則框中輸入的表達式中類型是________。

44. 設計報表通常包括兩部分內容:______和佈局。

45. ______是指只有滿足聯接條件的記錄才包含在查詢結果中。

46. 設有圖書管理數據庫:

圖書(總編號C(6),分類號C(8),書名C(16),作者C(6),出版單位C(20),單價N(6,2))

讀者(借書證號C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))

借閱(借書證號C(4),總編號C(6),借書日期D(8))

檢索書價在15元至25元(含15元和25元)之間的圖書的書名、作者、書價和分類號,結果按分類號升序排序。

SELECT 書名,作者,單價,分類號 FROM 圖書;

WHERE______;

ORDER BY______;

47. 設有如下關係表R、S和T:

R(BH,XM,XB,DWH)

S(SWH,DWM)

T(BH,XM,XB,DWH)

實現R∪T的SQL語句是_______。

48. 設有如下關係表R:

R(NO,NAME,SEX,AGE,CLASS)

主關鍵字是NO

其中NO爲學號,NAME爲姓名,SEX爲性別,AGE爲年齡,CLASS爲班號。寫出實現下列功能的SQL語句。

插入"95031"班學號爲30,姓名爲"鄭和"的學生記錄;_______。

49. 設有如下關係表R:

R(NO,NAME,SEX,AGE,CLASS)

主關鍵字是NO

其中NO爲學號(數值型),NAME爲姓名,SEX爲性別,AGE爲年齡,CLASS爲班號。寫出實現下列功能的SQL語句。

刪除學號爲20的學生記錄;______。

第二套題答案

1-5 CBBDD 6-10 CBBCC 11-15 DDCCA 16-20 DCBCA 21-25 BBDAC 26-30 CDCBD 31-35 ACBBA

36.黑盒 37.概念或概念級 38.n(n-1)/2 39.封裝 40.查詢 41.文件位置 42.字符 或 C 43.邏輯表達式

44.數據源 45.內部聯接

46. 單價 BETWEEN 15 AND 25 或 單價 BETW 15 AND 25 或 單價 BETWE 15 AND 25 或 單價>=15 and 單價<=25 或 單價>=15 and 單價=<25 或 單價=>15 and 單價<=25 或 單價=>15 and 單價=<25 與 分類號 ASC 或 分類號

47. SELECT * FROM R UNION SELECT * FROM T 或 SELE * FROM R UNIO SELE * FROM T 或 SELECT * FROM R UNIO SELECT * FROM T 或 SELE * FROM R UNION SELE * FROM T

48. INSERT INTO R(NO,NAME,CLASS) VALUES(30,"鄭和","95031") 或 INSE INTO R(NO,NAME,CLASS) VALUES(30,"鄭和","95031")

49. DELETE FROM R WHERE NO=20 或 DELE FROM R WHERE NO=20 或 DELE FROM R WHER NO=20 或 DELETE FROM R WHER NO=20

數據庫面試題集

數據庫筆試題及答案I   

5 回滾段的作用是什麼

回滾段用於保存數據修改前的映象,這些信息用於生成讀一致性數據庫信息、在數據庫恢復和Rollback時使用。一個事務只能使用一個回滾段。

事務回滾:當事務修改表中數據的時候,該數據修改前的值(即前影像)會存放在回滾段中,當用戶回滾事務(ROLLBACK)時,ORACLE將會利用回滾段中的數據前影像來將修改的數據恢復到原來的值。

事務恢復:當事務正在處理的時候,例程失敗,回滾段的信息保存在undo表空間中,ORACLE將在下次打開數據庫時利用回滾來恢復未提交的數據。

讀一致性:當一個會話正在修改數據時,其他的會話將看不到該會話未提交的修改。 當一個語句正在執行時,該語句將看不到從該語句開始執行後的未提交的修改(語句級讀一致性)

當ORACLE執行SELECT語句時,ORACLE依照當前的系統改變號(SYSTEM CHANGE NUMBER-SCN) 來保證任何前於當前SCN的未提交的改變不被該語句處理。可以想象:當一個長時間的查詢正在執行時, 若其他會話改變了該查詢要查詢的某個數據塊,ORACLE將利用回滾段的數據前影像來構造一個讀一致性視圖

6 日誌的作用是什麼

日誌文件(Log File)記錄所有對數據庫數據的修改,主要是保護數據庫以防止故障,以及恢復數據時使用。其特點如下:

   a)每一個數據庫至少包含兩個日誌文件組。每個日誌文件組至少包含兩個日誌文件成員。

   b)日誌文件組以循環方式進行寫操作。

   c)每一個日誌文件成員對應一個物理文件。

記錄數據庫事務,最大限度地保證數據的一致性與安全性 

重做日誌文件:含對數據庫所做的更改記錄,這樣萬一出現故障可以啓用數據恢復,一個數據庫至少需要兩個重做日誌文件

歸檔日誌文件:是重做日誌文件的脫機副本,這些副本可能對於從介質失敗中進行恢復很必要。

7 SGA主要有那些部分,主要作用是什麼

系統全局區(SGA):是ORACLE爲實例分配的一組共享緩衝存儲區,用於存放數據庫數據和控制信息,以實現對數據庫數據的管理和操作。

SGA主要包括:

a)共享池(shared pool) :用來存儲最近執行的SQL語句和最近使用的數據字典的數據。

b)數據緩衝區 (database buffer cache):用來存儲最近從數據文件中讀寫過的數據。

c)重作日誌緩衝區(redo log buffer):用來記錄服務或後臺進程對數據庫的操作。

另外在SGA中還有兩個可選的內存結構:

d)Java pool:   用來存儲Java代碼。

e)Large pool: 用來存儲不與SQL直接相關的大型內存結構。備份、恢復使用。

GA:db_cache/shared_pool/large_pool/java_pool

db_cache: 數據庫緩存(Block Buffer)對於Oracle數據庫的運轉和性能起着非常關鍵的作用,它佔據Oracle數據庫SGA(系統共享內存區)的主要部分。Oracle數據庫通過使用LRU算法,將最近訪問的數據塊存放到緩存中,從而優化對磁盤數據的訪問.

shared_pool: 共享池的大小對於Oracle 性能來說都是很重要的。共享池中保存數據字典高速緩衝和完全解析或編譯的的PL/SQL 塊和SQL 語句及控制結構

large_pool: 使用MTS配置時,因爲要在SGA中分配UGA來保持用戶的會話,就是用Large_pool來保持這個會話內存使用RMAN做備份的時候,要使用Large_pool這個內存結構來做磁盤I/O緩存器

java_pool: 爲java procedure預備的內存區域,如果沒有使用java proc,java_pool不是必須的

8 Oracle系統進程主要有哪些,作用是什麼

數據寫進程(DBWR):負責將更改的數據從數據庫緩衝區高速緩存寫入數據文件

日誌寫進程(LGWR):將重做日誌緩衝區中的更改寫入在線重做日誌文件

系統監控   (SMON): 檢查數據庫的一致性如有必要還會在數據庫打開時啓動數據庫的恢復

進程監控   (PMON): 負責在一個Oracle 進程失敗時清理資源

檢查點進程(CKPT):負責在每當緩衝區高速緩存中的更改永久地記錄在數據庫中時,更新控制文件和數據文件中的數據庫狀態信息。

歸檔進程   (ARCH):在每次日誌切換時把已滿的日誌組進行備份或歸檔

恢復進程   (RECO): 保證分佈式事務的一致性,在分佈式事務中,要麼同時commit,要麼同時rollback;

作業調度器(CJQ ):   負責將調度與執行系統中已定義好的job,完成一些預定義的工作.

三:備份恢復類

1 備份如何分類

邏輯備份:exp/imp 指定表的邏輯備份

物理備份:

熱備份:alter tablespace begin/end backup;

冷備份:脫機備份(database shutdown)

RMAN備份

full backup/incremental backup(累積/差異)

物理備份

物理備份是最主要的備份方式。用於保證數據庫在最小的數據庫丟失或沒有數據丟失的情況下得到恢復。

冷物理

冷物理備份提供了最簡單和最直接的方法保護數據庫因物理損壞丟失。建議在以下幾種情況中使用。

對一個已經存在大最數據量的數據庫,在晚間數據庫可以關閉,此時應用冷物理備份。

對需對數據庫服務器進行升級,(如更換硬盤),此時需要備份數據庫信息,並在新的硬盤中恢復這些數據信息,建議採用冷物理備份。

熱物理

主要是指備份過程在數據庫打開並且用戶可以使用的情況下進行。需要執行熱物理備份的情況有:

由於數據庫性質要求不間斷工作,因而此時只能採用熱物理備份。

由於備份的要求的時間過長,而數據庫只能短時間關閉時。

邏輯備份 (EXP/IMP)

邏輯備份用於實現數據庫對象的恢復。但不是基於時間點可完全恢復的備份策略。只能作爲聯機備份和脫機備份的一種補充。

完全邏輯備份

完全邏輯備份是將整個數據庫導出到一個數據庫的格式文件中,該文件可以在不同的數據庫版本、操作系統和硬件平臺之間進行移植。

指定表的邏輯備份

通過備份工具,可以將指定的數據庫表備份出來,這可以避免完全邏輯備份所帶來的時間和財力上的浪費。

2 歸檔是什麼含義

關於歸檔日誌:Oracle要將填滿的在線日誌文件組歸檔時,則要建立歸檔日誌(archived redo log)。其對數據庫備份和恢復有下列用處:

數據庫後備以及在線和歸檔日誌文件,在操作系統和磁盤故障中可保證全部提交的事物可被恢復。

在數據庫打開和正常系統使用下,如果歸檔日誌是永久保存,在線後備可以進行和使用。

數據庫可運行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式

數據庫在NOARCHIVELOG方式下使用時,不能進行在線日誌的歸檔,

數據庫在ARCHIVELOG方式下運行,可實施在線日誌的歸檔

歸檔是歸檔當前的聯機redo日誌文件。

SVRMGR> alter system archive log current;

數據庫只有運行在ARCHIVELOG模式下,並且能夠進行自動歸檔,纔可以進行聯機備份。有了聯機備份纔有可能進行完全恢復。

3 如果一個表在2004-08-04 10:30:00 被drop,在有完善的歸檔和備份的情況下,如何恢復

9i 新增的FLASH BACK 應該可以;

Logminer應該可以找出DML。

有完善的歸檔和備份,先歸檔當前數據,然後可以先恢復到刪除的時間點之前,把DROP 的表導出來,然後再恢復到最後歸檔時間;

手工拷貝回所有備份的數據文件

Sql〉startup mount;

sql〉alter database recover automatic until time '2004-08-04:10:30:00';

sql〉alter database open resetlogs;

4 rman是什麼,有何特點

RMAN(Recovery Manager)是DBA的一個重要工具,用於備份、還原和恢復oracle數據庫, RMAN 可以用來備份和恢復數據庫文件、歸檔日誌、控制文件、系統參數文件,也可以用來執行完全或不完全的數據庫恢復。

RMAN有三種不同的用戶接口:COMMAND LINE方式、GUI 方式(集成在OEM 中的備份管理器)、API 方式(用於集成到第三方的備份軟件中)。

具有如下特點:

1)功能類似物理備份,但比物理備份強大N倍;

2)可以壓縮空塊;

3)可以在塊水平上實現增量;

4)可以把備份的輸出打包成備份集,也可以按固定大小分割備份集;

5)備份與恢復的過程可以自動管理;

6)可以使用腳本(存在Recovery catalog 中)

7)可以做壞塊監測

5 standby的特點

備用數據庫(standby database):ORACLE推出的一種高可用性(HIGH AVAILABLE)數據庫方案,在主節點與備用節點間通過日誌同步來保證數據的同步,備用節點作爲主節點的備份,可以實現快速切換與災難性恢復,從920開始,還開始支持物理與邏輯備用服務器。

9i中的三種數據保護模式分別是:

1)、MAXIMIZE PROTECTION :最大數據保護與無數據分歧,LGWR將同時傳送到備用節點,在主節點事務確認之前,備用節點也必須完全收到日誌數據。如果網絡不好,引起LGWR不能傳送數據,將引起嚴重的性能問題,導致主節點DOWN機。

2)、MAXIMIZE AVAILABILITY :無數據丟失模式,允許數據分歧,允許異步傳送。

正常情況下運行在最大保護模式,在主節點與備用節點的網絡斷開或連接不正常時,自動切換到最大性能模式,主節點的操作還是可以繼續的。在網絡不好的情況下有較大的性能影響。

3)、MAXIMIZE PERFORMANCE:這種模式應當可以說是從8i繼承過來的備用服務器模式,異步傳送,無數據同步檢查,可能丟失數據,但是能獲得主節點的最大性能。9i在配置DATA GUARD的時候默認就是MAXIMIZE PERFORMANCE

6 對於一個要求恢復時間比較短的系統(數據庫50G,每天歸檔5G),你如何設計備份策略

數據庫比較大邏輯備份沒什麼必要,每天歸檔5G,每週三/週六自動歸檔10G,每月RMAN歸檔全庫。應該有standby。

rman/每月一號 level 0 每週末/週三 level 1 其它每天level 2



4.       如果系統現在需要在一個很大的表上創建一個索引,你會考慮那些因素,如何做以儘量減小對應用的影響

可以先表分析一下,然後測試創建索引前後對應用的性能影響;

需要考慮的是該索引列不經常更新,不是有很多重複值的情況時, 在大表中使用索引特別有效. 創建的索引可以跟數據表分不同表空間存儲。

在系統比較空閒時nologging選項(如果有dataguard則不可以使用nologging)

大的sort_ared_size或pga_aggregate_target較大

5.       對raid10 和raid5有何認識

RAID 10(或稱RAID 1+0)與RAID 0+1不同,它是用硬盤驅動器先組成RAID 1陣列,然後在RAID 1陣列之間再組成RAID 0陣列。

RAID 10模式同RAID 0+1模式一樣具有良好的數據傳輸性能,但卻比RAID 0+1具有更高的可靠性。RAID 10陣列的實際容量爲M×n/2,磁盤利用率爲50%。RAID 10也需要至少4個硬盤驅動器構成,因而價格昂貴。

RAID 10的可靠性同RAID 1一樣,但由於RAID 10硬盤驅動器之間有數據分割,因而數據傳輸性能優良。 

RAID 5與RAID 3很相似,不同之處在於RAID 5的奇偶校驗信息也同數據一樣被分割保存到所有的硬盤驅動器,而不是寫入一個指定的硬盤驅動器,從而消除了單個奇偶校驗硬盤驅動器的瓶頸問題。RAID 5磁盤陣列的性能比RAID 3有所提高,但仍然需要至少3塊硬盤驅動器。其實際容量爲M×(n-1),磁盤利用率爲(n-1)/n 。 

五:綜合隨意類

1.       你最擅長的是oracle哪部分?

pl/sql及sql優化

2.       喜歡oracle嗎?喜歡上論壇嗎?或者偏好oracle的哪一部分?

喜歡。PL/SQL比較得心應手。

3.       隨意說說你覺得oracle最有意思的部分或者最困難的部分

我對數據庫的備份/恢復和性能調優經驗明顯不足,自然覺得有些困難。

基於ORACLE的研究應該是個寬廣的領域,所以我覺得還是有意思的。

4.       爲何要選擇做DBA呢?

我對數據庫的備份/恢復和性能調優經驗明顯不足,主要是缺乏環境和交流。

因此,算不上什麼DBA。不過因此我更需要這樣的機會。

不過就整個ORACLE 來說,一直從事與它相關的工作,感情還是頗深的。放棄可惜。而且就技術本身而言我覺得自己還是有學習和創新的能力,它的諸如數據倉庫,數據挖掘之類的領域也很廣。

 


13.    存儲過程和函數的區別

存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲過程,而函數通常是數據庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定用戶表。

14.    事務是什麼?

事務是作爲一個邏輯單元執行的一系列操作,一個邏輯工作單元必須有四個屬性,稱爲 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成爲一個事務:

原子性:事務必須是原子工作單元;對於其數據修改,要麼全都執行,要麼全都不執行。

一致性:事務在完成時,必須使所有的數據都保持一致狀態。在相關數據庫中,所有規則都必須應用於事務的修改,以保持所有數據的完整性。事務結束時,所有的內部數據結構(如 B 樹索引或雙向鏈表)都必須是正確的。

隔離性:由併發事務所作的修改必須與任何其它併發事務所作的修改隔離。事務查看數據時數據所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會查看中間狀態的數據。這稱爲可串行性,因爲它能夠重新裝載起始數據,並且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。

持久性:事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

15.    遊標的作用?如何知道遊標已經到了最後?

遊標用於定位結果集的行,通過判斷全局變量@@FETCH_STATUS可以判斷是否到了最後,通常此變量不等於0表示出錯或到了最後。

16.    觸發器分爲事前觸發和事後觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別。

事前觸發器運行於觸發事件發生之前,而事後觸發器運行於觸發事件發生之後。通常事前觸發器可以獲取事件之前和新的字段值。

語句級觸發器可以在語句執行前或後執行,而行級觸發在觸發器所影響的每一行觸發一次。

17.    SQL Server常用測試題(1)

問題描述:

爲管理崗位業務培訓信息,建立3個表:

S (S#,SN,SD,SA) S#,SN,SD,SA 分別代表學號、學員姓名、所屬單位、學員年齡

C (C#,CN ) C#,CN 分別代表課程編號、課程名稱

SC ( S#,C#,G ) S#,C#,G 分別代表學號、所選修的課程編號、學習成績

1. 使用標準SQL嵌套語句查詢選修課程名稱爲’稅收基礎’的學員學號和姓名

  --實現代碼:

SELECT SN,SD FROM S

WHERE [S#] IN(SELECT [S#] FROM C,SC WHERE C.[C#]=SC.[C#] AND CN=N'稅收基礎')

2. 使用標準SQL嵌套語句查詢選修課程編號爲’C2’的學員姓名和所屬單位

  --實現代碼:

SELECT S.SN,S.SD FROM S,SC

WHERE S.[S#]=SC.[S#] AND SC.[C#]='C2'

3. 使用標準SQL嵌套語句查詢不選修課程編號爲’C5’的學員姓名和所屬單位

  --實現代碼:

SELECT SN,SD FROM S

WHERE [S#] NOT IN(SELECT [S#] FROM SC WHERE [C#]='C5')

4. 使用標準SQL嵌套語句查詢選修全部課程的學員姓名和所屬單位

  --實現代碼:

SELECT SN,SD FROM S

WHERE [S#] IN( SELECT [S#] FROM SC RIGHT JOIN

  C ON SC.[C#]=C.[C#] GROUP BY [S#]

HAVING COUNT(*)=COUNT([S#]))

5. 查詢選修了課程的學員人數

  --實現代碼:

  SELECT 學員人數=COUNT(DISTINCT [S#]) FROM SC

6. 查詢選修課程超過5門的學員學號和所屬單位

  --實現代碼:

  SELECT SN,SD FROM S

  WHERE [S#] IN(

  SELECT [S#] FROM SC

  GROUP BY [S#]

  HAVING COUNT(DISTINCT [C#])>5)

  

18.    SQL Server常用測試題(2)

問題描述:

已知關係模式:

S (SNO,SNAME) 學生關係。SNO 爲學號,SNAME 爲姓名

C (CNO,CNAME,CTEACHER) 課程關係。CNO 爲課程號,CNAME 爲課程名,CTEACHER 爲任課教師

SC(SNO,CNO,SCGRADE) 選課關係。SCGRADE 爲成績

1. 找出沒有選修過“李明”老師講授課程的所有學生姓名

--實現代碼:

SELECT SNAME FROM S

WHERE NOT EXISTS(

SELECT * FROM SC,C WHERE SC.CNO=C.CNO AND CNAME='李明' AND SC.SNO=S.SNO)

2. 列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績

--實現代碼:

SELECT S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)

FROM S,SC,(

SELECT SNO FROM SC WHERE SCGRADE<60 GROUP BY SNO

HAVING COUNT(DISTINCT CNO)>=2)A WHERE S.SNO=A.SNO AND SC.SNO=A.SNO

GROUP BY S.SNO,S.SNAME

3. 列出既學過“1”號課程,又學過“2”號課程的所有學生姓名

  --實現代碼:

  SELECT S.SNO,S.SNAME

  FROM S,(SELECT SC.SNO FROM SC,C

  WHERE SC.CNO=C.CNO AND C.CNAME IN('1','2')

  GROUP BY SNO

  HAVING COUNT(DISTINCT CNO)=2

  )SC WHERE S.SNO=SC.SNO

4. 列出“1”號課成績比“2”號同學該門課成績高的所有學生的學號

  --實現代碼:

  SELECT S.SNO,S.SNAME

  FROM S,(

  SELECT SC1.SNO

  FROM SC SC1,C C1,SC SC2,C C2

  WHERE SC1.CNO=C1.CNO AND C1.NAME='1'

  AND SC2.CNO=C2.CNO AND C2.NAME='2'

  AND SC1.SCGRADE>SC2.SCGRADE

  )SC WHERE S.SNO=SC.SNO

5. 列出“1”號課成績比“2”號課成績高的所有學生的學號及其“1”號課和“2”號課的成績

  --實現代碼:

  SELECT S.SNO,S.SNAME,SC.[1號課成績],SC.[2號課成績]

  FROM S,(

  SELECT SC1.SNO,[1號課成績]=SC1.SCGRADE,[2號課成績]=SC2.SCGRADE

  FROM SC SC1,C C1,SC SC2,C C2

  WHERE SC1.CNO=C1.CNO AND C1.NAME='1'

  AND SC2.CNO=C2.CNO AND C2.NAME='2'

  AND SC1.SCGRADE>SC2.SCGRADE

  )SC WHERE S.SNO=SC.SNO

        試題點評:通覽整個試題,我們不難發現,這份試題是針對SQL Server數據庫人員的。而從難度分析上來看,這份試題也屬於同類試題中比較難的了。之所以說它難,首先是限定時間的全英文試題;其次,儘管這份試題主要是考覈開發能力,但卻涉及到了算法的選擇和性能的調優;最後,這份試題還夾進了SQL Server數據庫的升級問題。因此,綜上所述,我們估計這是一家從事程序外包工作的外企招聘後臺開發或與後臺開發相關的SQL Server高級程序員的試題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章