整理常用的MySQL查询命令

单表查询

主要是针对一张表的数据查询操作,以下是单表查询中的各种查询方式的总结:

查询所有字段
SELECT * FROM 表名;
查询指定字段
SELECT 列名1,列名2,...,列名n FROM 表名;
查询指定记录

通过WHERE子句来对数据进行过滤,以获得过滤后的数据

SELECT 列名1,列名2,...,列名n FROM 表名 WHERE 查询条件
IN关键字

IN关键字用于查询满足指定范围内的条件的记录,在使用时,将检索条件用括号括起来,多个检索条件之间用逗号分隔,当满足其中一个条件即可以匹配到。

SELECT * FROM 表名 WHERE 列名 IN (n1,n2,n3,...);     //条件范围内
SELECT * FROM 表名 WHERE 列名 NOT IN (n1,n2,n3,...); //条件范围外
BETWEEN AND范围查询

用于查询某个范围内的值,满足字段值指定的范围查询条件,即被返回。

SELECT * FROM 表名 WHERE 列名 BETWEEN min AND max;      //条件范围内
SELECT * FROM 表名 WHERE 列名 NOT BETWEEN min AND max;  //条件范围外

BETWEEN AND 和 IN 之间的区别:

  • IN将括号内的数值当作数组处理,只要满足属性值等于括号内的数值之一,才会匹配到;
  • BETWEEN AND指属性值在min和max之间,包括min和max

LIKE模糊查询

’%’:匹配任意长度的字符,包括零字符

‘_’:匹配任意一个字符,需要匹配多个则是使用多个’_’

SELECT * FROM 表名 WHERE 列名 LIKE '%xx';    //匹配以xx结尾的数据
SELECT * FROM 表名 WHERE 列名 LIKE '%xx%';   //匹配包含有xx的数据
SELECT * FROM 表名 WHERE 列名 LIKE 'xx%';    //匹配以xx开头的数据
SELECT * FROM 表名 WHERE 列名 LIKE '_xx';       //匹配xx结尾,且前面有一个字符的数据
SELECT * FROM 表名 WHERE 列名 LIKE '____xx';    //匹配xx结尾,且前面有四个字符的数据
空值查询

通过IS NULL子句,查询某字段内容为空的记录。

SELECT * FROM 表名 WHERE 字段名 IS NULL;  //查询字段值为null的记录
SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;  //查询字段值不为null的记录
AND
SELECT * FROM 表名 WHERE 条件1 AND 条件2 AND ... AND 条件n;
OR
SELECT * FROM 表名 WHERE 条件1 OR 条件2 OR ... OR 条件n;
去重
SELECT DISTINCT 列名 FROM 表名;
排序

DESC排序方式只应用到直接位于其前面的字段上。

SELECT * FROM 表名 ORDER BY 字段1,字段2,...,字段n;       //默认升序 ASC可以不写
SELECT * FROM 表名 ORDER BY 字段1,字段2,...,字段n DESC;  //降序
分组

将数据按照某个或多个字段进行分组,使用GROUP BY关键字

SELECT * FROM 表名 [GROUP BY 字段名][HAVING <条件表达式>]; //HAVING用于过滤分组

HAVING 和 WHERE 的区别:

+ 都用于过滤数据
+ HAVING在分组之后进行过滤
+ WHERE在分组之前用来选择记录,且排除的记录不包括在分组中

LIMIT限制查询
SELECT * FROM 表名 LIMIT [位置偏移量],行数; //偏移量默认从0开始

聚合函数查询

COUNT()

返回某列的行数

SELECT COUNT(*) FROM 表名;     //计算表中的总行数,无论有数值还是为空值
SELECT COUNT(字段名) FROM 表名; //计算指定列名下总行数,忽略为空值的行
SUM()

返回某个值的和,忽略值为NULL的行

SELECT SUM(字段名) FROM 表名; 
AVG()

返回某列的平均值,如果要得到多个列的平均值,则需每一列都使用AVG()函数

SELECT AVG(字段名1),AVG(字段名2),...,AVG(字段名N) FROM 表名; 
MAX()

返回某列的最大值

SELECT MAX(字段名) FROM 表名; 
MIN()

返回某列的最小值

SELECT MIN(字段名) FROM 表名; 

连接查询

内连接

把表当作是一个集合,内连接使用关键字 INNER JOIN ON来进行查询,返回的结果就是表的交集。

在这里插入图片描述

SELECT * FROM A INNER JOIN B ON A.字段名 = B.字段名;
外连接
左外连接

使用关键字 LEFT JOIN ON(或者 LEFT OUTER JOIN ON),返回的结果是A表的结果和AB的交集。

在这里插入图片描述

SELECT * FROM A LEFT JOIN ON A.字段名 = B.字段名;
右外连接

使用关键字 RIGHT JOIN ON(或者 RIGHT OUTER JOIN ON),返回的结果是 AB的交集和B表的结果。

在这里插入图片描述

SELECT * FROM A RIGHT JOIN B ON A.字段名 = B.字段名;

参考资料

Mysql—— 内连接、左连接、右连接以及全连接查询

《MySQL5.7从入门到精通》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栖溪阁晓生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值