MySQL单表查询

目录

1.事务

 2.DQL

1.核心语法

SELECT

基本语法

字段别名 AS

去除重复行 DISTINCT

分页查询 LIMIT

WHERE子句

 基本语法

常用运算符

1.比较运算符

2.逻辑运算符

ORDER BY子句

基本语法

升降序

GROUP BY 与 HAVING子句

GROUP BY

 HAVING

HAVING子句与WHERE子句的区别


1.事务

事务的特性:ACID

ACID属性是数据库事务处理的核心,它们共同确保了在并发和故障情况下,数据库能够保持数据的一致性和完整性。

  • A(Atomicity):原子性
    • 事务被视为最小单位,操作要么全部完成,要么全部不执行
    • 在执行过程中,如果发生故障,事务将被回滚到开始事务之前的状态。
  • C(Consistency):一致性
    • 事务必须确保数据库从一个一致的状态转换到另一个一致的状态
    • 一致性状态指的是数据库中的数据应该满足所有的完整性约束
  • I(Isolation):隔离性
    • 数据库系统提供一定的隔离级别,防止多个事务并发执行时相互干扰
    • 隔离性确保事务在并发环境中独立执行,不会相互冲突或产生不一致的结果
  • D(Durability):持久性
    • 一旦事务被提交,它对数据库的更改应该是永久的
    • 即使发生系统故障,提交事务发生的更改不会丢失

 2.DQL

DQL:Data Query Language 主要用于从数据库中检索和查询数据。

1.核心语法

SELECT
基本语法
SELECT 列名 FROM 表名;

如果要选取多个列,列之间用 , 隔开

SELECT 列1,列2,...,列n FROM 表名;

要查询所有字段:

SELECT * FROM 表名;
字段别名 AS

为了增强语句的易读性,通常在所选字段与别名之间使用关键字AS表示别名的使用

SELECT 字段名 AS 别名 FROM 表名;

或省略 AS 关键字

SELECT 字段名 别名 FROM 表名;
去除重复行 DISTINCT

作用于单列:返回列中所有不重复的值

SELECT DISTINCT 列名 FROM 表名;

作用于多列:根据列的组合值去除重复的行。当指定的列的值都相等时,才会认为这些行是重复的

SELECT DISTINCT 列1, 列2 FROM 表名;
分页查询 LIMIT
SELECT 列名 FROM 表名 LIMIT 起始行数,每页显示的行数;

例如:查询用户表的内容,从第6行开始,每页显示10条数据

SELECT * FROM user LIMIT 5,10;

行号从0开始。LIMIT 后也可以只跟一个参数。表示需要返回的行数,从第一行开始获取数据

 查询user表中前五条数据

SELECT * FROM user LIMIT 5;
WHERE子句
 基本语法
SELECT 列名 FROM 表名 WHERE 列名 运算符 条件值;

例如:查询user表中 id为1的用户所有信息

SELECT * FROM user WHERE id=1;
常用运算符
1.比较运算符
运算符作用
=等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于
BETWEEN min AND max介于min与max之间,包含min和max
IN(value1,value2,...)在集合(value1,value2,...)中
IS NULL为空
IS NOT NULL不为空
LIKE模糊匹配
2.逻辑运算符
运算符说明
AND逻辑与
OR逻辑或
ORDER BY子句

按照一定规则进行排序

基本语法
SELECT 列名 FROM 表名 ORDER BY 列1,列2;

例1:查询user表中的数据,并以年龄进行排序

SELECT * FROM user ORDER BY age;

例2:查询user表中的数据,先以年龄进行排序,后以性别进行排序

SELECT * FROM user ORDER BY age,sex;
升降序

ORDER BY排序默认以升序进行排序

  • ASC:升序
  • DESC:降序

例:查询user表中的数据,并以年龄进行降序排序

SELECT * FROM user ORDER BY age DESC;
GROUP BY 与 HAVING子句
GROUP BY

GROUP BY 通常结合聚合函数进行使用,以便将结果集中的行分组为较小的集合,并对每个这样的集合执行聚合操作。

基本语法

SELECT 列名 FROM 表名 GROUP BY 列名;
 HAVING

HAVING 为条件筛选,紧随GROUP BY子句之后,用于对分组后的数据进行条件过滤。

基本语法

SELECT 列名 FROM 表名 GROUP BY 列名 HAVING 分组条件;
HAVING子句与WHERE子句的区别
  • WHERE子句:在数据分组之前对原始记录进行过滤,它不能对聚合函数的结果进行过滤。
  • HAVING子句:在数据分组之后对聚合结果进行过滤。如果查询中包含了GROUP BY子句,并且你希望对分组后的结果进行条件筛选,那么就需要使用HAVING子句。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值