in和exists的区别

SQL中exists和in的用法以及区别 - Hider1214 - 博客园
in是先执行内部的select,随后会去再执行外部的select,因此适用于外表大,内表小
exists是先执行外部的select,随后执行内部的select,适用于外表小,内表大。

delete

delete from 表名 where 筛选条件
如果是多表联合,则需要delete 指定其中一个表名

from后面有两个表是?-表示多表查询

多表查询
多表查询是笛卡尔积,M表和N表的联合查询是MxN条记录

join

MySQL JOIN
交叉连接cross join:表1 cross join 表2。这个就是笛卡尔乘积,M*N条记录
内连接inner join:比较两个表中有相同列名的数据,对于该列,如果两个表有相同数据,则进行连接
左连接left join:以左为基础,左表中的所有行都在,然后去右表中找相同字段的数据
右连接right join:
对于两个表有多个相同列名时,要用 on 来指明用哪个列名来匹配

distinct

MySQL DISTINCT 用法和实例
用于从某一列中选出不重复的部分,如果distinct后面是多列,则采用多列的组合来去掉重复的值
格式是select distinct 列的字段 from 表

group by

分组,将数据按照by后面的进行分组,此时select后面的列除了聚合函数外,必须和group by后面的保持相同。

order by

指定列进行排序,
格式:order by 列名 ASC 升序排序,order by 列名 DESC 降序排序
可以用聚合函数来进行排序

聚合函数

聚合函数(*)表示对所对应的字段集合进行计数,常常和group by搭配使用。

having

用于为某一列或者聚合函数列设定过滤条件
MySQL HAVING子句