表的梳理
部门表
![](https://i-blog.csdnimg.cn/blog_migrate/b799b7ba48143ded93ba77690ce9b12c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e797cd9cdeefca7a8669925ac884b8b1.png)
deptno:部门编号
dname:部门名称
loc –location 地理位置
员工表
![](https://i-blog.csdnimg.cn/blog_migrate/b0cec9305c44dee7d2471d3cfe307ccc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d588474fe9272a3d7021c4c30fabbc1d.png)
empno:员工编号
ename:员工姓名
job:工种
mgr:上级
hiredate:入职时间
sal:薪水
comm:津贴
deptno:部门编号
薪水等级表
![](https://i-blog.csdnimg.cn/blog_migrate/87103e6a85b363aa65bf155814a84c5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f1e82a07d0a7d08ffcd7912db81835b6.png)
grade:等级
losal-Lowestsal:最低薪水
hisal-highestsal:最高薪水
DML(Data manipulation language)
数据库操纵语言(增删查改表中数据)
基础查询
1、查询单个字段
select
dept.dname
from dept;
select
dname
from demp;
注意:select查询
from:从哪里来 来自 特指表
2、查询多个字段
select
dname, loc
from dept;
3、将查询到的字段取别名
select
ename as 雇员姓名
from emp;
select
ename 雇员姓名
from emp;
select
ename 雇员姓名
from emp as e;
给列和表名都可以取别名,as和不加as效果性能相同
4、条件查询实例
符号练习:#查询薪水=5000的员工
1、select
ename, sal, job
from emp
where sal=5000;
![](https://i-blog.csdnimg.cn/blog_migrate/533f61274efd2cf312f92970276d379a.png)
数字区间练习:#查询job是MANAGER且薪水大于2000小于2500
2、select
ename, job, sal
from emp
where sal between 2000 and 2500 and job='MANAGER';
![](https://i-blog.csdnimg.cn/blog_migrate/e82dadc710b6b64baefb9d709ba4c13e.png)
判空练习:#津贴为空且job是是manager且薪水大于2000且小于2500的员工
3、select
ename, job, sal, comm
from emp
where comm is null and sal between 2000 and 2500 and job=’MANAGER’;
![](https://i-blog.csdnimg.cn/blog_migrate/89fa1f04216bf84dc28330aa8d869520.png)
或or练习#津贴为空且job是manager且薪水大于2000且小于2500的员工 和job是salesman,comm=500 的员工
4、select
ename, job, sal,comm
from emp
where (comm is null and sal between 2000 and 2500 job='MANAGER')
or (job='SALESMAN' and comm='500');
![](https://i-blog.csdnimg.cn/blog_migrate/b0e4e9ffa31e38541e0323d8c90a622d.png)
in 练习#津贴为空 且job是manager 且薪水大于2000小于2500的员工 和job是salesman comm=500的员工,且同时查出薪水等于800 1600 3000的员工信息
5、select
ename,job,sal, comm
from emp
where (comm is null and sal between 2000 and 2500 and job='MANAGER')
or (job='SALESMAN' and comm=500)
or sal in(800, 1600, 3000);
![](https://i-blog.csdnimg.cn/blog_migrate/e832f0cf33ba97eadb4c231525ffcbbb.png)
not 练习#查出薪水不等于800 和1600的员工
6、select
ename,job,sal,comm
from emp
where not (sal=800 or sal=1600);
![](https://i-blog.csdnimg.cn/blog_migrate/0ac35e7d8b0e484a82e75c2174c721ac.png)
#以j开头 以s结尾的员工
7、select
ename, job, sal
from emp
where ename like 'J%S';
![](https://i-blog.csdnimg.cn/blog_migrate/cd115264eb2c80f6558dd9134fb53cf9.png)
#查看第二个字是O 一共5个字母
8、select
ename, job, sal
from emp
where ename like '_O___';
![](https://i-blog.csdnimg.cn/blog_migrate/84da0641e818c45ce033e92310d09631.png)