--創建部門表
CREATE TABLE dept
(
deptno int PRIMARY KEY,
dname varchar(14),
loc varchar(13)
)
--創建僱員表
CREATE TABLE emp
(
empno int PRIMARY KEY,
ename varchar(10),
job varchar(9),
mgr int,
hiredate datetime,
sal decimal(7,2),
comm decimal(7,2),
deptno int,
FOREIGN KEY(deptno) REFERENCES dept(deptno)
);
--插入數據
INSERT dept VALUES(10,'ACCOUNTING','NEW YORK');
INSERT dept VALUES(20,'RESEARCH','DALLAS');
INSERT dept VALUES(30,'SALES','CHIGAGO');
INSERT dept VALUES(40,'OPERATIONS','BOSTON');
INSERT emp VALUES(7369,'SMITH','CLERK',7902,'2000-12-17',800,NULL,20);
INSERT emp VALUES(7499,'ALLEN','SALESMAN',7698,'2001-2-20',1600,300,30);
INSERT emp VALUES(7521,'WARD','SALESMAN',7698,'2001-2-22',1250,500,30);
INSERT emp VALUES(7566,'JONES','MANAGER',7839,'2001-2-22',1250,500,30);
INSERT emp VALUES(7654,'MARTIN','SALESMAN',7698,'2001-9-28',1250,1400,30);
INSERT emp VALUES(7698,'BLAKE','MANAGER',7839,'2001-5-1',2850,NULL,30);
INSERT emp VALUES(7782,'CLARK','MANAGER',7839,'2001-6-9',2450,NULL,10);
INSERT emp VALUES(7788,'SCOTT','ANALYST',7566,'2002-12-9',3000,NULL,20);
INSERT emp VALUES(7839,'KING','PRESIDENT',NULL,'2001-11-17',5000,NULL,10);
INSERT emp VALUES(7844,'TURNER','SALESMAN',7698,'2001-9-8',1500,0,30);
INSERT emp VALUES(7876,'ADAMS','CLERK',7788,'2003-1-12',1100,NULL,20);
INSERT emp VALUES(7900,'JAMES','CLERK',7698,'2001-3-12',950,NULL,30);
INSERT emp VALUES(7902,'FORD','ANALYST',7566,'2001-3-12',3000,NULL,20);
INSERT emp VALUES(7934,'MILLER','CLERK',7782,'2002-01-23',1300,NULL,10);
--1.查詢所有僱員信息
SELECT * FROM learn.emp;
--2.查詢所有部門信息
SELECT * FROM learn.dept;
--3.查詢沒有佣金(comm)的所有僱員信息
SELECT * FROM learn.emp where comm is null
--4.查詢部門30中的僱員信息
SELECT * FROM learn.emp where deptno=30
--5.找出佣金(comm)高於薪金(sal)的僱員
SELECT * FROM learn.emp where comm>sal
--6.找出部門(deptno)10中所有經理(job)和部門20中的所有辦事員的詳細信息
SELECT * FROM learn.emp where (deptno=10 and job='MANAGER') or( deptno=20 and job='CLERK')
--7.找出收取佣金的僱員的不同工作
SELECT job FROM emp where comm is not null group by job
--8.顯示帶有'R'的僱員姓名
select ename from learn.emp where ename like '%R%'
--9.顯示不帶有'R'的僱員姓名
select ename from learn.emp where ename not like '%R%'
--10.顯示僱員的詳細信息,按姓名升序排序
SELECT emp.*,dept.dname FROM emp join dept on emp.deptno=dept.deptno order by ename asc
--11.顯示所有僱員的姓名、工作和薪金,按工作降序排序,而按薪金升序排序
select ename,job,sal from emp order by job desc,sal asc