《MySQL查询知识点》

基本查询

SELECT 后面接字段 FROM表名

单表查询

* 匹配所有的的字段

SELECT * FROM 表名

查询指定字段

SELECT 字段1 FROM表名;

查询指定记录

SELECT 字段1,字段2

FROM 表名

WHERE 条件;

IN关键字的查询

IN关键字表示必须满足IN条件缺一不可

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 字段 in (条件1,条件2)

ORDER BY 字段;

NOT来检索不在条件范围的的记录

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 字段 NOT IN (条件1,条件2)

ORDER BY 字段;

BETWEEN AND的范围查询

表示在两个条件范围中间的查询

SELECT 字段1,字段2

FROM 表名

WHERE 字段 BETWEEN条件1 AND条件2;

LIKE的字符匹配查询

LIKE后面匹配任何%匹配所有_表示一个

SELECT 字段1,字段2

FROM 表名

WHERE 字段 LIKE '(字符)%(字符)';

查询空值

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 字段 IS NULL;

查询不为空值

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 字段 IS NOT NULL;

AND的多条件查询

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 字段 条件 AND条件;

OR的多条件查询

表示只要满足其中一个条件就可以了

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 字段 条件 OR条件;

查询结果不重复

SELECT DISTINCT 字段 FROM表名;

对查询结构进行排序

SELECT 字段

FROM 表名

ORDER BY 字段;

多列排序

SELECT 字段1,字段2

FROM 表名

ORDER BY 字段1,字段2;

指定方向排序

降序排序

SELECT 字段1,字段2

FROM 表名

ORDER BY 字段 DESC;

升序排序

SELECT 字段1,字段2

FROM 表名

ORDER BY 字段 ASC;

创建分组

SELECT 字段,COUNT(*) AS别名

FROM 表名

GROUP BY 字段;

使用HAVING过滤分组

SELECT 字段, GROUP_CONCAT(字段) AS别名

FROM 表名

GROUP BY 字段 HAVING COUNT(字段)条件;

使用WITH ROLLUP关键字之后,在所有的查询的分组记录之后增加一条记录

该记录计算查询出的所有记录的总和,即统计记录数量

SELECT 字段,COUNT(*) AS别名

FROM 表名

GROUP BY 字段 WITH ROLLUP;

多字段分组

SELECT *

FROM 表名

GROUP BY 字段,字段;

GROUP BYORDER BY一起使用

SELECT 字段,  SUM(表名* 字段) AS别名

FROM 表名

GROUP BY 字段

HAVING SUM(表名*字段)条件;

使用LIMIT限制查询结果的数量

使用limit查询第一个参数从0开始第二个从1开始比如查询查询从第4条开始后面的3

SELECT * FROM 表名 LIMIT 3,3;

使用聚合函数

AVG();返回某列的平均值

COUNT();返回某列的行数

MAX();返回某列的最大值

MIN();返回某列的最小值

SUM();返回某列的值得和

使用COUNT()函数

SELECT COUNT(*) AS 别名

FROM 表名;

使用SUM()函数

SELECT SUM(字段) AS别名

FROM 表名

WHERE 字段 条件;

使用AVG()函数

SELECT AVG(字段) AS别名

FROM 表名

WHERE 字段 条件;

使用MAX()函数

SELECT MAX(字段) AS别名

FROM 表名;

使用MIN()函数

SELECT MIN(字段) AS别名

FROM 表名;

使用连接查询

内连接查询

SELECT 表名.字段1,字段2,字段3,字段4

FROM 表名 INNER JOIN表名

ON 表名.字段= 表名.字段;

左连接查询LEFT JOIN返回包括左表中的所有记录和右表中连接字段相等的记录

SELECT 表名.字段,表名.字段

FROM 表名 LEFT OUTER JOIN表名

ON 表名.字段= 表名.字段;

右连接查询RIGHT JOIN返回包括右表中的所有记录和左表中连接字段相等的记录

SELECT 表名.字段,表名.字段

FROM 表名 RIGHT OUTER JOIN表名

ON 表名.字段= 表名.字段;

子查询

ANY,SOME关键字的子查询

anysome关键字是同义词,表示满足其中任一条件,他们允许创建一个表达式对

子查询的返回值列表进行比较,只要满足内层子查询中任何一个比较条件,就返回一个结果

作为外层查询条件

SELECT 字段 FROM表名 WHERE条件 ANY

(SELECT 字段 FROM表名);

SELECT 字段 FROM表名 WHERE条件 SOME

(SELECT 字段 FROM表名);

ALL关键字的子查询

使用ALL时需要满足所有内层查询的条件

SELECT 字段 FROM表名 WHERE条件 ALL

(SELECT 字段 FROM表名);

EXISTS关键字的子查询

EXISTS关键字后面的参数是一个任意的子查询,系统对子查询进行运算

以判断它是否返回行,如果至少返回一行,那么EXISTS的结果为true,此时外层

查询语句将进行查询,如果子查询没有返回任何行,那么EXISTS的结果为false

此时外层语句将不进行查询

SELECT * FROM 表名

WHERE 字段>条件AND EXISTS

(SELECT 字段 FROM表名 WHERE条件);

IN关键字的子查询

IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将

提供给外层查询语句进行比较操作

SELECT 字段 FROM表名 WHERE字段 IN

(SELECT 字段  FROM表名 WHERE条件);

合并查询结果

利用UNION关键字,或者NUION ALL关键字分隔

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 条件

UNION ALL

SELECT 字段1,字段2,字段3

FROM 表名

WHERE 条件

使用AS关键字为表取别名

SELECT * FROM 表名 AS别名

WHERE 表名.字段 条件;

使用REGEXP关键字指定正则表达式的字符匹配

^匹配文本的开始

$匹配文本的结束

.匹配任何单个字符

*匹配零个或者多个在前面的字符

+匹配前面的字符1次或者多次

|匹配左边的条件或者右边的条件

[]只匹配其中的任何一个字符

SELECT * FROM 表名 WHERE字段 REGEXP '正则表达式';

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值