1、選擇題(40分)數據庫
Oracle發出下列select語句:oracle
SQL> select e.empno, e.ename, d.locide
2 from emp e, dept d函數
3 where e.deptno = d.deptnopost
4 and substr(e.ename, 1, 1) = ‘S’;code
下列哪一個語句是Oracle數據庫中可用的ANSI兼容等價語句?orm
A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno where對象
substr(emp.ename, 1, 1) = ‘S’;索引
B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno where事務
substr(emp.ename, 1, 1) = ‘S’;
C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno and
substr(emp.ename, 1, 1) = ‘S’;
D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno and
substr(emp.ename, 1, 1) = ‘S’;
下列哪一個選項表示Oracle中select語句的功能?
A.能夠用select語句改變Oracle中的數據 B.能夠用select語句刪除Oracle中的數據
C.能夠用select語句和另外一個表的內容生成一個表 D.能夠用select語句對錶截斷
你要操縱Oracle數據,下列哪一個不是SQL命令?
A.select * from dual; B.set define
C.update emp set ename = 6543 where ename = ‘SMITHERS’;
D.create table employees(empid varchar2(10) primary key);
你要在Oracle中定義SQL查詢。下列哪一個數據庫對象不能直接從select語句中引用?
A.表 B.序列 C.索引 D.視圖
你要根據PRODUCT_NAME列從PROFITS表查詢中過濾返回的數據。下列哪一個子句包含相應過濾條件的引用?
A.select B.from C.where D.having
用下列代碼所示的內容回答後面五個問題:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369SIMTHCLERK790217-DEC-8080020
7499ALLENSALESMAN769820-FEB-81160030030
7521WARDSALESMAN769822-FEB-81125050030
7566JONESMANAGER783902-APR-81297520
7654MARTINSALESMAN769828-SEP-811250140030
7698BLAKEMANAGER783901-MAY-81285030
7782CLARKMANAGER783909-JUN-81245010
7788SCOTTANALYST756619-APR-82300020
7839KINGPRESIDENT17-NOV-81500010
7844TURNERSALESMAN769808-SET-811500030
7876ADAMSCLERK778823-DEC-82110020
7900JAMESCLERK769803-DEC-8195030
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
如下選項中哪一個是下列查詢返回的值:select sum(sal) + sum(comm) from emp where job = ‘ANALYST’ or ename like ‘J%’ ?
A.6000 B.9925 C.9975 D.NULL null參與運算後的結果仍是null
如下選項中哪一個是下列查詢返回的值:select count(mgr) from emp where deptno = 10 ?
A.1 B.2 count運算能夠忽略空行 C.3 D.NULL
如下選項中哪一個是下列查詢返回的值:select count(*) from emp where mgr = 7700-2 ?
A.5 B.6 C.7 D.NULL
如下選項中哪一個是下列SQL命令產生的第三個員工:select ename, sal from emp where job= ‘SALESMAN’ order by empno desc ?
A.ALLEN B.MARTIN C.TURNER D.WARD
如下選項中哪一個是發出下列查詢後Oracle返回的值:select substr(job, 1, 3) from emp where ename like upper(‘__ar%’) ?
A.ANA B.CLE C.MAN D.SAL
要從ORDERS表中取得數據,其中包括三個列CUSTOMER、ORDER_DATE與ORDER_AMT。能夠用下列哪一個where子句查詢ORDERS表,取得客戶LESLIE超過2700的訂單?
A.where customer = ‘LESLIE’;
B.where customer = ‘LESLIE’ and order_amt < 2700;
C.where customer = ‘LESLIE’ or order_amt > 2700;
D.where customer = ‘LESLIE’ and order_amt > 2700;
對錶中的某一行,VARCHAR2列包含數值SMITHY,應用程序在右側填充七個空格。length()函數處理這個列值時,返回什麼值?
A.6 B.13 C.30 D.60
在Oracle中發出的下列查詢:
SQL> select months_between(‘15-MAR-83’,’15-MAR-97’) form dual;
Oracle返回什麼?
A.14 B.-14 C.168 D.-168
開發報表時,要鏈接三個表的信息,這些表爲EMP、DEPT與SALGRADE。只須要公司10級員工相應的員工姓名、部門地址與工資的記錄。這個查詢須要多少條件?
A.2 B.3 C.4 D.5
Oracle中發出下列命令:
SQL> select e.ename,a.street_address,a.city,a.post_code
2 from emp e,addr a
3 where e.empno = a.empno(+)
4 and a.state = ‘TEXAS’;
下列哪一個選項顯示等價ANSI/ISO語句?
A.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’;
B.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e left outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’;
C.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e right outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’;
D.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e right outer join addr a where e.empno = a.empno(+) and a.state = ‘TEXAS’;
對數據庫運行下列哪一個group by查詢時會從Oracle產生錯誤?
A.select deptno, job, sum(sal) from emp group by job, deptno;
B.select sum(sal), deptno, job from emp group by job, deptno;
C.select deptno, job, sum(sal) from emp;
D.select deptno, sum(sal), job from emp group by job, deptno;
檢查下列SQL的輸出
SQL> select a.deptno,a.job,b.loc,sum(a.sal)
2 from dmp a,dept b
3 where a.deptno = b.depton
4 group by a.deptno,a.job,b.loc
5 order by sum(a.sal);
這個查詢按哪一個列的順序返回輸出?
A.A.DEPTNO B.A.JOB C.B.LOC D.SUM(A.SAL)
用下列代碼塊回答問題:
SQL> select deptno,job,avg(sal)
2 from emp
3 group by deptno,job
4 having avg(sal)>
5 ( select sal
6 from emp
7 where ename = ‘MARTIN’ );
上述語句使用下面哪一種子查詢?
A.單行子查詢 B.多行子查詢 C.from子句子查詢 D.多列子查詢
查詢語句返回的結果是單行就是單行子查詢
查詢語句返回的是多行就是多行子查詢
Oracle中要生成數據庫表,下列哪一個選項是無效表生成的語句?
A.create table cats(c_name varchar2(10), c_weight number, c_owner varchar2(10));
B.create table my_cats as select * from cats where owner = ‘ME’;
C.create global temporary table temp_cats(c_name varchar2(10), c_weight number, c_owner varchar2(10));
D.create table 51cats as select c_name, c_weight from cats where c_weight > 5;
JOB表有三個列JOB_NAME、JOB_DESC和JOB_WAGE。用下列命令在JOB_DESC表中插入新行:
SQL> insert into job(job_name, job_desc)
2 values (‘LUCKEY’, ‘MAKES COFFEE’);
以後查詢這個表時獲得的結果:
SQL> select * from job where job_name = ‘LUCKEY’;
JOB_NAME JOB_DESC JOB_WAGE
LUCKEY MAKES COFFEE 35
數據是如何填信JOB_WAGE表的?
A.JOB表中的LUCKEY行已經存在,JOB_WAGE設置爲35。
B.生成表時JOB_WAGE列定義的default子句指定插入行時的值。
C.insert語句的values子句包含隱藏值,在插入行時加入。
D.唯一理由是對JOB表發出的後一個update語句增長了JOB_WAGE值
2、問答題(20分)
答:常見事物語句:commit,rollback,savepoint
舉例:① DML A ……;
② COMMIT;
③ DML B……;
④ ROLLBACK;
⑤ DML C;
⑥ SAVEPOINT sp;
⑦ DML D……;
⑧ ROLLBACK TO sp;
分析:第二行提交語句執行事後,第四行的rollback語句回滾只能回滾到第二行,說明第三行的DML語句對數據庫操做失效;第六行的設置保存點標記過之後,第八行的回滾就能回滾到sp保存點。
答:select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;
答:二者都刪除了表中數據,區別在於,delete語句只刪除了數據,沒有釋放表的存儲空間,而truncate語句既刪除了表數據,也自動釋放了表的存儲空間,效率更高。
答:DDL:Date Definition Language(數據定義語言),包括alter、rename、create、drop……
DML:Date Manipulation Language(數據操做語言)
答:grant……to……
3、有員工表emp(eno,ename,salary,dno),其中各字段的含義依次爲職工號、姓名、工資和所在部門號;有部門表dept(dno,dname),其中各字段的含義依次爲部門號、部門名稱。(10分)
1) 請用SQL語句將」銷售部」的那些工資數額低於3000元的職工的工資上調10%.
update emp
set salary=salary*1.1
where salary<3000 and dno=(
select dno from dept where dname=’ 銷售部’);
4、有下列一張數據表:(10分)
姓名
課程
成績
張三
數學
88
李四
語文
80
張三
英語
51
王五
英語
62
李四
數學
92
王五
語文
78
張三
語文
56
王五
數學
42
李四
英語
73
……
……
……
1)寫一個通用的查詢語句,找出全部課程都及格的學生姓名。
select sname
from table_name
group by sname
having min(grade)>=60;