MySQL基础教程——查询数据

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL基础知识

MySQL 数据库沿用SQL的SELECT语句来查询数据。


语法


SELECT column_name1,column_name2 FROM table_name [WHERE clause] [LIMIT N][ OFFSET M]


示例数据

我们以Customers表为例,来讲解MySQL中的数据查询功能。

60.jpg



查询单列

即只显示某一列数据,我们以查询Customers表中的姓名为例,可以这样写SQL代码:


SELECT `姓名` FROM customers


结果为:

61.jpg


查询多列

与查询单列的写法类似,不同的是必须在SELECT后面给出多个列名,列名用逗号(,)隔开,例如我们要查询Customers表中客户的姓名和地址,可以这样写:


SELECT `姓名`,`地址` FROM customers


结果为:

62.jpg


查询所有列

除了指定列名以为,SELECT查询语句还可以查询表的所有列名而不必一一列出来,在SELECT后面使用通配符星号(*)来达到该作用。例如我们想查看Customers表里的所有数据,可以这样写:


SELECT * FROM customers;

结果为:

63.jpg

其实就是我们上面的示例数据的结果。


查询结果去重

当我们查询Customers中的城市列时,发现返回的结果中广州和北京都重复了。要在查询结果中去掉重复行,我们可以使用关键字:DISTINCT来去重。如下:


SELECT DISTINCT 城市 FROM customers;


结果为:

64.jpg

注意:DISTINCT不能部分去重,当它后面有多列时,只有当这些列都重复时DISTINCT才会去掉重复的,例如:


SELECT DISTINCT 城市,邮编 FROM customers;

因为城市和邮编都是一一对应的,这里使用DISTINCT可以去掉重复的数据,结果为:


65.jpg


但是如果查询customers表中的客户ID和城市时,使用DISTINCT,则不会对城市单独去重了,因为客户ID没有对应的重复值


SELECT DISTINCT 客户ID,城市 FROM customers;

结果为:


66.jpg


返回指定行数

如果一张表的数据行非常多,但是我们又不想完成显示所有记录行,这时候可以使用LIMIT关键字来返回指定的行数,例如:返回customers表中的前3行


SELECT * FROM customers LIMIT 3;


结果为:

67.jpg


如果要得到第4-6行(即下3行)要怎么操作呢?这时我们可以使用LIMIT的第二个参数来实现,例如:


SELECT * FROM customers LIMIT 3,3;

结果为:

68.jpg

其中第一个3表示起始行的下标,第二个3表示返回的行数。

注意:当LIMIT使用两个参数时,第一个参数的起始下标为0开始而不是1,所以上面的第一个3实际上是第4行开始,务必记住!


查询带表名的列

当我们之后讲到关联查询时,如果两个表里面有相同的列名时,为了区分,我们会在列名前面添加表名来区别,例如:

SELECT customers.`客户ID`,orders.`客户ID` 
FROM customers,orders
where customers.`客户ID`=orders.`客户ID`


结果为:

69.jpg

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Java 关系型数据库 MySQL
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
228 43
|
1月前
|
存储 SQL 关系型数据库
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
|
15天前
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
35 9
|
21天前
|
监控 关系型数据库 MySQL
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
78 9
|
18天前
|
算法 关系型数据库 MySQL
join查询可以⽆限叠加吗?MySQL对join查询有什么限制吗?
大家好,我是 V 哥。本文详细探讨了 MySQL 中 `JOIN` 查询的限制及其优化方法。首先,`JOIN` 查询不能无限叠加,存在资源(CPU、内存、磁盘 I/O)、性能和语法等方面的限制。过多的 `JOIN` 操作会导致数据库性能急剧下降。其次,介绍了三种常见的 `JOIN` 查询算法:嵌套循环连接(NLJ)、索引嵌套连接(INL)和基于块的嵌套循环连接(BNL),并分析了它们的触发条件和性能特点。最后,分享了优化 `JOIN` 查询的方法,包括 SQL 语句优化、索引优化、数据库配置调整等。关注 V 哥,了解更多技术干货,点赞👍支持,一起进步!
|
23天前
|
存储 关系型数据库 MySQL
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
|
22天前
|
存储 SQL 关系型数据库
【YashanDB 知识库】MySQL 迁移至崖山 char 类型数据自动补空格问题
问题分类】功能使用 【关键字】char,char(1) 【问题描述】MySQL 迁移至崖山环境,字段类型源端和目标端都为 char(2),但应用存储的数据为'0'、'1',此时崖山查询该表字段时会自动补充空格 【问题原因分析】mysql 有 sql_mode 控制,检查是否启用了 PAD_CHAR_TO_FULL_LENGTH SQL 模式。如果启用了这个模式,MySQL 才会保留 CHAR 类型字段的尾随空格,默认没有启动。 #查看sql_mode mysql> SHOW VARIABLES LIKE 'sql_mode'; 【解决/规避方法】与应用确认存储的数据,正确定义数据
|
2月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
1月前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
175 42
|
3天前
|
SQL 关系型数据库 MySQL
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。