广告
返回顶部
首页 > 资讯 > 数据库 >【MySQL新手入门系列四】:手把手教你MySQL数据查询由入门到学徒
  • 663
分享到

【MySQL新手入门系列四】:手把手教你MySQL数据查询由入门到学徒

mysql数据库sql 2023-08-17 10:08:35 663人浏览 安东尼
摘要

sql语言是与数据库交互的机制,是关系型数据库的标准语言。SQL语言可以用于创建、修改和查询关系数据库。SQL的SELECT语句是最重要的命令之一,用于从指定表中查询数据。在此博客中,我们将进一步了解SELECT语句以及WHER&#

sql语言是与数据库交互的机制,是关系型数据库的标准语言。SQL语言可以用于创建、修改和查询关系数据库。SQL的SELECT语句是最重要的命令之一,用于从指定表中查询数据。在此博客中,我们将进一步了解SELECT语句以及WHERE子句以及它们的重要性。

前面我们已经大致讲了一下Mysql的安装等介绍,mysql 中的“新增、删除与修改”操作。但是查询太重要了,我们再花点时间来说道说道。

【MySQL新手入门系列一】:手把手教你入门MySQL

【MySQL新手入门系列二】:手把手教你入门MySQL - 数据库及数据表操作

【MySQL新手入门系列三】:MySQL的新增、删除与修改操作

一、介绍SQL的SELECT语句以及WHERE子句

这里我们再啰嗦几句。

SELECT语句是SQL语言的核心命令之一,它可以从一个或多个表中选取数据。语法如下:

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

在该语法中,列名指定从表中返回的数据列,表名指定从中选择数据的数据表。此外,还可以使用一些其他的关键字来改变数据的返回。

WHERE子句是SQL所拥有的条件选择语句,它可以筛选出表中符合条件的数据。WHERE子句通常与SELECT语句结合使用,以在返回的结果中过滤数据。

SELECT 列名1, 列名2,... FROM 表名 WHERE 条件

条件可以是简单或复杂的表达式,包括:

  • 运算符(例如<,>,=,LIKE等)、
  • 函数
  • 逻辑运算符(例如AND和OR)。

二、简单查询

对于简单的查询,我们定义为从某个表里面查询所有数据,也即非常简单的sql语句,没有添加任何附加条件。
以下示例显示本质上是SELECT语句的查询。
查询包括从“trade_user”表中所有数据。

SELECT * FROM trade_user

我们以实际的表来举例,如下图所示:
在这里插入图片描述

三、过滤查询

在MySQL中,过滤查询通常使用WHERE语句。
WHERE语句可以用来筛选出符合特定条件的记录,可以使用各种操作符组合条件。

下面是一些常见的过滤查询示例:

  1. 使用等于运算符:
SELECT * FROM stock_info WHERE code = '000001'

以上示例将检索所有code为 000001的记录。运行结果如下:
在这里插入图片描述

  1. 使用不等于运算符:
SELECT * FROM stock_info WHERE exchange != 'sz'

查询所有非深圳市场的股票信息,如下:
在这里插入图片描述

  1. 使用比较运算符:
SELECT * FROM stock_info WHERE code < '000005'

以上示例将检索所有早于2022年1月1日的订单记录。

  1. 使用逻辑运算符:
SELECT * FROM stock_info WHERE code = '000003' or code = '000004'

在这里插入图片描述

  1. 使用IN运算符:
    IN运算符用于在一组值中查找匹配项,各个值之间用逗号隔开。
SELECT * FROM stock_info WHERE code IN (000001,000002,000003)

以上示例将检索所有位于美国或加拿大的客户的记录,与前一个示例相同,只是使用了IN运算符。

  1. 使用BETWEEN运算符:
SELECT * FROM stock_info WHERE code BETWEEN 000001 and 000003

以上示例将检索所有在2021年1月1日和2022年1月1日之间的订单记录。

这些都是一些常用的过滤查询示例,在实际使用中,您可以根据需要使用不同的运算符和组合条件。

四、排序查询

在MySQL中,排序查询使用ORDER BY语句。
ORDER BY语句允许按升序或降序顺序对结果进行排序,可以按一个或多个列进行排序。

ORDER BY语句的语法格式如下:

SELECT column_name(s) FROM table_name ORDER BY column_name1 [ASC|DESC], column_name2 [ASC|DESC], ...;也可以结合条件语句进行排序 select * from xxx where xxx order by xxx asc

其中:

  • ASC:按升序排序。
  • DESC:按降序排序。

下面是一些ORDER BY语句的示例:

  1. 单个列排序:
SELECT * FROM stock_info WHERE code BETWEEN 000001 and 000003 order BY id DESC

在这里插入图片描述

  1. 多列排序:
SELECT * FROM stock_info WHERE code BETWEEN 000001 and 000003 order BY state ASC, id DESC

以上示例将按state升序排序,然后按id降序排序,并返回所有列的结果。
注意跟上一个语句进行比较。
在这里插入图片描述

  1. 降序排序:
SELECT * FROM stock_info WHERE code BETWEEN 000001 and 000003 order BY state DESC

以上示例将按客户的姓氏降序排序,并返回所有列的结果。

总之,ORDER BY语句使我们可以根据一个或多个列对记录进行排序,并使其易于查看和分析结果集。

五、分组查询

MySQL中的分组查询,是指将表中的数据按照指定的列或表达式进行分组,并对每个组进行计算的查询操作。
在分组查询中,使用GROUP BY子句来指定所要分组的列名,同时还可以使用聚集函数(例如SUM,AVG,MAX等函数)来对每个组进行计算,从而得到每个组的统计结果。

GROUP BY语句的语法格式如下:

SELECT column_name(s), aggregate_function(column_name)FROM table_nameWHERE conditionGROUP BY column_name(s);

其中:

  • column_name(s):要检索的列的名称。
  • aggregate_function:将应用于列上的聚合函数,例如COUNT,SUM等。
  • table_name:要检索的表的名称。
  • condition:WHERE子句中的条件。
  • GROUP BY column_name(s):根据给定的列分组结果。

下面是一些GROUP BY语句的示例:

  1. 按单个列分组:
SELECT COUNT(*) AS total,  name FROM stock_info WHERE code < '000005' GROUP BY `name`

以上示例将返回股票代码及每个股票的数量。
在这里插入图片描述

  1. 按多个列分组:
SELECT COUNT(*) AS total,  code, name FROM stock_info WHERE code < '000005' GROUP BY code,`name`

在这里插入图片描述

总之,GROUP BY语句是一种非常强大的聚合数据的工具,它允许我们根据一个或多个列对数据进行分组,并使用聚合函数计算分组结果的总和、平均值、最小值、最大值等。

六、连接查询

MySQL连接查询是指在查询两个或多个表时,通过特定的连接方式将数据进行关联,以便获得需要的数据。连接查询是基于关系型数据库模型设计的,它能够将多个表中的数据按照特定的条件进行联合,形成一个新的结果集。

MySQL连接查询通常使用JOIN关键字来实现。JOIN关键字有多种类型,包括INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN等,每种JOIN方式都有其特定的语法格式和用途。在连接查询中,JOIN关键字表示要根据哪个列或哪些列进行表的关联,以及关联方式的类型。

下面是一个MySQL连接查询的基本语法:

SELECT table1.column1, table2.column2...FROM table1JOIN table2ON table1.column = table2.column;

其中,
table1和table2是要连接的表,
column1和column2是要查询的列,
ON后面的条件表示连接两个表时所用的条件(一般是表中列的相等条件)。
JOIN关键字其实是INNER JOIN关键字的简写形式,如果需要使用LEFT JOIN或RIGHT JOIN等其他类型的连接方式,则需要在JOIN关键字前加上相应的关键字。

例如,下面是一个连接查询使用LEFT JOIN关键字的语法:

SELECT stock_info.code, stock_selected.code FROM stock_info LEFT JOIN stock_selected ON stock_info.code = stock_selected.code  WHERE stock_info.code = stock_selected.code

我们可以简化一下代码

SELECT a.code, b.code FROM stock_info as a LEFT JOIN stock_selected as b ON a.code = b.code  WHERE a.code = b.code 

在这里插入图片描述

在连接查询中,如果要查询多个表,则可以在前面的JOIN语句后面继续添加其他的JOIN语句,从而将多个表连接在一起。

连接查询是关系型数据库中一种非常常用的查询方式,它能够在多个表之间建立联系,并以此展示多表信息的整合结果。

来源地址:https://blog.csdn.net/fumeidonga/article/details/131144635

您可能感兴趣的文档:

--结束END--

本文标题: 【MySQL新手入门系列四】:手把手教你MySQL数据查询由入门到学徒

本文链接: https://www.lsjlt.com/news/372663.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作