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

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

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

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

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

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

目录

    • 一、介绍SQL的SELECT语句以及WHERE子句
    • 二、简单查询
    • 三、过滤查询
    • 四、排序查询
    • 五、分组查询
    • 六、连接查询

一、介绍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_name
WHERE condition
GROUP 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 table1
JOIN table2
ON 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语句,从而将多个表连接在一起。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30520.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue进阶-vue-route

Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;让用 Vue.js 构建单页应用变得轻而易举。 本章只做学习记录&#xff0c;详尽的内容一定要去官网查看api文档 Vue Router-Vue.js 的官方路由 1. 路由的基本使用 1.1 安装vue-router npm install vue-…

SpringCloud Eureka注册中心高可用集群配置(八)

当注册中心扛不住高并发的时候&#xff0c;这时候 要用集群来扛&#xff1b; 我们再新建两个module microservice-eureka-server-2002 microservice-eureka-server-2003 第一步&#xff1a; pom.xml 把依赖加下&#xff1a; <dependencies> <dependency…

golang 协程的实现原理

核心概念 要理解协程的实现, 首先需要了解go中的三个非常重要的概念, 它们分别是G, M和P, 没有看过golang源代码的可能会对它们感到陌生, 这三项是协程最主要的组成部分, 它们在golang的源代码中无处不在. G (goroutine) G是goroutine的头文字, goroutine可以解释为受管理的…

Prompt 范式产业实践分享!基于飞桨 UIE-X 和 Intel OpenVINO 实现跨模态文档信息抽取

近期 Prompt 范式备受关注&#xff0c;实际上&#xff0c;其思想在产业界已经有了一些成功的应用案例。中科院软件所和百度共同提出了大一统诸多任务的通用信息抽取技术 UIE&#xff08;Universal Information Extraction&#xff09;。截至目前&#xff0c;UIE 系列模型已发布…

Selenium 相对定位

目录 前言&#xff1a; 相对定位 工作原理 可用的相对定位 Above Below Left of Right of Near 链式相对定位 相对于WebElement的相对定位 实例演示 前言&#xff1a; Selenium传统定位基本能解决80%的定位需求&#xff0c;但是还是有一些复杂场景传统定位定不到的…

express框架学习笔记

express简介 express是一个基于Node.js平台的极简的、灵活的WEB应用开发框架。express是一个封装好的工具包&#xff0c;封装了很多功能&#xff0c;便于我们开发WEB应用&#xff08;HTTP服务&#xff09; express使用 新建express文件夹新建文件test01.js&#xff0c;代码如…

深蓝学院C++基础与深度解析笔记 第 5 章 语句

1. 语句基础 ● 语句的常见类别 – 表达式语句&#xff1a;表达式后加分号&#xff0c;对表达式求值后丢弃&#xff0c;可能产生副作用 – 空语句&#xff1a;仅包含一个分号的语句&#xff0c;可能与循环一起工作 – 复合语句&#xff08;语句体&#xff09;&#xff1a;由大…

电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume

1、数据仓库概念 数据仓库&#xff08; Data Warehouse &#xff09;&#xff0c;是为企业制定决策&#xff0c;提供数据支持的。可以帮助企业&#xff0c;改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括&#xff1a;业务数据、用户行为数据和爬虫数据等。 业务数…

流场粒子追踪精度数值实验

在计算流线&#xff0c;拉格朗日拟序结构等流场后处理时&#xff0c;我们常常需要计算无质量的粒子在流场中迁移时的轨迹&#xff0c;无质量意味着粒子的速度为流场当地的速度。此时&#xff0c;求解粒子的位移这个问题是一个非常简单的常微分方程问题。 假设流场中存在 i 个粒…

Java版本+企业电子招投标系统源代码之电子招投标系统建设的重点和未来趋势

计算机与网络技术的不断发展&#xff0c;推动了社会各行业信息化的步伐。时至今日&#xff0c;电子政务、电子商务已经非常普及&#xff0c;云计算、大数据、工业4.0、“互联网”等发展理念也逐步深入人心&#xff0c;如何将传统行业与互联网科技有效结合起来&#xff0c;产生1…

Vue实现元素沿着坐标数组移动,超出窗口视图时页面跟随元素滚动

一、实现元素沿着坐标数组移动 现在想要实现船沿着下图中的每个河岸移动。 实现思路&#xff1a; 1、将所有河岸的位置以 [{x: 1, y: 2}, {x: 4, y: 4}, …] 的形式保存在数组中。 data() {return {coordinateArr: [{ x: 54, y: 16 }, { x: 15, y: 31 }, { x: 51, y: 69 }…

升级Nginx

目录 前言 一、升级Nginx 1&#xff09;首先在官网下载一个新版本的Nginx 2&#xff09;首先将下载的压缩包进行解包 3&#xff09;进入已解包的目录中 4&#xff09;配置安装路径 5&#xff09;make 6&#xff09;备份原来Nginx的资源 7&#xff09;重启Nginx服务 8&#…

【2023最全教程】Web自动化测试怎么做?Web自动化测试的详细流程和步骤

一、什么是web自动化测试 自动化&#xff08;Automation&#xff09;是指机器设备、系统或过程&#xff08;生产、管理过程&#xff09;在没有人或较少人的直接参与下&#xff0c;按照人的要求&#xff0c;经过自动检测、信息处理、分析判断、操纵控制&#xff0c;实现预期的目…

毕业季Android开发面试,有哪些常见的题?

前言 对于计算机行业早已烂大街&#xff0c;随之而来的毕业季。还会有大批的程序员涌进来&#xff0c;而我们想要继续进入Android开发岗位的人员&#xff0c;最先考虑的是面试。面试题是我们决定踏进工作的重要环节。 对于刚毕业的实习生来说&#xff0c;如何在应聘中脱颖而出…

LightningChart .NET 10.5.1 Crack LightningChart 2023

LightningChart .NET v.10.5.1 已经发布&#xff01; DataCursor 和 3D TransparencyRenderMode 现在可用。 为所有 3D、Polar 和 Smith 系列启用 DataCursor 在早期阶段&#xff0c;LightningChart 提供了不同的工具&#xff0c;需要用户编写额外的代码才能启用数据跟踪功能。…

控制您的数据:Web3私有链为数据主权带来的突破性变革

在数字化时代&#xff0c;数据已经成为企业和个人最宝贵的资产之一。然而&#xff0c;随着大规模数据泄露和滥用事件的频发&#xff0c;数据主权和隐私保护成为了备受关注的问题。在这个背景下&#xff0c;Web3私有链的出现为数据主权带来了一场突破性的变革。 首先&#xff0c…

风景类Midjourney prompt提示词

稳定输出优美风景壁纸的Midjourney prompt提示词。 1\在夏夜&#xff0c;有淡蓝色的星空&#xff0c;海边&#xff0c;流星&#xff0c;烟花&#xff0c;海滩上全是蓝色的玫瑰和绿色的植物&#xff0c;由Ivan Aivazovsky和Dan Mumford&#xff0c;趋势在cgsociety&#xff0c;…

windows2022证书配置.docx

Windows证书的配置 要求两台主机&#xff0c;一台作为域&#xff0c;一台进入域 按要求来选择角色服务 确认之后安装 安装完以后配置证书服务 选择服务 按要求配置 注&#xff1a;此处不用域用户登陆无法使用企业CA 按要求来 创建新的私钥 这几处检查无误后默认即可 有效期…

AJAX概述

1.1什么是AJAX. Ajax即AsynchronousJavascript And XML&#xff1a;异步数据回调。 使用Ajax技术网页应用能够快速地将更新呈现在用户界面上&#xff0c;不需要重载&#xff08;刷新&#xff09;整个页面【只刷新局部】&#xff0c;这使得程序能够更快地回应用户的操作。、 1…

2023年5月青少年机器人技术等级考试理论综合试卷(四级)

青少年机器人技术等级考试理论综合试卷&#xff08;四级&#xff09;2023.6 分数&#xff1a; 100 题数&#xff1a; 30 一、 单选题(共 20 题&#xff0c; 共 80 分) 1.Arduino C 语言&#xff0c; 部分程序如下&#xff0c; 串口监视器输出结果是“D”时&#xff0c; 变量 i …