MySQL基本查询 SELECT的执行顺序(DQL语句)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL基本查询 SELECT的执行顺序(DQL语句)

select语句屏蔽了物理层的操作,用户不必关心数据的真实存储,交由数据库高效的查找数据。

普通查询

执行顺序:词法分析与优化,读取SQL语句 → FROM,选择数据来源 → SELECT,选择输出内容

  • select 列名 from 表名 [where 条件表达式]:查询表中的数据
  • select * from 表名:查询表所有行和列的数据
    • *代表所有字段,一般不建议使用
  • select 字段名 1, 字段名 2, 字段名 3, ... from 表名:查询指定列
-- 查询所有的学生:
select * from student;

-- 查询 student 表中的 name 和 age 列
select name, age from student;

使用别名查询

  • select 字段名1 as 别名, 字段名2 as 别名... from 表名:对列指定别名
  • select 表别名.字段名1 as 别名, 表别名.字段名2 as 别名... from 表名 as 表别名:对列和表同时指定别名

使用别名的好处:

  • 显示的时候使用新的名字,并不修改表的结构。as可以省略。
  • 用于多表查询操作
-- 使用别名
select name as 姓名,age as 年龄 from student;

-- 表使用别名
select st.name as 姓名,age as 年龄 from student as st;

分页查询

LIMIT是限制的意思,所以LIMIT的作用就是限制查询记录的条数。

执行顺序:FROM → SELECT → LIMIT

  • select 字段名 from 表名 limit 起始位置, 偏移量:分页查询
    • 起始位置:起始行数,从 0 开始计数,如果省略,默认就是0
    • 偏移量:返回的行数
    • 公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
-- 查询学生表中数据,从第 3 条开始显示,显示 6 条。
select * from student3 limit 2, 6;

排序

通过ORDER BY子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)。

执行顺序:FROM → SELECT → ORDER BY → LIMIT

  • select 字段名 from 表名 order by 字段名 [asc|desc]:单列排序,只按某一个字段进行排序,单列排序。
  • select 字段名 from 表名 order by 字段名1 [asc|desc], 字段名2 [asc|desc]:组合排序,同时对多个字段进行排序,如果第 1 个字段相等,则按第 2 个字段排序,依次类推。
    • ASC:升序,默认值
    • DESC:降序

如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型,就按照日期大小,如果是字符串就按照字符集序号排序。

-- 查询所有数据,使用年龄降序排序
select * from student order by age desc;

-- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序
select * from student order by age desc, math asc;

清除重复值

  • select distinct 字段名 from 表名:查询指定列并且结果不出现重复数据

使用 DISTINCT 的SELECT子句中只能查询一列数据,如果查询多列,去除重复记录就会失效,一条SELECT语句中,只能使用一次。

-- 查询学生来自于哪些地方
select address from student;
-- 去掉重复的记录
select distinct address from student;

查询结果参与运算

  • select 列名1+固定值 from 表名:某列数据和固定值运算
  • select 列名1+列名2 from 表名:某列数据和其他列数据参与运算

注意:参与运算的必须是数值类型

-- 某列数据和固定值运算
select age + 1 from student;

-- 某列数据和其他列数据参与运算,英语和数学分数之和
select english + math from student;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
|
存储 关系型数据库 MySQL
mysql数据库查询时用到的分页方法有哪些
【8月更文挑战第16天】在MySQL中,实现分页的主要方法包括:1)使用`LIMIT`子句,简单直接但随页数增加性能下降;2)通过子查询优化`LIMIT`分页,提高大页码时的查询效率;3)利用存储过程封装分页逻辑,便于复用但需额外维护;4)借助MySQL变量实现,可能提供更好的性能但实现较复杂。这些方法各有优缺点,可根据实际需求选择适用方案。
|
4天前
|
关系型数据库 MySQL 索引
mysql8.0中fulltext不能查询到中文的解决方法
确保MySQL服务器字符集为`utf8mb4`,并设置`ngram_token_size=1`以支持单字搜索。如已更改此参数且存在全文索引,需删除原有索引并重建,使用`WITH PARSER ngram`指定解析器。例如: ``` ALTER TABLE your_table DROP INDEX idx_fulltext, ADD FULLTEXT INDEX idx_fulltext (your_column) WITH PARSER ngram; ```
|
7天前
|
存储 算法 关系型数据库
探索MySQL递归查询,优雅的给树结构分页!
总结起来,对于MySQL中的树结构数据,递归查询结合预排序遍历树算法可以实现优雅的分页,但需要注意性能优化和数据更新的问题。这项技术提供了一种高效处理层级数据的工具,使得开发者可以在复杂的数据结构下实现直观和可靠的数据查询。
16 1
|
7天前
|
SQL 关系型数据库 MySQL
MySQL】-DQL(基本、条件、分组、排序、分页)详细版
通过这些查询方法,你可以高效地检索、分析和组织MySQL数据库中的数据,以满足各种应用需求。实践中,理解这些SQL语句的基础知识以及它们如何组合起来进行复杂的数据操作是至关重要的。
15 1
|
8天前
|
存储 关系型数据库 MySQL
在 MySQL 中使用 Insert Into Select
【8月更文挑战第11天】
24 0
在 MySQL 中使用 Insert Into Select
|
12天前
|
存储 SQL 缓存
MySQL查询语句的执行过程
MySQL查询语句的执行过程
|
3天前
|
存储 SQL 关系型数据库
探索MySQL的执行奥秘:从查询执行到数据存储与优化的深入解析
探索MySQL的执行奥秘:从查询执行到数据存储与优化的深入解析
|
5天前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
19 0
|
5天前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
8天前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。