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 数据库子查询参考 查询数据 数据库最常用的操作就是查询,也是数据操作的基础…...

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

LinuxC++(10):调用可执行程序
认识system函数 可以直接用system在代码中实现调用shell命令 /bin/ls -l /tmp表示执行ls -l命令,打开/tmp地址 而前面的/bin/表示这是shell命令,不可少,可以认为,/bin/后面的就是等价于shell里面输入的命令。 然后,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的元数据库是一组特殊的数据库,用于存储MySQL服务器的元数据信息,在sql注入中较为常用为以下两种元数据库: information_schema:这个数据库包含了MySQL服务器上所有其他数据库的元数据信息。例如数据库名、表…...

接口与抽象类有什么区别
接口:只能包含抽象方法,成员变量只能是public static final 类型 是对行为的抽象 先约定再接口再实现 抽象类:包含成员变量和一般方法和抽象方法,当继承时,子类必须实现抽象类中的抽象方法...

【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,移植介绍 2,使用 Code::Blocks 17.12 创建工程 3,搬移文件入工程目录 4,更改代码 5,向工程添加文件 6,运…...

安装Docker以及安装过程中的错误解决
一、纯享版教程+操作截图 环境:centOs 7 FinalShell !!!此教程针对第一次安装docker的友友,如果已经安装过且报错的朋友,请移步报错合集。 1.卸载旧版本(无论是否安装过都建议执…...

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

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

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

MySQL 保姆级教程(十五): 组合查询
第 17 章 组合查询 17.1 组合查询 MySQL 允许执行多个查询(多条 SELECT 语句),并将结果作为单个查询集返回 17.2 创建组合查询 可用 UNION 操作符来组合数条 SQL 查询 17.2.1 使用 UNION 输入: SELECT user.USER FROM user UNION SELEC…...

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

【Kubernetes】Deployment 的状态
Deployment 的状态 Deployment 控制器在整个生命周期中存在 3 3 3 种状态: 已完成(Complete)进行中(Progressing)失败(Failed) 通过观察 Deployment 的当前特征,可以判断 Deploym…...

新手学习Gazebo+ros仿真控制小车-----易错和自己理解
赵虚左老师讲的很详细,这里只是理一下思路,说下突然出现“新”概念之间的关系。 urdf文件:里面是配置模型的,既有模型的位置、尺寸、颜色,也包含复杂的物理模型信息比如:转动惯量,碰撞box大小等等ÿ…...

jdbc(mysql)
1.概述 jdbc:java database connection(java与数据库连接) java可以连接不同数据库,不同数据库连接细节不同,具体细节都由数据库自己实现 由java设计出一系列连接数据库的接口规范,然后由不同的数据库开发…...

【Linux】搜索log在哪个文件中执行的方法
在Linux中,如果你需要找到包含特定文本(比如一段log)的文件,你可以使用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环境,载入一些库函数 20.1.3 创建redis全局表格 全局变量,支持在Lua脚本中执行redis命令 20.1.4 使用redis自制随机函数来…...

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

【Nuxt】内置组件和全局样式使用
内置组件 Nuxt3框架也提供一些内置的组件,常用的如下: SEO组件:Html、Body、Head、Title、Meta、Style、Link、NoScript、BaseNuxtWelcome:欢迎页面组件,该组件是nuxt/ui的部分NuxtLayout:是Nuxt自带的页面布局组件NuxtPage:是N…...

Java中spring boot validation 自定义注解使用
创建一个注解 Target({ElementType.FIELD})//需要写注解的三三个要素 Retention(RUNTIME) Documented Constraint(validatedBy {IsSystemYesNoVaildation.class})//绑定 在这里会报错 你需要去实现 public interface IsSystemYesNo {String message() default "数据字典&…...

Android笔试面试题AI答之广播(1)
文章目录 1.简述广播的分类和使用场景 ?一、广播分类二、使用场景举例总结 2.广播的两种注册方式的区别?1. 注册位置与方式2. 生命周期与持久性3. 接收广播的时机4. 安全性与权限5. 优先级与有序广播总结 3.简述广播发送和接收的原理 ?一、广…...

微软商店无法加载,检查你的连接-解决方案
微软商店默认直连国内的服务器。 如果有代理,关闭代理就可以恢复网络了。 但是我就是想用代理,我感觉代理更快, 搜索了很多办法,都没有生效。 然后我在哔哩哔哩的视频下方,看到大家留言,测试了一下&#x…...

数据结构实验报告-树与二叉树
桂 林 理 工 大 学 实 验 报 告 一、实验名称: 实验6 树和二叉树 二、实验内容: 1.编写二叉树的递归遍历算法,实现:给定一棵二叉树的“扩展先序遍历序列”,创建这棵二叉树。 (1)输出二叉树的先序遍历的结点序列。 (2)输出二…...

基于Django+MySQL球馆场地预约系统的设计与实现(源码+论文+部署讲解等)
博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙ÿ…...

8 MQTT
8 MQTT 1、相关概念2、MQTT的操作过程3、MQTT协议3.1 固定报文3.2 连接报文3.3 确认连接请求3.4 构造订阅报文3.5 订阅确认报文3.6 发布报文3.7 其他报文 1、相关概念 MQTT [1] 全名为Message Queuing Telemetry Transport,是一种基于TCP/IP协议上传输的轻量级通信…...

【文件系统】抽象磁盘的存储结构 CHS寻址法 | sector数组 | LAB数组
目录 1.为什么要抽象 2.逻辑抽象_版本1 2.1sector数组 2.2index转化CHS 3.逻辑抽象_版本2 3.1LBA数组 3.2LAB下标转化sector下标 文件其实就是在磁盘中占有几个扇区的问题❗文件是很多个sector的数组下标❗文件是有很多块构成的❗❗文件由很多扇区构成------>文件…...

基于python旅游推荐系统(源码+论文+部署讲解等)
博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙ÿ…...

Mysql大单表JSON优化
优化方案 MySQL 8.0.32 中,有几种方法可以优化存储 JSON 字符串的数据表。以下是一些建议,可以帮助您减少存储空间: 使用压缩: MySQL 8.0 支持表级压缩,可以通过修改表来启用压缩。 ALTER TABLE your_table ROW_FORMATCOMPRESS…...