MySQL——单表查询

MySQL——单表查询

select 列的列表/* from 表名
[where 条件] --条件 对整张表的筛选
[group by 列名] --分组
[having 条件] --分组条件
[order by 列名…] --排序
[limit m,n] —分页

可以没有,但是顺序不能改变

SQL编写顺序:select---->from---->where---->group by---->having---->order by---->limit

SQL执行顺序:from---->where---->group by---->having---->select---->order by---->limit

查询列

  1. 无条件查询
SELECT * FROM 表名;  //查询全部列
SELECT 列名1,列名2,列名3 FROM 表名;  //查询指定列
  1. 条件查询

利用where语句,实现条件的筛选

常见的运算符和关键字:

  • =、!=、<>(不等于)、<、<=、>、>=
  • BETWEEN…AND
  • IN(set)
  • IS NULL
  • AND
  • OR
  • NOT

在有多个条件时,也会使用逻辑运算符:AND(&&) OR(||) NOT(!)

//书写格式
SELECT * FROM 表名
WHERE 条件;

模糊查询

在部分情况下,我们无法得知具体的查询条件,此时需要我们进行模糊查询

例如:我们在查询某个学生的信息时,不记得学生的全名,但记得他名字中的某个字,通过该字进行查询

模糊查询的关键字:LIKE

//查询名字中有z的学生
SELECT * FROM stu WHERE sname LIKE '%z%';
	//其中“%”匹配0~n个任何字母。

//查询名字长度为3的学生
SELECT * FROM stu WHERE sname LIKE '___';
	//其中`"_"`匹配任意一个字母,3个`"_"`表示3个任意字母。

去重查询

去除重复记录(两行或两行以上记录中系列的上的数据都相同)

关键字:DISTINCT

SELECT DISTINCT 列名 FROM 表名;

添加别名

SELECT 字段1 AS 别名1, 字段2 AS 别名2 ... FROM 表名;
或者
SELECT 字段1 别名1, 字段2 别名2 ... FROM 表名;

在最后的数据显示时,列名会变为别名,但实际的表的列名是不会发生改变的

排序

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ,...;

一般默认是升序

ASC:升序

DESC: 降序

  • 升序排列可以不用声明
  • 多字段排列时,先按照字段1进行排列,只有字段1 排列时遇到相同值才会根据字段排列

聚合函数

聚合函数是用来做纵向运算的函数:

将一列数据作为一个整体,进行纵向计算

函数描述
COUNT()统计指定列不为NULL的记录行数
MAX()计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
MIN()计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
SUM()计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
AVG()计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

语法

SELECT 聚合函数(字段列表) FROM 表名 ;

注意 : NULL值是不参与所有聚合函数运算的。

分组查询

关键字:GROUP BY 和 HAVING

SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];

注意事项:

  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
  • 执行顺序: where > 聚合函数 > having 。
  • 支持多字段分组, 具体语法为 : group by columnA,columnB

分页查询

关键字:LIMIT

SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;

注意事项:

• 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。

• 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。

• 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

区别where和group by

where与having区别

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组

之后对结果进行过滤。

  • 判断条件不同:where不能对聚合函数进行判断,而having可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值