1 Sql编写
count(*) //是对行数目进行计数
count(column_name) //是对列中不为空的行进行计数
SELECT COUNT( DISTINCT id ) FROM tablename; //计算表中id不同的记录有多少条
SELECT DISTINCT id, type FROM tablename; //返回表中id与type同时不同的结果
X.1 连表子查询
连表优先选择语句
因为left join / right join 它不管on中条件是否为真,都会返回左表所有记录,然后再返回右表满足条件的记录。所以连表查询优先考虑inner join再考虑left join。inner join 等同于使用了where,前者意思是取所有条件的交集,后者表示在查询出来的临时表中过滤筛选需要的数据。
select后面的查询
"查询所有部门的员工个数":
# 以前的写法:使用inner内连接两个表,分组部门
select 部门表.部门,count(*)
from 员工表
inner join 部门表
on 员工表.部门id = 部门表.部门id
group by 部门表.部门
# 子查询:select