Oracle經(jīng)典作業(yè)與答案(共12頁(yè))_第1頁(yè)
Oracle經(jīng)典作業(yè)與答案(共12頁(yè))_第2頁(yè)
Oracle經(jīng)典作業(yè)與答案(共12頁(yè))_第3頁(yè)
Oracle經(jīng)典作業(yè)與答案(共12頁(yè))_第4頁(yè)
Oracle經(jīng)典作業(yè)與答案(共12頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上-day1-1. 查詢職員表中工資大于1600的員工姓名和工資Select ename, sal from emp where sal > 1600;2. 查詢職員表中員工號(hào)為7369的員工的姓名和部門(mén)號(hào)碼Select ename, deptno from emp where empno = 7369;3. 選擇職員表中工資不在4000到5000的員工的姓名和工資Select ename, sal from emp where sal not between 4000 and 5000;4. 選擇職員表中在20和30號(hào)部門(mén)工作的員工姓名和部門(mén)號(hào)Select en

2、ame, deptno from emp where deptno in (20, 30);5. 選擇職員表中沒(méi)有管理者的員工姓名及職位, 按職位排序Select ename, job from emp where mgr is null order by job;6. 選擇職員表中有獎(jiǎng)金的員工姓名,工資和獎(jiǎng)金,按工資倒序排列Select ename, sal, comm. From emp where comm is not null order by sal desc;7. 選擇職員表中員工姓名的第三個(gè)字母是A的員工姓名Select ename from emp where ename l

3、ike _A%;8. 列出部門(mén)表中的部門(mén)名字和所在城市;select dname, loc from dept;9. 顯示出職員表中的不重復(fù)的崗位jobselect distinct job from emp;10. 連接職員表中的職員名字、職位、薪水,列之間用逗號(hào)連接,列頭顯示成OUT_PUT(提示:使用連接符|、別名)select ename | ', ' | job | ', ' | OUT_PUT(將列名大寫(xiě)) sal from emp;11. 查詢職員表emp中員工號(hào)、姓名、工資,以及工資提高百分之20%后的結(jié)果select empno, ename,

4、 sal, sal * 1.2 salary from emp;12. 查詢員工的姓名和工資數(shù),條件限定為工資數(shù)必須大于1200,并對(duì)查詢結(jié)果按入職時(shí)間進(jìn)行排列,早入職排在前面,晚入職排在后面。select ename, sal from emp where sal > 1200 order by hiredate;13. 列出除了ACCOUNT部門(mén)還有哪些部門(mén)。select deptno, dname, loc from dept where dname <> 'ACCOUNT'-day2-1. 將員工的姓名按首字母排序,并列出姓名的長(zhǎng)度(length)se

5、lect ename, length(ename) from emp order by ename;2. 做查詢顯示下面形式的結(jié)果<enamename> earns <sal> monthly but wants <sal*3>例如:Dream SalaryKing earns $5000 monthly but wants $15000select ename | ' earns $' | sal |' monthly but wants $' | sal * 3 “Dream Salary” from emp;3. 使用d

6、ecode函數(shù),按照下面的條件:JOB GRADEPRESIDENT AMANAGER BANALYST CSALESMAN DCLERK E產(chǎn)生類(lèi)似下面形式的結(jié)果ENAMEJOB GRADESMITHCLERKESELECT ename, job, DECODE(job,'PRESIDENT','A','MANAGER','B','ANALYST','C','SALESMAN','D','CLERK','E') AS "Gr

7、ade"FROM EMP;4. 查詢各員工的姓名ename,并顯示出各員工在公司工作的月份數(shù)(即:與當(dāng)前日期比較,該員工已經(jīng)工作了幾個(gè)月, 用整數(shù)表示)。select ename, round(months_between(sysdate, hiredate) hire_months from emp;5. 現(xiàn)有數(shù)據(jù)表Customer,其結(jié)構(gòu)如下所示: cust_id NUMBER(4) Primary Key, -客戶編碼 cname VARCHAR2(25) Not Null, -客戶姓名 birthday DATE, -客戶生日account NUMBER. -客戶賬戶余額(1

8、).構(gòu)造SQL語(yǔ)句,列出Customer數(shù)據(jù)表中每個(gè)客戶的信息。如果客戶生日未提供,則該列值顯示“not available” 。如果沒(méi)有余額信息,則顯示“no account”。(2).構(gòu)造SQL語(yǔ)句,列出生日在1987年的客戶的全部信息。(3).構(gòu)造SQL語(yǔ)句,列出客戶帳戶的余額總數(shù)。1)select cust_id, cname, nvl(to_char(birthday, 'yyyy-mm-dd'), 'not available'), nvl(to_char(account, '9999'), 'no account')

9、 from Customer;2)select * from Customer where extract(year from birthday) = '1987'3) select sum(account) from Customer;6. 按照”2009-4-11 20:35:10 ”格式顯示系統(tǒng)時(shí)間。select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') now from dual;7. 構(gòu)造SQL語(yǔ)句查詢員工表emp中員工編碼empno,姓名ename,以及月收入(薪水 + 獎(jiǎng)金),注意有的員工暫時(shí)沒(méi)有獎(jiǎng)金。se

10、lect empno, ename, sal + nvl(comm, 0) month_salary from emp;8. 查找員工姓名的長(zhǎng)度是5個(gè)字符的員工信息。select * from emp where length(ename) = 5;9. 查詢員工的姓名和工資,按下面的形式顯示:(提示:使用lpad函數(shù))NAME SALARY-SMITH $24000select ename name, lpad(sal, 15, '$') salary from emp;10. 查詢薪水大于2000元的員工的姓名和薪水,薪水值顯示為RMB5000.00這種形式,并對(duì)查詢結(jié)果按

11、薪水的降序方式進(jìn)行排列;select ename, to_char(sal, 'L9999.00') salary from empwhere sal > 2000order by sal desc;11. 構(gòu)造查詢語(yǔ)句,產(chǎn)生類(lèi)似于下面形式的結(jié)果:NAME HIREDATE REVIEW-SMITH 1980-12-17 1980年12月17日select ename name, to_char(hiredate, 'yyyy-mm-dd') hiredate,to_char(hiredate, 'yyyy"年"mm"

12、月"dd"日"') reviewfrom emp;12. 顯示所有員工的姓名ename,部門(mén)號(hào)deptno和部門(mén)名稱(chēng)dname。Select e.ename, d.deptno, d.dnameFrom emp e join dept d on e.deptno = d.deptno;13. 選擇在DALLAS工作的員工的員工姓名、職位、部門(mén)編碼、部門(mén)名字 Select e.ename, d.deptno, d.dnameFrom emp e join dept d on e.deptno = d.deptno and d.loc = DALLAS;14.

13、 選擇所有員工的姓名ename,員工號(hào)deptno,以及他的管理者mgr的姓名ename和員工號(hào)deptno,結(jié)果類(lèi)似于下面的格式employeesEmp#managerMgr#SMITH7369FORD7902select wor.ename "employees", wor.empno "Emp#", mag.ename "manager", mag.empno "Mgr#"from emp wor, emp magwhere wor.mgr = mag.empno;15. 查詢各部門(mén)員工姓名和他們所在位置,結(jié)

14、果類(lèi)似于下面的格式DeptnoEnameLoc20SMITHDALLASselect deptno,e.ename, d.locfrom emp e join dept dusing (deptno);16. 查詢公司員工工資的最大值,最小值,平均值,總和select max(sal), min(sal), avg(sal), sum(sal) from emp;17. 列出每個(gè)員工的名字,工資、漲薪后工資(漲幅為8%),元為單位進(jìn)行四舍五入Select ename , sal , round(sal*1.08) from emp;18. 查詢出JONES的領(lǐng)導(dǎo)是誰(shuí)(JONES向誰(shuí)報(bào)告)。se

15、lect e1.ename from emp e1 , emp e2 where e2.mgr = e1.empno and e2.ename = 'JONES'19. JONES領(lǐng)導(dǎo)誰(shuí)。(誰(shuí)向JONES報(bào)告)。select e1.ename from emp e1 , emp e2 where e1.mgr = e2.empno and e2.ename = 'JONES'-day3-1. 查詢各職位的員工工資的最大值,最小值,平均值,總和select job, max(sal), min(sal), avg(sal), sum(sal) from emp g

16、roup by job;2. 選擇具有各個(gè)job的員工人數(shù)(提示:對(duì)job進(jìn)行分組)select job, count(*) from emp group by job;3. 查詢員工最高工資和最低工資的差距,列名為DIFFERENCE;select max(sal)-min(sal) "DIFFERENCE" from emp;4. 查詢各個(gè)管理者屬下員工的最低工資,其中最低工資不能低于800,沒(méi)有管理者的員工不計(jì)算在內(nèi)select mgr, min(sal)from empwhere mgr is not nullgroup by mgrhaving min(sal)

17、>= 800;5. 查詢所有部門(mén)的部門(mén)名字dname,所在位置loc,員工數(shù)量和工資平均值;select dept.dname, dept.loc, COUNT, AVGfrom deptjoin( select deptno, count(*) as "COUNT", avg(sal) as "AVG"from empgroup by deptno )using(deptno);6. 查詢和scott相同部門(mén)的員工姓名ename和雇用日期hiredateselect ename, hiredatefrom empwhere deptno = (s

18、elect deptno from emp where emp.ename = 'SCOTT');7. 查詢工資比公司平均工資高的所有員工的員工號(hào)empno,姓名ename和工資sal。select empno, ename, salfrom empwhere sal > (select avg(sal) from emp);8. 查詢和姓名中包含字母u的員工在相同部門(mén)的員工的員工號(hào)empno和姓名enameselect empno, enamefrom empwhere deptno in (select deptno from emp where ename like

19、 '%U%');9. 查詢?cè)诓块T(mén)的loc為newYork的部門(mén)工作的員工的員工姓名ename,部門(mén)名稱(chēng)dname和崗位名稱(chēng)jobselect e.ename, d.dname, e.jobfrom emp e join dept dusing (deptno) where deptno = (select deptno from dept where loc = 'NEW YORK');10. 查詢管理者是king的員工姓名ename和工資salselect ename, salfrom empwhere mgr = (select empno from emp

20、 where ename = 'KING');11. 顯示Operations部門(mén)有哪些職位select distinct e.job from emp e , dept d where e.deptno = d.deptno and d.dname = 'Operations'12. 各個(gè)部門(mén)中工資大于1500的員工人數(shù)select dept_id , count(*) cnt from s_emp where salary > 1500 group by dept_id;13. 哪些員工的工資,高于整個(gè)公司的平均工資,列出員工的名字和工資(降序)sel

21、ect first_name , salary from s_emp where salary > (select avg(salary) from s_emp) order by salary desc;14. 所在部門(mén)平均工資高于1500的員工名字select first_name , salary from s_emp where dept_id in (select dept_id from s_emp group by dpet_id having avg(salary) > 1500);15. 列出各個(gè)部門(mén)中工資最高的員工的信息:名字、部門(mén)號(hào)、工資select firs

22、t_name , salary , dept_id from s_emp where (dept_id , salary) in (select dept_id , max(salary) from s_emp group by dept_id);16. 哪個(gè)部門(mén)的平均工資是最高的,列出部門(mén)號(hào)、平均工資select dept_id,avg(salary) from s_emp group by dept_id having avg(salary) = (select max(avg(salary) from s_emp); -day4-1. 創(chuàng)建表employee,字段為:Id numberF

23、irst_Name varchar2(20),last_Name varchar2(20),mgrid NUMBER,Job varchar2(20),Salary number(7,2)CREATE TABLE employee(id NUMBER, first_name VARCHAR2(20),last_name VARCHAR2(20),mgrid NUMBER,salary NUMBER(7,2);2. 向表中插入下列數(shù)據(jù),并提交,查詢數(shù)據(jù);IDFIRST_NAMELAST_NAMEMGRIDSALARY1RoseTyler415002MathaJones422003DonnaNob

24、le413004DoctorWho35005JackHarkness13000SQL> INSERT INTO employee VALUES (1, 'Rose', 'Tyler', 4, 1500);SQL> INSERT INTO employee VALUES (2, 'Martha', 'Jones', 4, 2200);SQL> INSERT INTO employee VALUES (3, 'Donna', 'Noble', 4, 1300);SQL> INSE

25、RT INTO employee VALUES (4, 'Doctor', 'Who', NULL,3500);SQL> INSERT INTO employee VALUES (5, 'Jack', 'Harkness', 1, 3000);SQL> COMMIT;4將3號(hào)員工的last_name修改為“Tate”,并提交,查詢數(shù)據(jù);SQL> UPDATE employee SET last_name = 'Tate' WHERE id = 3;5將所有工資少于2000的員工的工資修改為2000

26、 (不提交),并設(shè)置保存點(diǎn),查詢數(shù)據(jù);SQL> UPDATE employee SET salary = 2000 WHERE salary < 2000;SQL> SAVEPOINT A;6刪除employee表中所有數(shù)據(jù)(不提交),查詢數(shù)據(jù);SQL> DELETE FROM employee;SQL> SELECT * FROM employee;7回滾到第五題中的設(shè)置的保存點(diǎn),查詢數(shù)據(jù);SQL> Rollback to A;SQL> SELECT * FROM employee;8刪除表employee中所有數(shù)據(jù),并提交,查詢數(shù)據(jù);SQL>

27、 DELETE FROM employee;SQL> COMMIT;SQL> SELECT * FROM employee;9. 現(xiàn)有數(shù)據(jù)表Customer,其結(jié)構(gòu)如下所示: cust_id NUMBER(4) Primary Key, -客戶編碼 cname VARCHAR2(25) Not Null, -客戶姓名 csex CHAR(6) -客戶性別 birthday DATE, -客戶生日account NUMBER. -客戶賬戶余額1)、創(chuàng)建表,客戶編碼為主鍵,姓名不能為空,性別只能選擇”男”或”女”;CREATE TABLE customer(cust_id NUMBER PRIMARY KEY,cname VARCHAR2(25) NOT NULL,csex CHA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論