WHERE
GROUP BY(分组)
ORDER BY(排序)
HAVING(放在最后选择)
DISTINCT(查询重复值)
查询某列不同值
SELECT DISTINCT (column_name) FROM table_name;
查询某列不同值的数量
SELECT COUNT(DISTINCT column_name) FROM table_name;
常用聚合函数
max() :最大值
min() :最小值
avg() :平均值
sum() :总和
count() :个数
返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name;
返回表中的记录数
SELECT COUNT(*) FROM table_name;
连接
内连接(普通join)
左连接(找左表有右表没有的)
返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。(可以找差别)
select * from table1
left join table2
on table1.id= table2.id
右连接(找右表有左表没有的)
RIGHT JOIN返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。
select * from table1 right jointable2
on table1.id=table2 .id
全连接
FULL JOIN 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替
select * from Table1 full outer join Table2
on Table1.id=Table2.id