当前位置:   article > 正文

使用各种条件进行SELECT查询_select 多个条件

select 多个条件

执行要显示的列

显示所有列
SELECT * FROM 表名;
  • 1
显示指定列
SELECT 列名1,列名2,... FROM 表名;
  • 1
使用别名
SELECT 列名1 AS 别名1,列名2 AS 别名2,... FROM 表名;
  • 1

计算列值或处理字符串

对列值进行计算

在查询表的时候,可以对列中的数据进行计算,如下运算符

运算符使用示例
+a + b
-a - b
*a * b
/a / b
DIVa DIV b (结果取整)
%、MODa % b (取余)
使用函数进行计算

显示平均值

SELECT AVG(列名) FROM 表名;
  • 1

显示总和

SELECT SUM(列名) FROM 表名;
  • 1

显示个数

SELECT COUNT(列名) FROM 表名;
  • 1
显示各种信息的函数

显示mysql服务器版本

SELECT VERSION();
  • 1

显示当前使用的数据库

SELECT DATABASE();
  • 1

显示当前用户

SELECT USER();
  • 1

显示由参数指定的字符的字符编码

SELECT CHARSET('看看文字符号');
  • 1
字符串连接
SELECT CONCAT(列名1, 列名2,...,"字符串") FROM 表名;
  • 1
操作字符串常用函数

从右取出:RIGHT函数

SELECT RIGHT(empid,2) FROM 表名;
  • 1

从左取出:LEFT函数

SELECT LEFT(empid,2) FROM 表名;
  • 1

截取函数:SUBSTRING()

如下示例,从empid第二个字符开始连续显示3个字符;

SELECT SUBSTRING(列名, 开始截取的位置, 需要截取的数量) FROM 表名;
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jcFyS1YM-1594216820838)(imgs\07\mysql_20200708002.png)]

重复显示:REPEAT函数

SELECT REPEAT(要显示的字符, 重复的次数) FROM 表名;
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8tT1jB4-1594216820847)(imgs\07\mysql_20200708003.png)]

反转函数:REVERSE函数

SELECT REVERSE(列名) FROM 表名;
  • 1
日期和时间函数
NOW()
  • 1

用于返回当前日期和时间的函数。

设置条件

Limit
SELECT 列名 FROM 表名 LIMIT 显示的记录数;
  • 1
Where
SELECT 列名 FROM 表名 WHERE 条件;
  • 1
比较运算

常用的比较运算符:

比较运算符含义
=等于
>大于
>=大于等于
<小于
<=小于等于
<>不等于
a IN ba在b列表中
a NOT IN ba不在b列表中
a BETWEEN b AND ca在b到c之间
a NOT BETWEEN b AND ca不在b到c之间
使用字符串做条件
SELECT * FROM 表名 WHERE 列名='列值';
  • 1

LIKE:模糊查询

SELECT * FROM 表名 WHERE 列名 LIKE '%列值部分';
  • 1
通配符含义
%任意字符串
_任意一个字符

不包含指定字符串

SELECT * FROM 表名 WHERE 列名 NOT LIKE '%列值部分';
  • 1
使用NULL做条件

当列值为NULL时

SELECT * FROM 表名 WHERE 列名 IS NULL;
  • 1

当列值不为NULL时

SELECT * FROM 表名 WHERE 列名 IS NOT NULL;
  • 1

指定多个条件

AND
ELECT * FROM 表名 WHERE 条件1 AND 条件2;
  • 1
OR
ELECT * FROM 表名 WHERE 条件1 OR 条件2;
  • 1
多个AND或OR

当AND和OR混合使用时,会优先处理AND;如果要改变优先级,可以在需要限制性的条件上加一个括号()。

CASE WHEN
CASE
	WHEN 条件1  THEN 显示的值
	WHEN 条件2  THEN 显示的值
	WHEN 条件3  THEN 显示的值
...
ELSE 不满足所有条件时的值
END (AS 别名)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

排序

升序
SELECT 列名 FROM 表名 ORDER BY 作为键的列;
SELECT 列名 FROM 表名 ORDER BY 作为键的列 ASC; ## 明确指定按升序排列
  • 1
  • 2
降序
SELECT 列名 FROM 表名 ORDER BY 作为键的列 DESC;
  • 1
指定范围

“开始显示记录的位移数”:指的是“移动了多少位后开始显示记录”的数字

SELECT 列名 FROM 表名 LIMIT 显示的记录数 OFFSET 开始显示记录的位移数;
  • 1

分组

分组显示
SELECT 列名 FROM 表名 GROUP BY 用于分组的列名;
  • 1

只是分组显示没有什么意义,这种方式只是可以知道表中的该列存在几种数据。所以一定要记住处理对象是“同一组中的所有数据”。

分组计算

一定要记住处理对象是“同一组中的所有数据”。举个例子:

计算各组的记录数

条件分组

按组处理

采用HAVING为分组的结果值设置查询条件。HAVING后面的条件是在分组之后执行的。

SELECT 统计列 FROM 表名 GROUP BY 分组列 HAVING 条件;
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t9RXyiV8-1594216820848)(imgs\07\mysql_20200708008.png)]

先查询结果,再分组

需要先使用WHERE将满足条件的记录查询出来,然后在使用GROUP BY进行分组。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VMWTVXtU-1594216820850)(imgs\07\mysql_20200708009.png)]

先分组,再排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6v6Z1A4b-1594216820851)(imgs\07\mysql_20200708010.png)]

参考资料

西泽梦路(著) , 卢克贵 (译) . MySQL基础教程 . 人民邮电出版社 . 2020.1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/189164
推荐阅读
相关标签
  

闽ICP备14008679号