count(*):有多少行,对行做统计
count(x):列....
sum:和
avg:平均值
min:求最小值
max:求最大值
distinct:取出重复的值
count:计数
group by:分组
department_id:部门编号
having:对分组进行筛选
table:表
null:空表
组函数
①:avg: 平均值
②:count: 计数
③:max: 最大值
④:min: 最小值
⑤:sum: 和
分组数据
例:select deparment_id,job_id,avg(salary) from employees
from employees
group by department_id,job_id;
总结:分组数据中,select的字段只要不是组函数的,则必须出现在
group by中,否则会出错..... select 有的 group by 一定
要有,group by 有的select 不一定有....
使用组函数注意:
①:不能在where 子句中使用组函数
②:可以在 having 子句中使用组函数
当使用组函数作为条件的时候,只需要将where换成having即可
注意:having即可放在from后面,也可放到group by 的后面
例:select deparment_id,avg(salary)
from employees
having avg(salary) >6000
group by department_id
order by department_id asc;
③:组函数可以相互嵌套
例:select max(avg(salary))
from employees
group by department_id;
多表连接:
empno:工号
ename:姓名
deptno:部门编号
dept:部门
emp:表的名字
在where子句中指定连接条件
当被连接的多个表中存在同名字段时,必须在该字段前加上"表名"作为前缀
内连接:等值连接
左外连接:左外连接就是在内连接(等值连接)的基础上加上主表中的未匹配数据。
left outer join:左外连接 left join:左连接
右外连接:右外连接就是在内连接(等值连接)的基础上加上被连接表的不匹配数据。
right outer join:右外连接 right join:右连接
全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上
全外连接:全外连接的等价写法,对同一表先做左连接,然后在做右连接。
full outer join:全外连接 full join:完全加入
on:为它们的连接条件。