標籤:
ORACLE筆試題
一、單選題
1.在Oracle中,以下不屬於集合操作符的是()。
A.UNIONB.SUMC.MINUSD.INTERSECT
2.在Oracle中,執行下面的語句:
SELECTceil(-97.342),
floor(-97.342),
round(-97.342),
trunc(-97.342)
FROMdual;
哪個函數的傳回值不等於-97()。
A.ceil()B.floor()C.round(0)D.trunc()
3.以下哪個命令可以被用來從表STATE中drop列UPDATE_DT()。
A.ALTERTABLESTATEDROPCOLUMNUPDATE_DT;
B.ALTERTABLESTATEREMOVECOLUMNUPDATE_DT;
C.DROPCOLUMNUPDATE_DTFROMSTATE;
D.你不能從這個表中DROP該列.
4.哪個命令用來建立一個primarykeyconstraintpk_books在表books,列ISBN上,請選擇一個()。
A.createprimarykeyonbooks(ISBN);
B.createconstraintpk_booksprimarykeyonbooks(ISBN);
C.altertablebooksaddconstraintpk_booksprimarykey(ISBN);
D.altertablebooksaddprimarykey(ISBN);
5.以下哪行有錯()。
1X:=Y+200;
2IFX<10THEN
3Y:=30;
4ELSEIFX<40THEN
5Y:=20;
6ENDIF;
7ENDIF;
A.Line2B.Line3C.Line4D.Line5
6.一個VIEW被以下語句建立,請問在該VIEW上可進行哪個操作()
CREATEVIEWUSA_STATES
ASSELECT*FROMSTATE
WHERECNT_CODE=1
WITHREADONLY;
A.SELECTB.SELECT,UPDATEC.SELECT,DELETED.SELECT,INSERT
7.下面哪個語句是表示將T表中第3~5行資料列出來的SQL語句()。
A.select*fromtwhererownum<=5
minus
select*fromtwhererownum<=2;
B.select*fromtwhererownum<=5
intersect
select*fromtwhererownum<=2;
C.select*fromtwhererownum<=5
union
select*fromtwhererownum<=2;
D.select*fromtwhererownum<=5
unionall
select*fromtwhererownum<=2;
8.表EMPLOYEES的結構為:
(
EMP_IDNUMBER(4)NOTNULL
LAST_NAMEVARCHAR2(30)NOTNULL
FIRST_NAMEVARCHAR2(30)
DEPT_IDNUMBER(2)
JOB_CATVARCHAR2(30)
SALARYNUMBER(8,2)
)
下面哪條語句可以查出各個dept_id的最大salary值和最小salary值並且它的最小值小於5000最大值大於15000()
A.SELECTdept_id,MIN(salary),MAX(salary)FROMemployees
WHEREMIN(salary)<5000ANDMAX(salary)>15000;
B.SELECTdept_id,MIN(salary),MAX(salary)FROMemployees
WHEREMIN(salary)<5000ANDMAX(salary)>15000GROUPBYdept_id;
C.SELECTdept_id,MIN(salary),MAX(salary)FROMemployees
HAVINGMIN(salary)<5000ANDMAX(salary)>15000;
D.SELECTdept_id,MIN(salary),MAX(salary)FROMemployees
GROUPBYdept_idHAVINGMIN(salary)<5000ANDMAX(salary)>15000;
E.SELECTdept_id,MIN(salary),MAX(salary)FROMemployees
GROUPBYdept_id,salaryHAVINGMIN(salary)<5000ANDMAX(salary)>15000;
9.在oracle中,下面哪個函數與||運算子有相同的功能()。
A、ltrimB、contactC、substrD、instr
10.函數floor(-2345.67)返回結果是()。
A.2345.67B.2346C.-2346D.-2345
11.Oracle資料庫中,下面()可以作為有效列名。(選擇一項)
A.ColumnB.123_NUMC.NUM_#123D.#NUM123
12.表TEST資料如下,P_ID為上級ID:
CREATETABLETESTAS
SELECT1ID,NULLP_ID,‘a‘NAMEFROMDUALUNION
SELECT2ID,1P_ID,‘b‘NAMEFROMDUALUNION
SELECT3ID,1P_ID,‘c‘NAMEFROMDUALUNION
SELECT4ID,2P_ID,‘d‘NAMEFROMDUALUNION
SELECT5ID,2P_ID,‘e‘NAMEFROMDUALUNION
SELECT6ID,4P_ID,‘f‘NAMEFROMDUALUNION
SELECT7ID,4P_ID,‘g‘NAMEFROMDUALUNION
SELECT8ID,1P_ID,‘h‘NAMEFROMDUAL;
以下哪段SQL實現查詢ID為2但不包括ID=2的所有下級資料()。
A.SELECT*FROMTESTCONNECTBYPRIORP_ID=IDSTARTWITHID=2;
B.SELECT*FROMTESTCONNECTBYPRIORID=P_IDSTARTWITHID=2;
C.SELECT*FROMTESTCONNECTBYPRIORP_ID=IDSTARTWITHP_ID=2;
D.SELECT*FROMTESTCONNECTBYPRIORID=P_IDSTARTWITHP_ID=2;
13.表EMPLOYEES結構為
(
EMPLOYEE_IDNUMBER(6)notnullprimarykey,
FIRST_NAMEVARCHAR2(20)unique,
LAST_NAMEVARCHAR2(25),
EMAILVARCHAR2(25)notnull,
PHONE_NUMBERVARCHAR2(20),
HIRE_DATEDATE,
JOB_IDVARCHAR2(10),
SALARYNUMBER(8,2),
COMMISSION_PCTNUMBER(2,2),
MANAGER_IDNUMBER(6),
DEPARTMENT_IDNUMBER(4)
)
以下哪幾個語句可算出表中記錄,多選()
A.selectcount(*)fromEMPLOYEES
B.selectcount(EMPLOYEE_ID)fromemployees
C.selectcount(FIRST_NAME)fromemployees
D.selectcount(EMAIL)fromemployees
E.selectcount(JOB_ID)fromemployees
二、簡答題
1.有EMP表一張,欄位為ID,NAME,ID有重複資料,請寫出有重複資料的id、NAME語句,並寫出沒有重複資料的ID、name語句。
2.去除字串“aabb”兩邊的空格(函數)。
3.student表欄位為(classno,name,birthday),將所有3班出生日期小於1981年5月12日的記錄刪除。
4.student表欄位為(classno,name,score)
修改表student的資料,將所有一班的學產生績加10分
三、編程題
表結構如下:
Dept(部門表):dno(部門號),dname(部門名)
Emp(員工表):eno(員工號),ename(員工姓名),esex(性別:男士/女士),sal(工資),dno(部門號),join_date(入職時間),elevel(層級:1,2,3…)
1.列出部門為“銷售部”,入職時間為2011年12月1日之前的所有男員工工資大於5000元的資訊,並按入職時間降序、工資升序進行展示,展示內容為:部門名,員工姓名,工資,入職時間。
2.列出員工人數最多的部門員工平均工資。
答:
3.寫出SQL實現入職超過三年的員工工資增加10%、層級加1。
4.列出各部門員工工資在2000到3000之間不同性別人數,展示欄位如下:部門、男士人數、女士人數。
oracle 筆試題