第1关:创建数据表并插入数据
########## 创建emp表 ##########
CREATE TABLE emp (
empno INT(4) NOT NULL,
ename CHAR(9),
job CHAR(10),
mgr INT(4),
sal INT(7),
comm int(7),
deptno INT(2) NOT NULL
);
########## 向emp表中插入数据 ##########
INSERT INTO emp
(empno, ename, job, mgr, sal, comm, deptno)
VALUES
(1011, "Elon", "cameraman", 001, 8000, "2147483647", 30);
INSERT INTO emp
(empno, ename, job, mgr, sal, comm, deptno)
VALUES
(1111, "Donny", "waiter", 003, 4000, "2147483647", 40);
第2关:删除、修改表中的数据
-- 删除 emp 表中员工编号为 1011 的记录(即删除 Elon 的信息)
DELETE FROM emp WHERE empno = 1011;
-- 修改 emp 表中员工编号为 1111 的记录的部门编号为 20(即修改 Donny 的部门编号)
UPDATE emp SET deptno = 20 WHERE empno = 1111;
第3关:简单查询语句
-- 查询在20号部门工作的雇员姓名和工资(包括雇员编号)
SELECT ename, sal, deptno FROM emp WHERE deptno = 20;
-- 使用 LIKE 查找以 “s” 开头的雇员姓名和所在部门编号
SELECT ename, deptno FROM emp WHERE ename LIKE 's%';
-- 按工资升序排列20号部门的雇员(返回包括雇员姓名、工资和编号)
SELECT ename, sal, deptno FROM emp WHERE deptno = 20 ORDER BY sal ASC;
-- 查询所有部门中工资大于2800的雇员(返回包括雇员姓名和工资)
SELECT ename, sal FROM emp WHERE sal > 2800;
第4关:深入学习查询语句
-- 使用 IN 查找工种是职员(clerk)或分析员(analyst)的雇员姓名和工种
SELECT ename, job FROM emp WHERE job IN ("clerk", "analyst");
-- 查在编号为10的部门中哪些工种是编号为30的部门中没有的
SELECT DISTINCT job FROM emp WHERE deptno = 10 AND job NOT IN
(SELECT DISTINCT job FROM emp WHERE deptno = 30);
-- 查看工资高于3000的雇员的名字以及雇员所在部门的名称和地址
SELECT e.ename, e.sal, e.deptno, d.loc,d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE e.sal > 3000;
搜了半天没搜到答案,我来写