ORACLE筆試題
1、單選題
1.在Oracle中,如下不屬於集合操做符的是( )。
A. UNION B. SUM C. MINUS D. INTERSECT
2.在Oracle中,執行下面的語句:
SELECT ceil(-97.342),
floor(-97.342),
round(-97.342),
trunc(-97.342)
FROM dual;數據庫
哪一個函數的返回值不等於-97()。
A.ceil() B. floor() C. round(0) D. trunc()編程
3.如下哪一個命令能夠被用來從表 STATE中 drop 列 UPDATE_DT ( )。
A. ALTER TABLE STATE DROP COLUMN UPDATE_DT;
B. ALTER TABLE STATE REMOVE COLUMN UPDATE_DT;
C. DROP COLUMN UPDATE_DT FROM STATE;
D. 你不能從這個表中DROP該列.
4.哪一個命令用來建立一個primary key constraint pk_books 在表 books, 列 ISBN上,請選擇一個( )。
A. create primary key on books(ISBN);
B. create constraint pk_books primary key on books(ISBN);
C. alter table books add constraint pk_books primary key (ISBN);
D. alter table books add primary key (ISBN);
5.如下哪行有錯( )。
1 X :=Y +200;
2 IF X <10 THEN
3 Y :=30;
4 ELSEIF X <40 THEN
5 Y :=20;
6 END IF;
7 END IF;
A. Line 2 B. Line 3 C. Line 4 D. Line 5
6.一個VIEW被如下語句建立,請問在該VIEW上可進行哪一個操做( )
CREATE VIEW USA_STATES
AS SELECT *FROM STATE
WHERE CNT_CODE =1
WITH READ ONLY;
A. SELECT B. SELECT , UPDATE C. SELECT , DELETE D. SELECT , INSERT
7.下面哪一個語句是表示將T表中第3~5行數據列出來的SQL語句()。
A. select * from t where rownum <=5
minus
select * from t where rownum <=2;
B. select * from t where rownum <=5
intersect
select * from t where rownum <=2;
C. select * from t where rownum <=5
union
select * from t where rownum <=2;
D. select * from t where rownum <=5
union all
select * from t where rownum <=2;
8.表EMPLOYEES的結構爲:
(
EMP_ID NUMBER(4) NOT NULL
LAST_NAME VARCHAR2(30) NOT NULL
FIRST_NAME VARCHAR2(30)
DEPT_ID NUMBER(2)
JOB_CAT VARCHAR2(30)
SALARY NUMBER(8,2)
)
下面哪條語句能夠查出各個dept_id的最大salary值和最小salary值而且它的最小值小於5000最大值大於15000( )
A. SELECT dept_id, MIN(salary), MAX(salary) FROM employees
WHERE MIN(salary) < 5000 AND MAX(salary) > 15000;
B. SELECT dept_id, MIN(salary), MAX(salary) FROM employees
WHERE MIN(salary) < 5000 AND MAX(salary) > 15000 GROUP BY dept_id;
C. SELECT dept_id, MIN(salary), MAX(salary) FROM employees
HAVING MIN(salary) < 5000 AND MAX(salary) > 15000;
D. SELECT dept_id, MIN(salary), MAX(salary) FROM employees
GROUP BY dept_id HAVING MIN(salary) < 5000 AND MAX(salary) > 15000;
E. SELECT dept_id, MIN(salary), MAX(salary) FROM employees
GROUP BY dept_id, salary HAVING MIN(salary) < 5000 AND MAX(salary) > 15000;oracle
9.在oracle中,下面哪一個函數與||運算符有相同的功能( )。
A、 ltrim B、contact C、substr D、instr函數
10.函數floor(-2345.67)返回結果是( )。
A. 2345.67 B. 2346 C.-2346 D. -2345字符串
11. Oracle數據庫中,下面()能夠做爲有效的列名。(選擇一項)
A. Column B. 123_NUM C. NUM_#123 D. #NUM123
12.表TEST數據以下,P_ID爲上級ID:
CREATE TABLE TEST AS
SELECT 1 ID ,NULL P_ID ,'a' NAME FROM DUAL UNION
SELECT 2 ID ,1 P_ID ,'b' NAME FROM DUAL UNION
SELECT 3 ID ,1 P_ID ,'c' NAME FROM DUAL UNION
SELECT 4 ID ,2 P_ID ,'d' NAME FROM DUAL UNION
SELECT 5 ID ,2 P_ID ,'e' NAME FROM DUAL UNION
SELECT 6 ID ,4 P_ID ,'f' NAME FROM DUAL UNION
SELECT 7 ID ,4 P_ID ,'g' NAME FROM DUAL UNION
SELECT 8 ID ,1 P_ID ,'h' NAME FROM DUAL;
如下哪段SQL實現查詢ID爲2但不包括ID=2的全部下級數據( )。
A. SELECT * FROM TEST CONNECT BY PRIOR P_ID=ID START WITH ID=2;
B. SELECT * FROM TEST CONNECT BY PRIOR ID=P_ID START WITH ID=2;
C. SELECT * FROM TEST CONNECT BY PRIOR P_ID=ID START WITH P_ID=2;
D. SELECT * FROM TEST CONNECT BY PRIOR ID=P_ID START WITH P_ID=2;
13. 表EMPLOYEES結構爲
(
EMPLOYEE_ID NUMBER(6) not null primary key,
FIRST_NAME VARCHAR2(20) unique,
LAST_NAME VARCHAR2(25),
EMAIL VARCHAR2(25) not null,
PHONE_NUMBER VARCHAR2(20),
HIRE_DATE DATE,
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
COMMISSION_PCT NUMBER(2,2),
MANAGER_ID NUMBER(6),
DEPARTMENT_ID NUMBER(4)
)
如下哪幾個語句可算出表中記錄,多選 ( )
A.select count(*) from EMPLOYEES
B.select count(EMPLOYEE_ID) from employees
C.select count(FIRST_NAME) from employees
D.select count(EMAIL) from employees
E.select count(JOB_ID) from employees
2、簡答題
1. 有EMP表一張,字段爲ID,NAME,ID有重複數據,請寫出有重複數據的id、NAME語句,並寫出沒有重複數據的ID、name語句。io
2. 去除字符串「 aabb 」兩邊的空格(函數)。table
3. student表字段爲(classno,name,birthday),將全部3班出生日期小於1981年5月12日的記錄刪除。class
4. student表字段爲(classno,name,score)
修改表student的數據,將全部一班的學生成績加10分date
3、編程題
表結構以下:
Dept(部門表): dno(部門號),dname(部門名)
Emp(員工表):eno(員工號),ename(員工姓名),esex(性別:男士/女士),sal(工資),dno(部門號),join_date(入職時間),elevel(級別:1,2,3…)
1. 列出部門爲「銷售部」,入職時間爲2011年12月1日以前的全部男員工工資大於5000元的信息,並按入職時間降序、工資升序進行展現,展現內容爲:部門名,員工姓名,工資,入職時間。select
2. 列出員工人數最多的部門員工平均工資。
答:
3. 寫出SQL實現入職超過三年的員 工工資增長10%、級別加1。
4. 列出各部門員工工資在2000到3000之間不一樣性別人數,展現字段以下:部門、男士人數、女士人數。