MySQL基础教程——查询数据

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
80 26
|
3天前
|
存储 Oracle 关系型数据库
索引在手,查询无忧:MySQL索引简介
MySQL 是一款广泛使用的关系型数据库管理系统,在2024年5月的DB-Engines排名中得分1084,仅次于Oracle。本文介绍MySQL索引的工作原理和类型,包括B+Tree、Hash、Full-text索引,以及主键、唯一、普通索引等,帮助开发者优化查询性能。索引类似于图书馆的分类系统,能快速定位数据行,极大提高检索效率。
27 8
|
6天前
|
SQL 关系型数据库 MySQL
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
45 11
|
10天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
38 6
|
24天前
|
关系型数据库 MySQL Java
Servlet+MySQL增删改查 原文出自[易百教程] 转载请保留原文链接: https://www.yiibai.com/geek/1391
对于任何项目开发,创建,读取,更新和删除(CRUD)记录操作是应用程序的一个最重要部分。
63 20
|
21天前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
26天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
14天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
93 15
|
7天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
14天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。