1. 程式人生 > >筆試題: 數據庫 未看11

筆試題: 數據庫 未看11

plus 結構 reference 完整 mon EDA next index 完全

一、 選擇題

1、SQL語言是( C )語言。

A.層次數據庫 B.網絡數據庫 C.關系數據庫 D.非數據庫

3、如果在where子句中有兩個條件要同時滿足,應該用哪個邏輯符來連接(C )

A.OR

B.NOT

C.AND

D.NONE

4、外連接的條件可以放在以下的那一個子句中( B)

A. FROM

B. WEHRE

C. SELECT

D. HAVING

5、在從兩個表中查詢數據時,連接條件要放在哪個子句中( B )

A. FROM

B. WHERE

C. SELECT

D. HAVING

6、用以下哪個子句來限制分組統計結果信息的顯示(D )

A. FROM

B. WEHRE

C. SELECT

D. HAVING

7、以下需求中哪個需要用分組函數來實現?( C )

A. 把ORDER表中的定單時間顯示成 ‘DD MON YYYY’ 格式

B. 把字符串 ‘JANUARY 28, 2000′ 轉換成日期格式

C. 顯示PRODUCT 表中的COST 列值總量

D. 把PRODUCT表中的DESCRIPTION列用小寫形式顯示

8、用以下的SQL語句查詢數據庫:

SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, description

FROM inventory

WHERE price > 5.00

ORDER BY “Part Number”, 3;

哪一句會產生錯誤? ( C )

A. FROM INVENTORY

B. WHERE PRICE > 5.00

C. ORDER BY “PART NUMBER”, 3;

D. SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, description

9、以下操作符中哪個可以用做單行簡單查詢的操作符( A )

A. =

B. IN

C. LIKE

D. BETWEEN

10、Which of the following statements are ?(A )

A. INSERT

B. GRANT

C. TRUNCATE

D. CREATE

11、以下那些命令可以暗含提交操作?( A )

A. GRANT

B. UPDATE

C. SELECT

D. ROLLBACK

12、Mr. King 是公司的總裁,手下有五個經理,每個經理手下都有若幹下屬。以下代碼的執行結果是:未選定行

SELECT employee.ename FROM emp employee

WHERE employee.empno not in (

SELECT manager.mgr FROM emp manager);

是什麽原因導致如此?( A )

A. 所有的雇員均有領導 B. 子查詢結果集中只有一條記錄

C. 子查詢結果集中出現一個空值 D. IN運算符不能用在多行子查詢中

13、用下面的語句查詢數據庫:

SELECT price FROM inventory

WHERE price BETWEEN 1 AND 50 OR (price IN(25,70,95)

AND price BETWEEN 25 AND 75);

下面哪一個值將會被查詢到?( A )。

A.30 B.51 C.75 D.95

14、SQL語言中,刪除一個表的命令是( B)

A.DELETE

B.DROP

C.CLEAR

D. PURGE

15、只有滿足聯接條件的記錄才包含在查詢結果中,這種聯接為__C___。

A.左聯接 B.右聯接 C.內部聯接 D.完全聯接

17、在SQL*Plus中,要使PL/SQL塊中的DBMS_OUTPUT.PUT_LINE()輸出到屏幕,需要首先執行命令( D ).(選擇一項)

A.set echo on B.set feedback on C.set serverout on D.set screen on

18、下面哪一個操作返回數字值?( D )。

A.’01-2月-1998’+25

B.’03-10月-1997’-30

C.’07-7月-1997’+(480/24)

D.to_date(’01-1月-1998’)-to_date(’01-10月-1996’)

19、下面哪兩個操作返回日期型?允許多選 ( A C ) 。

A.to_date(’01-2月-1998′)+25

B.(to_date(’01-1月-1998′)-to_date(’01-10月-1996′))/7

C.to_date(’01-2月-1998′)+12/24

D.to_date(’01-1月-1998′)-to_date(’01-10月-1996′)

20、查看已經建立了哪些表,下面哪些語句能夠完成這個任務?(須多選)(B D )

A.desc user_tables;

B.select table_name from user_tables;

C.select table_name from user_tab_columns;

D.select * from tab;

21、如果要輸出姓王的學生名單,在where子句中最好用哪一個操作符?( C )

A.= B.IN

C.LIKE D.BETWEEN

22、如果希望進行分組統計的查詢輸出,可以使用哪個子句。( B )

A.SELECT B.GROUP BY

C.HAVING D.ORDER BY

23、在標準SQL中,建立視圖的命令是___C_。

A.CREATE SCHEMA命令

B.CREATE TABLE命令

C.CREATE VIEW命令

D.CREATE INDEX命令

24、下面的描述中錯誤的是:( A )

A. Oracle表的存儲結構為:一個表就是一個物理文件,物理文件和表之間存在著絕對的一一對應關系。

B. 表空間由一個或多個數據文件組成。

C. 系統全局區(SGA)可由所有的服務器和用戶進程共享。

D. 段、區間、數據塊是Oracle數據庫的基本邏輯組織單位。

25、表SERVICE的內容如下:

MACHINE_ID TECHNICIAN_ID SERVICE_DATE

———- ————— ————-

600252 456123 31-六月-1997

980076 21-十月-1996

458745 456123 21-六月-1997

985625 874512 20-四月-1997

785214 879514 18-五月-1997

執行下面的語句後,哪一個的值將排在最後?( D)。

SELECT machine_id,service_date FROM service

ORDER BY technician_id,service_date;

A.458745 B.785214

C.600252 D.980076

26、要查詢表EMP中ENAME的第2個字母為A的所有的人,請選擇正確的查詢語句。( A )

A. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE ’_A%’;

B. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME=’_A%’;

C. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE AS ’_A%’;

D. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE ’?A*’;

27、SELECT DEPTNO DNO,DNAME DNA,LOC DLOC FROM DEPT A WHERE A.DEPTNO BETWEEN 10 AND 20 AND DNAME>’B’ AND DLOC ‘NEW YORK’;

請選擇對上述語句有錯的正確描述。(C )

A.A.DEPTNO的字段描述方式錯。

B.WHERE子句有的表達式返回值不能進行邏輯運算。

C.WHERE子句不能用別名。

D. 以上三個描述都不對。

28、(B )

A. SELECT ENAME,ROUND(HIREDATE,’MM’) XDATE FROM EMP

B. SELECT ENAME,TOCHAR(HIREDATE,’YYYY-MM’)||’-01’ XDATE FROM EMP

C. SELECT ENAME,TOCHAR(HIREDATE,’YYYY-MM’)+’-01’ XDATE FROM EMP

D. SELECT ENAME,TO_CHAR(HIREDATE,’YYYY-MM’)+’-01’ XDATE FROM EMP

29、查詢表EMP中不同DEPTNO的SAL字段的分類合計值 ( B )

A. SELECT DEPTNO,TOTAL(SAL) FROM EMP GROUP BY DEPTNO

B. SELECT DEPTNO,SUM(SAL) FROM EMP GROUP BY DEPTNO

C. SELECT ENAME,TOTAL(SAL) FROM EMP GROUP BY DEPTNO

D. SELECT ENAME,SUM(SAL) FROM EMP GROUP BY DEPTNO

30、查詢表EMP的任意10條記錄。( B)

A.SELECT * FROM EMP WHERE ROWNUM<=11

B. SELECT * FROM EMP WHERE ROWNUM<11

C. SELECT * FROM EMP WHERE ROWID<=11

D. SELECT * FROM EMP WHERE ROWID<11

31、查詢一個序列SEQ_HZ的新值 ( C )

A. SELECT SEQ_HZ.NEXT FROM DUAL

B. SELECT SEQ_HZ.NEWVAL FROM DAUL

C. SELECT SEQ_HZ.NEXTVAL FROM DUAL

D. SELECT SEQ_HZ.NEXTROW FROM DAUL

32、 SQL語句中修改表結構的命令是_C____。

A. MODIFY TABLE B. MODIFY STRUCTURE C. ALTER TABLE D. ALTER STRUCTURE

33、 Oracle 數據庫存儲空間的最小I/O單位是:( B )

A. 表空間 B. 數據塊 C. 段 D. 區間

34、關系數據庫中,主鍵是( A)

A. 為標識表中唯一的實體

B. 創建唯一的索引,允許空值

C. 只允許以表中第一字段建立

D. 允許有多個主鍵的

35、將查詢結果放在數組中應使用( D )短語。

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

36、 以下哪條命令用於刪除一個約束?( C)
A. Alter TABLE MODIFY CONSTRAINT B. Drop CONSTRAINT
C. Alter TABLE Drop CONSTRAINT D. Alter CONSTRAINT Drop

二、 簡答題

本題用到下面三個關系表:

CARD 借書卡。 CNO 卡號,NAME 姓名,CLASS 班級

BOOKS 圖書。 BNO 書號,BNAME 書名,AUTHOR 作者,PRICE 單價,QUANTITY 庫存冊數

BORROW 借書記錄。 CNO 借書卡號,BNO 書號,RDATE 還書日期

備註:限定每人每種書只能借一本;庫存冊數隨借書、還書而改變。

要求實現如下15個處理:

1. 寫出建立BORROW表的SQL語句,要求定義主碼完整性約束和引用完整性約束。

create table BORROW(CNO int FOREIGN KEY REFERENCES CARD(CNO),BNO int FOREIGN KEY REFERENCES BOOKS(BNO),RDATE datetime,primary key(CNO,BNO));

2. 找出借書超過5本的讀者,輸出借書卡號及所借圖書冊數。

Select CNO,number=count(*) from BORROW group by CNO having count(*)>5;

3. 查詢借閱了"水滸"一書的讀者,輸出姓名及班級。

Select NAME,CLASS from CARD c where exist (select * from BORROW b1,BOOK b2 where b1.BND=b2.BND and b2.name = ‘水滸’ and a.CNO=b2.CNO);

4. 查詢過期未還圖書,輸出借閱者(卡號)、書號及還書日期。

Select * from BORROW where RDATE < GETDATE();

5. 查詢書名包括"網絡"關鍵詞的圖書,輸出書號、書名、作者。

Select BNO,BNAME,AUTHOR from BOOKS where BNAME like ‘%網絡%’;

6. 查詢現有圖書中價格最高的圖書,輸出書名及作者。

Select BNAME,AUTHOR from BOOKS where PRICE=(select max(PRICE) from BOOKS);

7. 查詢當前借了"計算方法"但沒有借"計算方法習題集"的讀者,輸出其借書卡號,並按卡號降序排序輸出。

Select a.CNO from BORROW a,BOOKS b where a.BNO=b.BNO and b.BNAME=’計算方法’ and not exists(

Select * from BORROW a1,BOOKS b1 where a1.BNO=b1.BNO and b1.BNAME =’計算方法習題集’ and a1.CNO=a.CNO );

8. 將"C01"班同學所借圖書的還期都延長一周。

Update BORROW set RDATE=DATEADD(DAY,7,BORROW.RDATE) from CARD,BORROW where CARD.CNO=BORROW.CNO and CARD.CALSS=’C01’;

9. 從BOOKS表中刪除當前無人借閱的圖書記錄。

Delete from BOOKS where BNO not exist(select * from BORROW where BNO=BOOKS.BNO)

10. 如果經常按書名查詢圖書信息,請建立合適的索引。

Create index index_books_BNAME on BOOKS(BNAME);

11.在BORROW表上建立一個觸發器,完成如下功能:如果讀者借閱的書名是"數據庫技術及應用",就將該讀者的借閱記錄保存在BORROW_SAVE表中(註ORROW_SAVE表結構同BORROW表)。

12.建立一個視圖,顯示""班學生的借書信息(只要求顯示姓名和書名)。

Create view t_view as select a.NAME,b.BNAME from BORROW c,CARD a,BOOKS b where c.CNO=a.CNO and c.BNO=b.BNO and a.CLASS=” 力01”;

13.查詢當前同時借有"計算方法"和""兩本書的讀者,輸出其借書卡號,並按卡號升序排序輸出。

Select a.CNO from BORROW a,BOOKS b where a.BNO=b.BNO and b.BNAME IN(‘計算方法’,’ 組合數學’)

Group by a.CNO

Having count(*)=2

Order by a.CNO DESC.

14.假定在建BOOKS表時沒有定義主碼,寫出為BOOKS表追加定義主碼的語句。

Alter table BOOKS add primary key(BNO);

15.對CARD表做如下修改:

a. 將NAME最大列寬增加到10個字符(假定原為6個字符)。

Alter table card modify NAME varchar(10)

b. 為該表增加1列NAME(系名),可變長,最大20個字符。

Alter table card add column varchar(20)

筆試題: 數據庫 未看11