版权声明: https://blog.csdn.net/pbrlovejava/article/details/82534812
目录
每日一道sql题,回顾知识,保持感觉
一、建表语句
CREATE TABLE dept(
deptno INT PRIMARY KEY,
dname VARCHAR(14),
loc VARCHAR(13)
) ;
INSERT INTO DEPT VALUES (10,’ACCOUNTING’,’NEW YORK’);
INSERT INTO DEPT VALUES (20,’RESEARCH’,’DALLAS’);
INSERT INTO DEPT VALUES (30,’SALES’,’CHICAGO’);
INSERT INTO DEPT VALUES (40,’OPERATIONS’,’BOSTON’);
CREATE TABLE emp(
empno INT PRIMARY KEY,
ename VARCHAR(10),
job VARCHAR(9),
mgr INT,
hiredate DATE,
sal DOUBLE,
comm DOUBLE,
deptno INT REFERENCES dept);
INSERT INTO EMP VALUES(7369,’SMITH’,’CLERK’,7902,’1980-12-17’,800,NULL,20);
INSERT INTO EMP VALUES(7499,’ALLEN’,’SALESMAN’,7698,’1981-02-20’,1600,300,30);
INSERT INTO EMP VALUES(7521,’WARD’,’SALESMAN’,7698,’1981-02-22’,1250,500,30);
INSERT INTO EMP VALUES(7566,’JONES’,’MANAGER’,7839,’1981-04-02’,2975,NULL,20);
INSERT INTO EMP VALUES(7654,’MARTIN’,’SALESMAN’,7698,’1981-09-28’,1250,1400,30);
INSERT INTO EMP VALUES(7698,’BLAKE’,’MANAGER’,7839,’1981-05-01’,2850,NULL,30);
INSERT INTO EMP VALUES(7782,’CLARK’,’MANAGER’,7839,’1981-06-09’,2450,NULL,10);
INSERT INTO EMP VALUES(7788,’SCOTT’,’ANALYST’,7566,’1987-07-03’,3000,NULL,20);
INSERT INTO EMP VALUES(7839,’KING’,’PRESIDENT’,NULL,’1981-11-17’,5000,NULL,10);
INSERT INTO EMP VALUES(7844,’TURNER’,’SALESMAN’,7698,’1981-09-08’,1500,0,30);
INSERT INTO EMP VALUES(7876,’ADAMS’,’CLERK’,7788,’1987-07-13’,1100,NULL,20);
INSERT INTO EMP VALUES(7900,’JAMES’,’CLERK’,7698,’1981-12-03’,950,NULL,30);
INSERT INTO EMP VALUES(7902,’FORD’,’ANALYST’,7566,’1981-12-03’,3000,NULL,20);
INSERT INTO EMP VALUES(7934,’MILLER’,’CLERK’,7782,’1981-01-23’,1300,NULL,10);
CREATE TABLE salgrade(
grade INT,
losal DOUBLE,
hisal DOUBLE );
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
二、题目
1、返回拥有 员工 的 部门名 、部门号
SELECT
e.ename,d.dname,d.deptno
FROM
emp e
LEFT OUTER JOIN
dept d
ON
e.deptno = d.deptno
2、工资水平多于smith的员工信息
SELECT
e1.*
FROM
emp e1
WHERE
e1.sal >
(SELECT e2.sal
FROM
emp e2
WHERE
LOWER(e2.ename) ='smith');
3、返回员工和所属上司的姓名
SELECT
e1.ename 雇员,e2.ename 上司
FROM
emp e1
LEFT OUTER JOIN
emp e2
ON e1.mgr = e2.empno
4、返回雇员的雇佣日期早于其上司雇佣日期的员工及其上司姓名
SELECT e1.ename 雇员,e2.ename 上司
FROM
emp e1
INNER JOIN
emp e2
ON
e1.mgr = e2.empno
AND
e1.hiredate < e2.hiredate