日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

数据库笔试题(2)

發(fā)布時(shí)間:2023/12/20 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库笔试题(2) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)庫(kù)筆試題

姓名 日期
一、選擇題
1、當(dāng)你執(zhí)行一下查詢語(yǔ)句:SELECT empno, ename FROM emp WHERE empno=7782 OR empno=7876; 在WHERE語(yǔ)句中,以下哪個(gè)操作符可以取代OR? A
A IN
B BETWEEN …閉區(qū)間
C LIKE
D <=

2、哪個(gè)實(shí)現(xiàn)IF…THEN …ELSE 邏輯?C
A INTCAP() 首字母大寫(xiě)
B REPLACE()
C DECODE()
D IFELSE()

3、當(dāng)一個(gè)程序執(zhí)行了SELECT … FOR UPDATE 語(yǔ)句,以下哪個(gè)步驟必須需要完成? A
A 執(zhí)行COMMIT 或ROLLBACK 結(jié)束 TRANSACTION,即使并沒(méi)有數(shù)據(jù)改變
B 如果有數(shù)據(jù)改變,則需要執(zhí)行COMMIT 或 ROLLBACK來(lái)結(jié)束TRANSACTION 不全面
C 由于只有數(shù)據(jù)確實(shí)改變后,一個(gè)TRANSACTION 才會(huì)開(kāi)始,所以現(xiàn)在不需要COMMIT
或ROLLBACK 被執(zhí)行 說(shuō)錯(cuò)了

4、以下哪個(gè)命令可以被用來(lái)從表STATE 中 DROP 列 UPDATE_DT ? A
A ALTER TABLE STATE DROP COLUMN UPDATE_DT;
B ALTER TABLE STATE REMOVE COLUMN UPDATE_DT;
C DROP COLUMN UPDATE_DT FROM STATE ;
D 你不能從這個(gè)表中DROP 該列

5、下列哪個(gè)函數(shù)不可以將NULL值轉(zhuǎn)換為實(shí)際值 D
A NVL
B NVL2
C NULLIF[Oracle NULLIF函數(shù)
語(yǔ)法為NULLIF(表達(dá)式1,表達(dá)式2),
如果表達(dá)式1 = 表達(dá)式2則返回空值,
如果表達(dá)式1 !=表達(dá)式2則返回表達(dá)式1的結(jié)果。]
D TO_NUMBER 會(huì)報(bào)錯(cuò)

6、當(dāng)兩位用戶中的每一位都對(duì)一個(gè)單獨(dú)的對(duì)象進(jìn)行了鎖定,而他們又要獲取對(duì)方對(duì)象的鎖
時(shí),將會(huì)發(fā)生? 兩人是交叉的訪問(wèn) B
A 共享鎖[共享鎖(S,讀鎖): 只讀,不能修改,即允許多個(gè)事務(wù)對(duì)某個(gè)數(shù)據(jù)同時(shí)獲得S鎖讀權(quán)限,且無(wú)法添加X(jué)鎖修改數(shù)據(jù)!
]
B 死鎖
C 排他鎖[排他鎖(X,寫(xiě)鎖):某數(shù)據(jù)被T1加X(jué)鎖,不再允許其他事務(wù)對(duì)其進(jìn)行任何鎖處理(直到T1釋放X鎖),僅有事務(wù)T1能對(duì)數(shù)據(jù)可讀可修改,其他事務(wù)無(wú)讀寫(xiě)權(quán)限;??? ]

7、DBMS_LOB 數(shù)據(jù)包提供的,返回LOB值的長(zhǎng)度 D
A LENGTH
B SUBSTR
C INSTR
D GELENGTH
8、PL/SQL為內(nèi)存耗盡時(shí),預(yù)定義了( ) 異常 B
A NO_DATA_FOUND
B MEMORY_ERROR
C STORAGE_ERROR 硬盤問(wèn)題
D NO_MOMORY_FOUND

9、在創(chuàng)建序列的過(guò)程中,下列哪個(gè)選項(xiàng)指定序列在達(dá)到最大值或最小值后,將繼續(xù)從頭開(kāi)
始生成值 A
A CYCLE 循環(huán)
B NOCYCLE
C CACHE 緩存
D NOCACHE

10、下列有關(guān)包的使用說(shuō)法錯(cuò)誤的是 D
A 在不同的包內(nèi)模塊可以重名
B 包的私有過(guò)程不能被外部程序調(diào)用 Java里的
C 包體中的過(guò)程和函數(shù)必須在包頭部分說(shuō)明
D 必須先創(chuàng)建包頭,然后創(chuàng)建包體

11、在ORACLE中,需要( ) 權(quán)限來(lái)調(diào)用其他用戶產(chǎn)生的函數(shù) D
A 函數(shù)中使用的表格的select權(quán)限
B 函數(shù)中使用的表格的execute權(quán)限
C 函數(shù)的execute權(quán)限
D 函數(shù)中使用的表格的select權(quán)限和函數(shù)的execute權(quán)限

12、在ORACLE中,ORDER BY 子句中 ( )關(guān)鍵詞是用于從高到低的顯示數(shù)字型列值的 D
A AS
B ASC 正序,默認(rèn)
C INTO
D DESC 倒序
E BETWEEN…AND

13、在ORACLE中,雇員信息表的主鍵是雇員號(hào),部門信息表的主鍵是部門號(hào),在下列所給的
操作中哪項(xiàng)內(nèi)容不能執(zhí)行 D
雇員信息表 部門信息表

雇員號(hào) 雇員名 部門號(hào) 工資
001 張三 02 2000
010 王宏達(dá) 01 1200
066 馬林 02 1000
101 趙敏 04 1500
部門號(hào) 部門名 主任
01 業(yè)務(wù)部 李建
02 銷售部 英東
03 服務(wù)部 周銀
04 財(cái)務(wù)部 陳勝利

A 從雇員信息表中刪除行(’010’,’王宏達(dá)’,’01’,’1200’)
B 將行(’102’,’趙敏’,’01’,’1500’)插入到雇員信息表中
C 將雇員信息表中雇員號(hào)為’010’的工資改為1600
D 將雇員信息表中雇員為’010’的部門改為’05’
14、在ORACLE 中,使用HAVING子句也可以進(jìn)行條件查詢,所以以下選項(xiàng)中說(shuō)法是正確
的 B
A HAVING子句和WHERE子句相同
B HAVING 子句用于已分組結(jié)果的條件查詢
C HAVING 子句用于行的條件查詢 where
D 以上皆非

15、ID是表TABLE1的主鍵,則我們可以確定 A
A TABLE1 只有ID 一個(gè)主鍵
B 數(shù)據(jù)庫(kù)范圍內(nèi)其他表都不可以用ID 為主鍵
C ID必定為某張表的外鍵
D 以上皆非

二、簡(jiǎn)答題

1、查找oracle數(shù)據(jù)庫(kù)中(表t)被哪些對(duì)象使用:
select * from user_dependencies
where referenced_name = ’t’
and referenced_type = ‘TABLE’

2、根據(jù)ID刪除表中重復(fù)記錄:
delete from 表 t1 where t1.rowid <
(select max(rowid) from 表 ?t2 where t1.id = t2.id)

3、表t有若干列(id,name,…,value),存放數(shù)據(jù)5000萬(wàn),用最優(yōu)的方法把value處理為value*(0.1-1)之間的隨機(jī)數(shù)
create table 表_bak as
select id,name,…,value * round(dbms_random.value(0.1,1),1) from 表;
truncate table 表;
insert into 表 select * from表_bak;
commit;

4、根據(jù)表t(code,pcode)中的pcode遞歸查詢獲取所有子節(jié)點(diǎn),已知pcode=’A’
遞歸的寫(xiě)法
select * from t
start with t.pcode = ‘A’
connect by t.parent = prior t.code

5、觀察下表,用sql語(yǔ)句實(shí)現(xiàn)下列結(jié)果
原表結(jié)構(gòu) 目標(biāo)結(jié)構(gòu)
Id Value1 Value2 Value1 Value2
100001 10 10 9.9 10.1
100001 10 10 9.8 10.2
100002 20 20 20.1 19.9
100002 20 20 20.2 19.8
100003 30 30 29.9 30.1
100003 30 30 29.8 30.2
100004 40 40 40.1 39.9
100004 40 40 40.2 39.8

奇數(shù)部分 減去 0.1 0.2
偶數(shù)部分 加 0.1 0.2
第一行減去0.1 第二行減去0.2
Select id ,
value1 – decode(mod(id,2),1,1,-1)[Case when 值除以2
沒(méi)有余數(shù) 就是偶數(shù)就是 -1
有余數(shù) 就是 奇數(shù)就是 +1

Case when mod(id,2) = 0 then -1 else 1 end

Value1 + Power(-1,value1/10)
Value2 - Power(-1,value1/10)
]*(row_number() over(partition by id order by id)/10) ,
value2 + decode(mod(id,2),1,1,-1)(row_number() over(partition by id order by id)/10) from 表

6、已知“ab+ab=bcc”,用一句sql實(shí)現(xiàn)a,b,c的對(duì)應(yīng)值(0…9的數(shù)字)
A 是十位的 B 是個(gè)位數(shù)的

select t1.a ,t2.b, t3.c from
(select rownum - 1 as a from scott.emp where rownum <=10) t1 ,
(select rownum - 1 as b from scott.emp where rownum <=10) t2,
(select rownum - 1 as c from scott.emp where rownum <=10) t3
where t1.a10 + t2.b + t1.a10 + t2.b = t2.b100 + t3.c10 + t3.c

7、一組通話記錄如下:
ID 主叫號(hào)碼 被叫號(hào)碼 通話起始時(shí)間 通話結(jié)束時(shí)間 通話時(shí)長(zhǎng)
1 98290000 021546654665 2007-02-01 09:49:53.000 2007-02-01 09:50:16.000 23
2 98290000 021546654666 2007-02-01 09:50:29.000 2007-02-01 09:50:41.000 12
3 98290000 021546654666 2007-02-01 09:50:58.000 2007-02-01 09:51:12.000 14
4 68290900 075513332986 2007-02-01 10:04:31.000 2007-02-01 10:07:13.000 162
5 78290000 075525570863 2007-02-01 10:48:26.000 2007-02-01 10:19:23.000 57

6 78290000 035730928370 2007-02-01 10:49:39.000 2007-02-01 10:52:55.000 196
7 78290000 087113888990 2007-02-01 11:30:45.000 2007-02-01 11:31:58.000 73
8 78290000 035730928379 2007-02-01 11:33:47.000 2007-02-01 11:35:00.000 73

9 68290000 075582111910 2007-02-01 11:52:20.000 2007-02-01 11:54:56.000 156
10 68290000 029852181119 2007-02-01 12:44:45.000 2007-02-01 12:45:04.000 19
求其中同一個(gè)號(hào)碼的兩次通話之間間隔大于10秒通話記錄ID
例如:6,7,8,9,10條記錄均符合

用兩次該表
t1表示第一行數(shù)據(jù)
t2表示第二行數(shù)據(jù)
判斷第一行的結(jié)束時(shí)間和第二行開(kāi)始時(shí)間之間的間隔

select * from 表 t1 ,
表 t2
where t2.通話起始時(shí)間 - t1.通話結(jié)束時(shí)間> 10
and t1.主叫號(hào)碼 = t2.主叫號(hào)碼
and t2.id = t1.id +1

8、表T(bbq時(shí)間,rg_code行政區(qū)劃,code預(yù)算科目,amt金額),以時(shí)間bbq(“yyyymmdd”)格式存儲(chǔ),用最優(yōu)語(yǔ)句計(jì)算每個(gè)地區(qū)每個(gè)預(yù)算科目的日數(shù)據(jù),月累計(jì)和年累計(jì)
select rg_code ,code,bbq, day_amt,
sum(day_amt) over(partition by rg_code ,code,substr(bbq,1,6)) as 月累計(jì),
sum(day_amt) over(partition by rg_code ,code,substr(bbq,1,4)) as 年累計(jì)
from
(select rg_code ,code,bbq,sum(amt) as day_amt
from T
group by rg_code ,code, bbq );----要得到日數(shù)據(jù) 就可以按時(shí)間分組

9、請(qǐng)寫(xiě)出一條sql語(yǔ)句,查詢出在此期間連續(xù)3年納稅金額大于等于2000萬(wàn)的企業(yè)有哪些,其連續(xù)的年份的起止時(shí)間是多少,平均納稅金額是多少,結(jié)果如下:
YEAR ENT AMT
2010 AA 2000
2011 AA 2500
2012 AA 2300
2013 AA 1900
2014 AA 2200
2015 AA 2300
2016 AA 2006
2010 BB 2400
2011 BB 2401
2012 BB 1800
2013 BB 2100
2014 BB 2101
2015 BB 2102
2016 BB 2020

企業(yè)名稱 開(kāi)始時(shí)間 結(jié)束時(shí)間 平均納稅
AA 2010 2012 2266.7
AA 2014 2016 2168.7
BB 2013 2016 2080.8

Select distinct ent , min_year, max _year, ,amt_total/num
from
(Select ent,min(year) over(partition by ent,ch) as min_year,
max(year) over(partition by ent,ch) as max _year,
sum(amt) over(partition by ent,ch) as amt_total,
count(*) over(partition by ent,ch) as num
from
( Select ent ,year ,amt ,
(year - row_number() over(partition by ent order by year)) as ch
from t
where amt>=2000)
)
where num = 3

10、有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問(wèn)某些月后兔子總數(shù)為多少?(要求過(guò)程實(shí)現(xiàn)輸入任意時(shí)間得到相應(yīng)的結(jié)果)
規(guī)律:
1 1 2 3 5 8 13 21 34 55 89 144 ….
按 每對(duì)兔子計(jì)算 前兩個(gè)相加等于結(jié)果的第三個(gè)數(shù)值

create procedure tt (num number)
as
rab_num number(38):=1;
rab_midi number(38):=0;
rab_result number(38):=1;
begin
for x in 3…num loop
rab_midi= rab_result; —中間的那個(gè)容器
rab_result= rab_result + rab_num; —結(jié)果值放在前一個(gè)月的
rab_num= rab_midi;
end loop;
dbms_output.putline(rab_result);
end

總結(jié)

以上是生活随笔為你收集整理的数据库笔试题(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。