oracle查询.docx

上传人:苏美尔 文档编号:8846043 上传时间:2021-01-19 格式:DOCX 页数:12 大小:19.44KB
返回 下载 相关 举报
oracle查询.docx_第1页
第1页 / 共12页
oracle查询.docx_第2页
第2页 / 共12页
oracle查询.docx_第3页
第3页 / 共12页
oracle查询.docx_第4页
第4页 / 共12页
oracle查询.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《oracle查询.docx》由会员分享,可在线阅读,更多相关《oracle查询.docx(12页珍藏版)》请在三一文库上搜索。

1、-day1-1. 表中工 大于 1600 的 工姓名和工 Select ename, sal from emp where sal 1600;2. 表中 工号 7369 的 工的姓名和部 号 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 号部 工作的 工姓名和部 号Select ename, deptno from emp wh

2、ere deptno in (20, 30);5. 表中没有管理者的 工姓名及 位, 按 位排序Select ename, job from emp where mgr is null order by job;6. 表中有 金的 工姓名,工 和 金,按工 倒序排列Select ename, sal, comm From emp where comm is not null order by sal desc;7. 表中 工姓名的第三个字母是 A 的 工姓名Select ename from emp where ename like _A%;8. 列出部 表中的部 名字和所在城市;select

3、 dname, loc from dept;9. 示出 表中的不重复的 位 job select distinct job from emp;10. 接 表中的 名字、 位、薪水,列之 用逗号 接,列 示成OUT_PUT(提示:使用 接符|、 名)select ename | , | job | , | sal from emp;11. 表 emp 中 工号、姓名、工 ,以及工 提高百分之 20%后的 果select empno, ename, sal, sal * 1.2 salary from emp;12. 工的姓名和工 数,条件限定 工 数必 大于 1200,并 果按入 行排列,早入

4、排在前面,晚入 排在后面。select ename, sal from emp where sal 1200 order by hiredate;13. 列出除了 ACCOUNT 部 有哪些部 。select deptno, dname, loc from dept where dname ACCOUNT;-day2-1. 将 工的姓名按首字母排序,并列出姓名的 度(length)select ename, length(ename) from emp order by ename;2. 做 示下面形式的 果 earns monthly but wants 例如:Dream SalaryKin

5、g earns $5000 monthly but wants $15000select ename | earns $ | sal | monthly but wants $ | sal * 3 “Dream Salary” from emp;3. 使用 decode 函数,按照下面的条件:JOBGRADEPRESIDENTAMANAGERBANALYSTCSALESMANDCLERKE 生 似下面形式的 果ENAME JOBGRADESMITH CLERK ESELECT ename, job,DECODE(job,PRESIDENT,A,MANAGER,B,ANALYST,C,SALES

6、MAN,D,CLERK,E) AS GradeFROM EMP;4. 各 工的姓名 ename,并 示出各 工在公司工作的月份数(即:与当前日期比 , 工已 工作了几个月, 用整数表示)。select ename, round(months_between(sysdate, hiredate) hire_months from emp;5. 有数据表 Customer,其 构如下所示:cust_id NUMBER(4)Primary Key,-客 cname VARCHAR2(25) Not Null,-客 姓名birthday DATE,-客 生日account NUMBER.-客 余 (1

7、).构造 SQL 句,列出 Customer 数据表中每个客 的信息。如果客 生日未提供, 列 示“not available” 。如果没有余 信息, 示“no account”。(2).构造 SQL 句,列出生日在 1987 年的客 的全部信息。(3).构造 SQL 句,列出客 的余 数。1)select cust_id, cname, nvl(to_char(birthday, yyyy-mm-dd), not available), nvl(to_char(account, 9999), no account) from Customer;2)select * from Customer

8、 where extract(year from birthday) = 1987;3) select sum(account) from Customer;6. 按照”2009-4-11 20:35:10 ”格式 示系 。select to_char(sysdate, yyyy-mm-dd hh24:mi:ss) now from dual;7. 构造 SQL 句 工表 emp 中 工 empno,姓名 ename,以及月收入(薪水 + 金),注意有的 工 没有 金。select empno, ename, sal + nvl(comm, 0) month_salary from emp;8

9、. 找 工姓名的 度是 5 个字符的 工信息。select * from emp where length(ename) = 5;9. 工的姓名和工 ,按下面的形式 示:(提示:使用 lpad 函数)NAMESALARY-SMITH$24000select ename name, lpad(sal, 15, $) salary from emp;10. 薪水大于 2000 元的 工的姓名和薪水,薪水 示 RMB5000.00这种形式,并 果按薪水的降序方式 行排列;select ename, to_char(sal, L9999.00) salary from empwhere sal 200

10、0order by sal desc;11. 构造 句, 生 似于下面形式的 果:NAMEHIREDATEREVIEW-SMITH1980-12-171980年 12 月 17 日select ename name,to_char(hiredate, yyyy-mm-dd) hiredate,to_char(hiredate, yyyy年mm月dd日) reviewfrom emp;12. 示所有 工的姓名 ename,部 号 deptno 和部 名称 dname。13. 在 DALLAS 工作的 工的 工姓名、 位、部 、部 名字Select e.ename, d.deptno, d.dna

11、meFrom empe join dept d on e.deptno = d.deptno and d.loc = DALLAS;14. 所有 工的姓名 ename, 工号 deptno,以及他的管理者 mgr 的姓名 ename 和 工号 deptno, 果 似于下面的格式employeesEmp#managerMgr#SMITH7369FORD7902select wor.ename employees, wor.empno Emp#, mag.ename manager,mag.empno Mgr#from emp wor, emp magwhere wor.mgr = mag.emp

12、no;15. 各部 工姓名和他 所在位置, 果 似于下面的格式DeptnoEnameLoc20SMITHDALLASselect deptno,e.ename, d.locfrom emp e join dept don e.deptno = d.deptno;16. 公司 工工 的最大 ,最小 ,平均 , 和 select max(sal), min(sal), avg(sal), sum(sal) from emp;17. 列出每个 工的名字,工 、 薪后工 ( 幅 8%),元 位 行四舍五入Select ename , sal , round(sal*1.08) from emp;18.

13、 出 JONES 的 是 (JONES 向 告)。select e1.ename from emp e1 , emp e2 where e2.mgr = e1.empno and e2.ename = JONES;19. JONES 。( 向 JONES 告)。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

14、empgroup by job;2. 具有各个 job 的 工人数(提示:对 job 行分 )select job, count(*)from empgroup by job;3. 工最高工 和最低工 的差距,列名 DIFFERENCE;select max(sal)-min(sal) DIFFERENCEfrom emp;4. 各个管理者属下 工的最低工 ,其中最低工 不能低于 800,没有管理者的 工不 算在内select mgr, min(sal)from empwhere mgr is not nullgroup by mgrhaving min(sal) = 800;5. 所有部 的

15、部 名字 dname,所在位置 loc, 工数量和工 平均 ;select dept.dname, dept.loc, COUNT, AVGfrom deptjoin(select deptno, count(*) as COUNT, avg(sal) as AVGfrom empgroup by deptno)using(deptno);6. 和 scott 相同部 的 工姓名 ename 和雇用日期 hiredate select ename, hiredatefrom empwhere deptno = (select deptno from emp where emp.ename =

16、SCOTT);7. 工 比公司平均工 高的所有 工的 工号 empno,姓名 ename 和工资 sal。select empno, ename, salfrom empwhere sal (select avg(sal) from emp);8. 和姓名中包含字母 u 的 工在相同部 的 工的 工号 empno 和姓名 enameselect empno, enamefrom empwhere deptno in (select deptno from emp where ename like %U%);9. 在部 的 loc 为 newYork 的部 工作的 工的 工姓名 ename,部

17、名称 dname 和 位名称 jobselect e.ename, d.dname, e.jobfrom emp e join dept don e.deptno = d.deptnowhere deptno = (select deptno from dept where loc = NEW YORK);10. 管理者是 king 的 工姓名 ename 和工 sal select ename, salfrom empwhere mgr = (select empno from emp where ename = KING);11. 示 Operations 部 有哪些 位select di

18、stinct e.job from emp e , dept d where e.deptno = d.deptno and d.dname = Operations;12. 各个部 中工 大于 1500 的 工人数select deptno , count(*) from emp where sal 1500 group by deptno;13. 哪些 工的工 ,高于整个公司的平均工 ,列出 工的名字和工 (降序)select ename , sal from emp where sal (select avg(sal) from emp)order by sal desc;14. 所在部

19、 平均工 高于 1500 的 工名字select ename , sal from empwhere deptno in (select deptno from emp group by dpetnohaving avg(sal) 1500);15. 列出各个部 中工 最高的 工的信息:名字、部 号、工 select ename , sal , deptno from empwhere (deptno , sal) in(select deptno , max(sal) from emp group by deptno);16. 哪个部 的平均工 是最高的,列出部 号、平均工 select d

20、eptno, avg(sal) from empgroup by deptnohaving avg(sal) = (select max(avg(sal) from emp group by deptno);-day4-1. 建表 employee,字段 :Id numberFirst_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

21、VARCHAR2(20),mgrid NUMBER,salary NUMBER(7,2);2. 向表中插入下列数据,并提交, 数据;IDFIRST_NAMELAST_NAMEMGRIDSALARY1RoseTyler415002MathaJones422003DonnaNoble413004DoctorWho35005JackHarkness13000SQL INSERT INTO employeeVALUES (1, Rose, Tyler, 4, 1500);SQL INSERT INTO employeeVALUES (2, Martha, Jones, 4, 2200);SQL INS

22、ERT INTO employeeVALUES (3, Donna, Noble, 4, 1300);SQL INSERT INTO employeeVALUES (4, Doctor, Who, NULL,3500);SQL INSERT INTO employeeVALUES (5, Jack, Harkness, 1, 3000);SQL COMMIT;4将 3 号 工的 last_name 修改 “Tate”,并提交, 数据;SQL UPDATE employee SET last_name = TateWHERE id = 3;5将所有工 少于 2000 的 工的工 修改 2000

23、(不提交),并 置保存点, 数据;SQL UPDATE employee SET salary = 2000 WHERE salary SAVEPOINT A;6 除 employee 表中所有数据(不提交), 数据;SQL DELETE FROM employee;SQL SELECT * FROM employee;7回 到第五 中的 置的保存点, 数据; SQL Rollback to A;SQL SELECT * FROM employee;8 除表 employee 中所有数据,并提交, 数据; SQL DELETE FROM employee; SQL COMMIT;SQL SEL

24、ECT * FROM employee;9. 有数据表 Customer,其 构如下所示:cust_id NUMBER(4)Primary Key,-客 cname VARCHAR2(25) Not Null,-客 姓名csex CHAR(6)-客 性 birthday DATE,-客 生日account NUMBER.-客 余 1)、 建表,客 主 ,姓名不能 空,性 只能 ”男”或”女”;CREATE TABLE customer(cust_id NUMBER PRIMARY KEY,cname VARCHAR2(25) NOT NULL,csex CHAR(6),birthday DAT

25、E,account NUMBER,CONSTRAINT cust_csex_chk CHECK (csex IN (男, 女),);2)构造 SQL 句,向 Customer 数据表中插入一条 ,其信息如下:客 使用第一步 建的序列 得,客 姓名 sean,性 ”男”,生日 1987-11-17, 余 12345 元。INSERT INTO customer(cust_id, cname, birthday, account) VALUES(cust_seq.NEXTVAL, sean,TO_DATE(1987-11-17,yyyy-mm-dd), 12345);-day5-1. 建一个序列,

26、初始 是 1000,步 是 10;Create sequence start with 1000 increment by 10;2. 建一个 v_emp,内容是按部 分 ,各个部 的薪水 和和 工人数; 字段定 deptno, total_sal, total_count;Create or replace view v_empIsSelect deptno, sum(sal) total_sal, count(*) total_countFrom emp group by deptno;3. ,列出全部 ;Select * from v_emp;4. 除 ;Drop view v_emp;5. 列出薪水最低的三名 工的名字;SELECT ename, sal, ROWNUMFROM(SELECT ename, salFROM empORDER BY sal)WHERE ROWNUM = 3;6. 列出按 工 排序,第 6 到第 10 条 工 。SELECTename, sal, rnFROM(SELECT ROWNUM rn, ename, salFROM empORDER BY empno )WHERE rn BETWEEN 6 AND10;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1