1.字段可以进行运算。
图片说明
图片说明


2.给查询结果的列重命名
SELECT ename,sal12 AS yearsal FROM emp;
或者省略AS,用空格代替。
SELECT ename,sal
12 yearsal FROM emp;
2.1中文命名
SELECT ename,sal*12 AS '年薪' FROM emp;
图片说明


3.条件查询
select
字段,字段....
from
表名
where
条件;
执行顺序:先from,再where,最后select。
例如:1.查询工资等于5000的员工姓名:SELECT ename,sal FROM emp WHERE sal=5000;
图片说明
2.查询SMITH的工资:SELECT ename,sal FROM emp WHERE ename='smith';
图片说明
3.找出工资高于3000的员工:SELECT ename,sal FROM emp WHERE sal>3000;
图片说明
4.找出工资不等于3000的:SELECT ename,sal FROM emp WHERE sal!=3000;
或者SELECT ename,sal FROM emp WHERE sal <> 3000;
图片说明
5.找出工资在1100和3000之间的员工(包括1100,和3000):SELECT ename,sal FROM emp WHERE sal>=1000 AND sal<=3000;
或者:SELECT ename,sal FROM emp WHERE sal BETWEEN 1100 AND 3000;(between...and是闭区间)
图片说明
补充:between and除了可以使用在数字方面之外,还可以使用在字符串方面。
例如:SELECT ename,sal FROM emp WHERE ename BETWEEN 'A' AND 'C';
图片说明
SELECT ename,sal FROM emp WHERE ename BETWEEN 'A' AND 'd';
图片说明
结论:between and 利用在字符方面是左闭右开。
6.找出那些人没有津贴:SELECT ename,sal,comm FROM emp WHERE comm IS NULL OR comm=0;
图片说明
注意:空只能用is null 不能用 = 。空和0不是一回事儿。
7.找出那些人津贴不为null和不等于0:SELECT ename,sal,comm FROM emp WHERE comm IS NOT NULL AND comm!=0;
图片说明
8.找出工作岗位是MANNAGER和SALESMAN的员工:SELECT ename,JOB FROM emp WHERE job='MANAGER' OR JOB='SALESMAN';
图片说明
9.and和or联合起来用(and优先级高于or,所以要带括号):找出薪资大于1000的并且部门编号是20或30的员工:SELECT ename,sal,deptno FROM emp WHERE sal>1000 AND (deptno=20 OR deptno=30);
图片说明
注意:当运算符的优先级不确定的时候加小括号,加了括号的优先级高。


1.in等同于or:找出工作岗位是MANAGER和SALESMAN的员工:SELECT ename,job FROM emp WHERE job IN('manager','salesman');
图片说明
1.1 not in:不在这几个值当中。(in 后面不是区间):SELECT ename,sal FROM emp WHERE sal NOT IN(1000,5000);
图片说明
2.模糊查询:like:找出名字当中含有o的(在模糊查询中,必须掌握两个特殊的符号,% —)。%代表任意多个字符,—代表任意一个字符。
SELECT ename FROM emp WHERE ename LIKE '%o%';
图片说明
2.1找出名字中第二个字母是A的:SELECT ename FROM emp WHERE ename LIKE'a%';
图片说明
2.2找出名字中有下划线的:select name from tt_user where name like '%\
%';
注意:下划线代表任意一个字符,要想只让其表示一个下划线,可利用转义
图片说明
2.3找出名字第一个字母是t的:SELECT ename FROM emp WHERE ename LIKE 't%';
找出名字最后一个字母是t的:SELECT ename FROM emp WHERE ename LIKE '%t';