csdn文档

WHERE

GROUP BY(分组)

ORDER BY(排序)

HAVING(放在最后选择)

DISTINCT(查询重复值)

查询某列不同值

  1. 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代替。(可以找差别)
sql - 图1

select * from  table1 
left join  table2
on  table1.id= table2.id

右连接(找右表有左表没有的)

RIGHT JOIN返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。

sql - 图2

select * from table1  right jointable2
on table1.id=table2 .id


全连接

FULL JOIN 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

sql - 图3

select * from Table1  full outer join Table2
on Table1.id=Table2.id