IBM的歷史可以追溯到電子計算機發展前的幾十年,在電子計算機發展之前,它經營穿孔卡片資料處理裝置。下面是小編整理的關於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資料庫啟動步驟的順序為
t? ? unt
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 _number,_number FROM inventory i,manufacturer m
WHERE facturer_id = _number
Order by ription
執行時是錯誤的,請問以下措施哪個能夠改正這個錯誤?
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