基础查询(一)
表的梳理
部门表
deptno:部门编号
dname:部门名称
loc –location 地理位置
员工表
empno:员工编号
ename:员工姓名
job:工种
mgr:上级
hiredate:入职时间
sal:薪水
comm:津贴
deptno:部门编号
薪水等级表
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;
数字区间练习:#查询job是MANAGER且薪水大于2000小于2500
2、select ename, job, sal from emp where sal between 2000 and 2500 and job='MANAGER';
判空练习:#津贴为空且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’;
或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');
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);
not 练习#查出薪水不等于800 和1600的员工
6、select ename,job,sal,comm from emp where not (sal=800 or sal=1600);
#以j开头 以s结尾的员工
7、select ename, job, sal from emp where ename like 'J%S';
#查看第二个字是O 一共5个字母
8、select ename, job, sal from emp where ename like '_O___';