orcal 第二章 練習1 1.使用兩種方式查詢所有員工信息 select * from emp select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO from emp 2.查詢員工編號、員工姓名、員工職位、員工月 薪、工作部門編號。 select ...
oracle 第二章
練習1
1.使用兩種方式查詢所有員工信息
select * from emp select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO from emp
2.查詢員工編號、員工姓名、員工職位、員工月 薪、工作部門編號。
select empno,ename,job,sal,deptno from emp
練習2
1.員工轉正後,月薪上調20%,請查詢出所有員 工轉正後的月薪。
select sal*(1+0.2) newsal from emp
2.員工試用期6個月,轉正後月薪上調20%,請查 詢出所有員工工作第一年的月薪所得(不考慮獎 金部分)
select sal*6+sal*(1+0.2)*6 newsal from emp
練習3
1.員工試用期6個月,轉正後月薪上調20%,請查 詢出所有員工工作第一年的所有收入(需考慮獎 金部分),要求顯示列標題為員工姓名,工資收 入,獎金收入,總收入。
select ename "員工姓名",sal*6+sal*(1+0.2)*6 "工資收入",12*comm "獎金收入",6*sal+6*sal*(1+0.2)+12*comm "總收入" from emp;
練習4
1.員工試用期6個月,轉正後月薪上調20%,請查 詢出所有員工工作第一年的所有收入(需考慮獎 金部分),要求顯示列標題格式為:XXX的第一年 總收入為XXX。
select ename|'的第一年總收入為’||(6*sal+6*sal*(1+0.2)+12*comm )
from emp;
2.查詢員工表中一共有哪幾種崗位類型。
select distinct job from emp;
課後作業
1.分別選擇員工表、部門表、薪資等級表中的所 有數據。
select * from emp;
select * from dept;
select * from salgrade;
2.分別查看員工表、部門表、薪資等級表的表結 構。
????????(並沒有運行出來)
到命令視窗
desc emp;
desc dept;
desc salgrade;
3.驗證語句
SELECT DISTINCT deptno,job FROM emp 的結果。
mysql
練習1
1.使用兩種方式查詢所有員工(EMP)信息
select * from emp; select empno,ename,job,mgr,hredate,sal,comm,deptno from emp;
2.查詢(EMP)員工編號、員工姓名、員工職位、員工月薪、工作部門編號
select empno,ename,job,sal,deptno from emp;
練習2
1.員工轉正後,月薪上調20%,請查詢出所有員工轉正後的月薪。
select sal*(1+0.2) newsal from emp;
2.員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的年薪所得(不考慮獎金部分,年薪的試用期6個月的月薪+轉正後6個月的月薪)
select sal*6+sal*(1+0.2)*6 newsal from emp;
練習3
1.員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的所有收入(需考慮獎金部分),要求顯示列標題為員工姓名,工資收入,獎金收入,總收入。
select ename "員工姓名",sal*6+sal*(1+0.2)*6 "工資收入",comm*12 "獎金收入",sal*6+sal*(1+0.2)*6+ifnull(comm*12,0) "總收入" from emp;
練習4
1.查詢員工表中一共有哪幾種崗位類型。
select distinct job from emp;
練習5
1. 分別查看員工表、部門表、薪資等級表的表結構
describe emp; describe dept; describe salgrade;
練習6
1.查詢職位為SALESMAN的員工編號、職位、入職日期。
select empno,job,hiredate from emp where job='SALESMAN';
2.查詢1985年12月31日之前入職的員工姓名及入職日期。
select ename,hiredate from emp where hiredate < '1985-12-31';
3.查詢部門編號不在10部門的員工姓名、部門編號。
select ename,deptno from emp where deptno !=10;
練習7
1.查詢入職日期在82年至85年的員工姓名,入職日期。
select ename,hiredate from emp where hiredate between '1982-01-01' and '1985-12-31';
2.查詢月薪在3000到5000的員工姓名,月薪。
select ename,sal from emp where sal between 3000 and 5000;
3.查詢部門編號為10或者20的員工姓名,部門編號。
select ename,deptno from emp where deptno =10 or deptno=20;
4.查詢經理編號為7902, 7566, 7788的員工姓名,經理編號。
select ename,empno from emp where empno=7902 or 7566 or 7788;
練習8
1.查詢員工姓名以W開頭的員工姓名。
select ename from emp where ename like 'W_';
2.查詢員工姓名倒數第2個字元為T的員工姓名。
select ename from emp where ename like '%T_';
3.查詢獎金為空的員工姓名,獎金。
select ename,comm from emp where comm is null;
練習9
1.查詢工資超過2000並且職位是MANAGER,或者職位是SALESMAN的員工姓名、職位、工資
select ename,job,sal from emp where sal>2000 and job='MANAGER';
2.查詢工資超過2000並且職位是 MANAGER或SALESMAN的員工姓名、職位、工資
select ename,job,sal from emp where sal>2000 and job='MANAGER' or 'SALEMAN';
3.查詢部門在10或者20,並且工資在3000到5000之間的員工姓名、部門、工資。
select ename,deptno,sal from emp where deptno=10 or 20 and sal between 3000 and 5000;
4.查詢入職日期在81年,並且職位不是SALES開頭的員工姓名、入職日期、職位。
select ename,hiredate,job from emp where hiredate between '1981-01-01' and '1981-12-31' and job not like 'SALES_';
5.查詢職位為SALESMAN或MANAGER,部門編號為10或者20,姓名包含A的員工姓名、職位、部門編號。
select ename,job,deptno from emp where (job = 'SALESMAN' or 'MANAGER' )and (deptno =10 or 20 )and ename like '%A%';
練習11
1.查詢入職日期最早的前5名員工姓名,入職日期。
select ename,hiredate from emp order by hiredate limit 0,5;
2.查詢工作在CHICAGO並且入職日期最早的前2名員工姓名,入職日期。
select ename,hiredate from emp,dept where emp.deptno=dept.deptno and loc='CHICAGO' order by hiredate limit 0,2;
3.按照每頁顯示5條記錄,分別查詢第1頁,第2頁,第3頁信息,要求顯示員工姓名、入職日期、部門名稱。
select ename,hiredate,deptno from emp limit 0,5;
select ename,hiredate,deptno from emp limit 6,10;
select ename,hiredate,deptno from emp limit 11,15;
課後作業
1.查詢入職時間在1982-7-9之後,並且不從事SALESMAN工作的員工姓名、入職時間、職位。
select ename,hiredate,job from emp where hiredate > '1982-07-09'and job not like 'SALESMAN';
2.查詢員工姓名的第三個字母是a的員工姓名。
select ename from emp where ename like '__a%';
3.查詢除了10、20號部門以外的員工姓名、部門編號。
select ename,deptno from emp where deptno not between 10 and 20;
--where deptno not in (10,20);
4.查詢部門號為30號員工的信息,先按工資降序排序,再按姓名升序排序。
select * from emp where deptno =30 order by sal desc, ename ;
5.查詢沒有上級的員工(經理號為空)的員工姓名。
select ename from emp where mgr is null;
6.查詢工資大於等於4500並且部門為10或者20的員工的姓名\工資、部門編號。
select ename,sal,deptno from emp where sal>=4500 and deptno = 10 or 20;
--where sal>=4500 and deptno in (10,20);