当前位置: 首页 > news >正文

MySQL数据管理 - 查询语句

文章目录

  • 查询数据
  • 1 查询指定列
  • 2 条件查询
  • 3 合并查询
  • 4 模糊查询
  • 5 聚合函数查询
  • 6 对值进行排序
  • 7 分组查询
  • 8 分页查询
  • 9 数据库关联查询
      • 1 内连接 INNER JOIN
      • 2 LEFT JOIN
      • 3 右连接
  • 10 数据库子查询
  • 参考

查询数据

数据库最常用的操作就是查询,也是数据操作的基础,进行重点学习介绍

参考数据表
在这里插入图片描述

1 查询指定列

查询所有列

SELECT * FROM users;

查询指定的列

SELECT username FROM users;

查询指定列,并制定别名

SELECT username AS name FROM users;

查询列中的不同的值

SELECT DISTINCT username AS name FROM users;

2 条件查询

使用WHERE进行条件查询

SELECT * FROM users WHERE id = 1;

逻辑

SELECT * FROM users WHERE id = 1 OR id = 3;
SELECT * FROM users WHERE username = 'zhangsan' AND password = '123456';

查询不为NULL的情况

SELECT * FROM users WHERE birthday is NOT NULL;

【注意】数据库中不等于不是!=而是<>

查询数值范围

SELECT * FROM users WHERE id BETWEEN 1 AND 5; 

3 合并查询

合并字符串

SELECT CONCAT(username, ' ', password) as userpasswd FROM users WHERE id BETWEEN 1 AND 5;

同样可以不同的运算符对不同列的结果进行操作

4 模糊查询

  • % 代表任意数量的字符
  • _代表单个任意字符

如果要对_进行查询,需要进行转义\_

查询姓zhang的人

SELECT * FROM users WHERE username LIKE 'zhang%';

5 聚合函数查询

查询所有数据的调试

SELECT COUNT(*) FROM users;

查询某一列有值的函数

SELECT COUNT(birthday) FROM users;

求平均值,最大值,最小值,求和,都是对查询的列的值进行运算

SELECT AVG(value_1) FROM users;
SELECT MAX(value_1) FROM users;
SELECT MIN(value_1) FROM users;
SELECT SUM(value_1) FROM users;

6 对值进行排序

升序

SELECT * FROM users ORDER BY id ASC;

降序

SELECT * FROM users ORDER BY id DESC;

多个排序标准,使用, 进行分割

SELECT * FROM users ORDER BY id ASC, phone_number DESC;

7 分组查询

按照列进行分组,使用聚合函数统计每个组中元素的个数

SELECT username, count(*), AVG(value_1) FROM users GROUP BY username;

分组查询一般是对列进行聚合

如果需要对多列进行聚合,此时需要使用合并查询,对不同列的数采取运算操作

SELECT username, AVG(value_1 + value_2)/2 FROM users GROUP BY id;

运行的逻辑,在行上进行相加,然后在列上进行求平均,聚合函数还是聚合的列,聚合函数和分组常常在一起使用

面试题:

数据表为
student
id name chinese math english
1 zhangsan 80 70 65
2 lisi 90 80 72
3 wangwu 98 72 12

请使用SQL查询平均成绩大于60的学生

【注意】对每个学生进行分组查询,使用HAVING进行过滤

SELECT name FROM student GROUP BY id HAVING AVG(chinese + math + english)/3 > 60;

8 分页查询

使用LIMIT指定开始的位置数据的条数

SELECT * FROM users LIMIT 1, 5;

9 数据库关联查询

根据两个表和多个表之间的关系进行查询和展示数据,使用JOIN语句实现

数据库ER图(摆脱了传递函数依赖)

在这里插入图片描述

1 内连接 INNER JOIN

展示仓库和工人的关系,使用了工作关系联结

使用INNER JOIN

SELECT * FROM worker INNER JOIN work ON worker.worker_id = work.worker_id INNER JOIN repository ON repository.repo_id = work.repo_id ;

内连接:也使用等于 = 进行连接

SELECT * FROM worker, work, repository WHERE worker.worker_id = work.work_id AND repository.repo_id = work.repo_id ;

2 LEFT JOIN

左连接允许连接的过程中右表没有匹配的情况

SELECT * FROM worker LEFT JOIN work ON worker.worker_id = work.worker_id LEFT JOIN repository ON worl.repo_id = repository.repo_id;

3 右连接

类似左连接,右连接允许左边的数据为NULL

10 数据库子查询

子查询将一个查询的结果用作数据库语句的条件

将id为1-3的user名字都修改为zhangsan1

UPDATE users SET username='zhangsan1' WHERE id IN (SELECT id FROM users WHERE id BETWEEN 1 AND 3);

报错:SQL Error [1093] [HY000]: You can't specify target table 'users' for update in FROM clause

踩坑:不能先SELECT一个表然后再更新
参考:https://blog.csdn.net/qq_40036754/article/details/115174800

删除呢?

DELETE FROM users WHERE id IN (SELECT id FROM users WHERE id BETWEEN 1 AND 3);

同样报这个错误

在这里插入图片描述

【问题】查询已经管理仓库的工人id;需要注意查询的结果是一行还是多行

SELECT worker_name FROM worker WHERE worker.worker_id IN (SELECT worker_id FROM work);

参考

MYSQL基础 https://www.bilibili.com/video/BV15m421T7RQ

相关文章:

MySQL数据管理 - 查询语句

文章目录 查询数据1 查询指定列2 条件查询3 合并查询4 模糊查询5 聚合函数查询6 对值进行排序7 分组查询8 分页查询9 数据库关联查询1 内连接 INNER JOIN2 LEFT JOIN3 右连接 10 数据库子查询参考 查询数据 数据库最常用的操作就是查询&#xff0c;也是数据操作的基础&#xf…...

经典图论算法回顾之Bellman-Ford算法

Dijkstra最短路径算法存在的一个问题是不能处理负权图&#xff08;详见&#xff1a;经典图论算法回顾之Dijkstra算法。今天要回顾的Bellman-Ford算法&#xff08;wikipedia&#xff1a;Bellman–Ford algorithm&#xff09;可以求出有负权图的最短路径&#xff0c;并可以对最短…...

LinuxC++(10):调用可执行程序

认识system函数 可以直接用system在代码中实现调用shell命令 /bin/ls -l /tmp表示执行ls -l命令&#xff0c;打开/tmp地址 而前面的/bin/表示这是shell命令&#xff0c;不可少&#xff0c;可以认为&#xff0c;/bin/后面的就是等价于shell里面输入的命令。 然后&#xff0c;cou…...

C语言指针·高级用法超详解(指针运算、野指针、悬空指针、void类型指针、二级以及多级指针)

目录 1. 指针的运算 2. 野指针和悬空指针 2.1 野指针 2.2 悬空指针 3. void类型指针 4. 二级指针和多级指针 4.1 命名规则 4.2 作用 4.2.1 二级指针可以操作一级指针记录的地址 4.2.2 利用二级指针获取变量中记录的数据 1. 指针的运算 文章开始前可以先了…...

SQL注入:MySQL元数据库,外网实战手工SQL注入

MySQL元数据库 MySQL的元数据库是一组特殊的数据库&#xff0c;用于存储MySQL服务器的元数据信息&#xff0c;在sql注入中较为常用为以下两种元数据库&#xff1a; information_schema&#xff1a;这个数据库包含了MySQL服务器上所有其他数据库的元数据信息。例如数据库名、表…...

接口与抽象类有什么区别

接口&#xff1a;只能包含抽象方法&#xff0c;成员变量只能是public static final 类型 是对行为的抽象 先约定再接口再实现 抽象类&#xff1a;包含成员变量和一般方法和抽象方法&#xff0c;当继承时&#xff0c;子类必须实现抽象类中的抽象方法...

【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 目录 1&#xff0c;移植介绍 2&#xff0c;使用 Code::Blocks 17.12 创建工程 3&#xff0c;搬移文件入工程目录 4&#xff0c;更改代码 5&#xff0c;向工程添加文件 6&#xff0c;运…...

安装Docker以及安装过程中的错误解决

一、纯享版教程&#xff0b;操作截图 环境&#xff1a;centOs 7 FinalShell &#xff01;&#xff01;&#xff01;此教程针对第一次安装docker的友友&#xff0c;如果已经安装过且报错的朋友&#xff0c;请移步报错合集。 1.卸载旧版本&#xff08;无论是否安装过都建议执…...

PXE实验

实验前准备 关闭VMware的dhcp 点击 编辑 点击 虚拟网络编辑器 选择 NAT模式 将dhcp取消勾选 准备两台虚拟机 一台试验机&#xff0c;&#xff08;网络环境正常并且有图形化的界面的rhel7&#xff09; 一台测试机 init 5 --------------> 开启图形化界面 如…...

Spring - 解析 统一数据格式返回以及统一异常处理

接上篇文章的统一数据格式返回… 文章目录 1. 统一异常处理1.1 使用 2. 统一数据返回和统一异处理是怎么实现的2.1 initHandleAdapters2.2 initHandleExceptionResolvers 1. 统一异常处理 1.1 使用 统一异常处理的两个关键的注解是ControllerAdvice ExceptionHandler Contro…...

用Manim实现——计算和绘制图形下方区域

用Manim实现——计算和绘制图形下方区域 get_area 函数 get_area是一个用于计算和绘制图形下方区域的函数&#xff0c;常用于图形动画库&#xff08;如 Manim&#xff09; get_area(graph, x_rangeNone, color(ManimColor(#58C4DD),ManimColor(#83C167)), opacity0.3, bounde…...

MySQL 保姆级教程(十五): 组合查询

第 17 章 组合查询 17.1 组合查询 MySQL 允许执行多个查询&#xff08;多条 SELECT 语句&#xff09;&#xff0c;并将结果作为单个查询集返回 17.2 创建组合查询 可用 UNION 操作符来组合数条 SQL 查询 17.2.1 使用 UNION 输入: SELECT user.USER FROM user UNION SELEC…...

《动手做科研》06. 如何产生新的研究想法

地址链接:《动手做科研》06. 如何产生新的研究想法 欢迎加入我的知识星球&#xff0c;定期分享AI论文干货知识&#xff01; 导读: 提出好的研究想法是相当困难的&#xff0c;特别是当你刚接触一个领域时——这需要对文献中的空白有所了解。然而&#xff0c;产生研究想法的过程可…...

【Kubernetes】Deployment 的状态

Deployment 的状态 Deployment 控制器在整个生命周期中存在 3 3 3 种状态&#xff1a; 已完成&#xff08;Complete&#xff09;进行中&#xff08;Progressing&#xff09;失败&#xff08;Failed&#xff09; 通过观察 Deployment 的当前特征&#xff0c;可以判断 Deploym…...

新手学习Gazebo+ros仿真控制小车-----易错和自己理解

赵虚左老师讲的很详细&#xff0c;这里只是理一下思路&#xff0c;说下突然出现“新”概念之间的关系。 urdf文件:里面是配置模型的&#xff0c;既有模型的位置、尺寸、颜色&#xff0c;也包含复杂的物理模型信息比如&#xff1a;转动惯量&#xff0c;碰撞box大小等等&#xff…...

jdbc(mysql)

1.概述 jdbc&#xff1a;java database connection&#xff08;java与数据库连接&#xff09; java可以连接不同数据库&#xff0c;不同数据库连接细节不同&#xff0c;具体细节都由数据库自己实现 由java设计出一系列连接数据库的接口规范&#xff0c;然后由不同的数据库开发…...

【Linux】搜索log在哪个文件中执行的方法

在Linux中&#xff0c;如果你需要找到包含特定文本&#xff08;比如一段log&#xff09;的文件&#xff0c;你可以使用grep命令结合一些其他工具来实现这一目的。这里有几个方法可以帮助你找到包含特定log内容的文件。 1. 使用grep直接在特定目录或文件中搜索 如果你知道log大…...

web小游戏开发:2048(完)移动操作及动画效果

web小游戏开发:2048(完)移动操作及动画效果 添加随机数字游戏开始时的初始化显示分数移动和合并获取行列元素下标记录移动轨迹完整的 js小结添加随机数字 书接前文,我们在前边定义了一个 move 方法,暂时先往后放放。 在我们已经初始化好的界面上,我们需要先制作一个出现…...

Redis学习笔记——第20章 Lua脚本

第20章 Lua脚本 20.1 创建并修改Lua环境 20.1.1 创建Lua环境 服务器创建一个新的基本的Lua环境 20.1.2 载入函数库 修改Lua环境&#xff0c;载入一些库函数 20.1.3 创建redis全局表格 全局变量&#xff0c;支持在Lua脚本中执行redis命令 20.1.4 使用redis自制随机函数来…...

MySQL--日志管理

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、日志简介 MySQL日志主要分为4类&#xff0c;使用这些日志文件&#xff0c;可以查看MySQL内部发生的事情。这4类日志分别是: 错误日志&#xff1…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...