列别名:
当SELECT子句中一个字段是函数或者表达式,那么在结果集中该字段的名字就是这个函数或表达式,可读性差,为此可以为列提供一个别名,这样在结果集中会使用该别名作为该字段的名字。应当养成一个好习惯,即:凡是表达式或函数都指定一个别名。
别名本身不区分大小写,若希望别名区分大小写或者别名中包含空格,那么需要使用双引号将其括起来。
SELECT ename,sal+NVL(comm,0) "sal"FROM emp
OR,AND用于连接多个条件使用:
OR的优先级低于AND,所以若希望提高OR的优先级,可以使用括号。查看工资高于1000,并且职位是CLERK或者SALESMAN的员工?
SELECT
ename,job,sal
FROM
emp
WHERE
sal>1000
AND
(job='SALESMAN' OR job='CLERK')
LIKE用于模糊匹配字符串支持两个通配符:
%:0-多个字符(任意个字符)
_:单一的一个字符
查看名字第二个字母是A的员工?
SELECT
ename,sal,deptno
FROM
emp
WHERE
ename LIKE '_A%'
IN(list) 和 NOT IN(listr)判断在列表中和不在列表中
IN,NOT IN常被用在子查询上使用。
查看职位是CLERK和SALESMAN的员工?
SELECT
ename,job,sal
FROM
emp
WHERE
job IN('CLERK','SALESMAN')
BETWEEN...AND...判断在一个区间范围内:
查看工资在1500到3000之间的员工?
SELECT
ename,sal
FROM
emp
WHERE
sal BETWEEN 1500 AND 3000
查看工资在1000-3000之间,20和30号部门名字中含有A的员工?
SELECT
ename,sal,deptno,job
FROM
emp
WHERE
sal BETWEEN 1000 AND 3000 AND deptno IN (20,30) AND ename LIKE '%A%'
ANY(list),ALL(list):
ANY,ALL是配合>,>=,<,<=使用的
>ANY(list):大于列表之一,大于最小
>ALL(list):大于列表所有,大于最大
<ANY(list):小于列表之一,小于最大
<ALL(list):小于列表所有,小于最小
ANY,ALL的列表中不会给定固定值,没有
实际意义,它们通常配合子查询使用。
SELECT
empno, ename, job,sal, deptno
FROM
emp
WHERE sal>ANY(3500,4000,4500)
DISTINCT关键字:
DISTINCT可以将结果集中指定字段值一样的记录去重。
查看公司有哪些职位?
SELECT DISTINCT job FROM emp
可以按照多字段去重,那么这些字段值的组合没有重复记录出现在结果集中。
SELECT DISTINCT deptno,job FROM emp
ORDER BY子句:
ORDER BY用于对查询的结果集按照指定
字段的值进行排序。
排序分为:升序(ASC),降序(DESC).
默认为升序
ORDER BY子句必须定义在SELECT语句中
的最后一个子句上。
查看公司中工资的排名?
SELECT
ename,sal,job
FROM
emp
ORDER BY
sal DESC
查看20号部门的工资排名?
SELECT
ename,sal,deptno
FROM
emp
WHERE
deptno=20
ORDER BY
sal DESC
多字段排序时,ORDER BY是有排序的优先级的,首先按照第一个字段先进行排序,当该字段中有记录值重复时,再将这些记录按照第二个字段排序。依此类推。
SELECT
ename,deptno,sal
FROM
emp
ORDER BY
deptno DESC,sal DESC
若排序的字段中含有NULL值,NULL被认定为最大值。
SELECT ename,comm FROM emp ORDER BY comm
聚合函数:
聚合函数又称为分组函数,多行函数。聚合函数的作用是对结果集指定字段的值进行统计工作的。MAX(),MIN(),SUM(),AVG()求最大值,最小值,总和,平均值,还有一个是对记录数的统计COUNT()。
查看公司的最高工资是多少?
SELECT MAX(sal) FROM emp
SELECT MAX(sal),MIN(sal),SUM(sal),AVG(sal) FROM emp
查看公司共多少人?
SELECT COUNT(ename) FROM emp
SELECT COUNT(*) FROM emp
SELECT COUNT(1) FROM emp
聚合函数忽略NULL值。
SELECT SUM(comm),AVG(comm)FROM emp
SELECT AVG(NVL(comm,0)) FROM emp
分组:
GROUP BY子句
GROUP BY子句可以将结果集按照给定的字段值一样的记录进行分组。配合聚合函数使用可以完成分组统计工作。
查看每个部门的平均工资?
SELECT
AVG(sal),