MySQL表的CURD
目录
一、Create
1.1单行数据+全列插入
1.2多行数据+指定列插入
1.3插入否则更新
1.4替换
2.Retrieve
2.1 select列
2.1.1全列查询
2.1.2指定列查询
2.1.3查询字段为表达式
2.1.4为查询结果指定别名
2.1.5结果去重
2.2where条件
2.3结果排序
2.4筛选分页结果
三、Update
四、Delete
4.1删除数据
4.2截断表
五、插入查询结果
六、聚合函数
七、group by子句的使用
一、Create
创建一张学生表

1.1单行数据+全列插入

1.2多行数据+指定列插入

1.3插入否则更新
- 主键冲突
 
- 唯一键冲突
 
- 可疑选择性进行同步更新操作:使用ON DUPLICATE KEY UPDATE
 
-  -- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等-- 1 row affected: 表中没有冲突数据,数据被插入-- 2 row affected: 表中有冲突数据,并且数据已经被更新
 -  使用MySQL库函数来获取受到影响的数据行数:SELECT ROW_COUNT();
 -  
  
1.4替换
-  - - 主键 或者 唯一键 没有冲突,则直接插入;-- 主键 或者 唯一键 如果冲突,则删除后再插入
 -  
  
2.Retrieve
创建表结构

插入数据

2.1 select列
2.1.1全列查询
-  -- 通常情况下不建议使用 * 进行全列查询-- 1. 查询的列越多,意味着需要传输的数据量越大;-- 2. 可能会影响到索引的使用。
 -  
  
2.1.2指定列查询
-  
指定列的顺序不需要按定义表的顺序来
 -  

 
2.1.3查询字段为表达式
-  
表达式不包含字段
 
- 表达式包含一个字段
 
- 表达式包含多个字段
 
2.1.4为查询结果指定别名
-  SELECT column [AS] alias_name [...] FROM table_name;
 -  
  
2.1.5结果去重
- distinct关键字
 
2.2where条件
比较运算符
| 运算符 | 说明 | 
|    >, >=, <, <=    |    大于,大于等于,小于,小于等于    | 
|    =    |    等于, NULL  不安全,例如  NULL = NULL  的结果是  NULL    | 
|    <=>    |    等于, NULL  安全,例如  NULL <=> NULL  的结果是  TRUE(1)    | 
|    !=, <>    | 不等于 | 
|    BETWEEN a0 AND a1    |    范围匹配, [a0, a1] ,如果  a0 <= value <= a1 ,返回  TRUE(1)    | 
|    IN (option, ...)    |    如果是  option  中的任意一个,返回  TRUE(1)    | 
|    IS NULL    | 是NULL | 
|    IS NOT NULL    | 不是NULL | 
| LIKE |    模糊匹配, %  表示任意多个(包括  0  个)任意字符; _  表示任意一个字符    | 
逻辑运算符
| 运算符 | 说明 | 
| AND |    多个条件必须都为  TRUE(1) ,结果才是  TRUE(1)    | 
| OR |    任意一个条件为  TRUE(1),  结果为  TRUE(1)    | 
| NOT |    条件为  TRUE(1) ,结果为  FALSE(0    | 
2.3结果排序
-  -- ASC 为升序(从小到大)
 -  -- DESC 为降序(从大到小)
 -  -- 默认为 ASC
 -  SELECT ... FROM table_name [WHERE ...] ORDER BY column [ASC|DESC], [...];
 -  没有order by返回的结果是未定义的
 
2.4筛选分页结果
-  
-- 起始下标为 0 -- 从 s 开始,筛选 n 条结果
 -  
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n
 -  
-- 从 0 开始,筛选 n 条结果
 -  
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
 -  
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
 -  
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
 -  按 id 进行分页,每页 3 条记录,分别显示 第 1 、 2 、 3 页
 -  
  
三、Update
-  UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]
 - 对查询到的结果进行列值更新
 - 更新为具体指
 
- 一次更新多个列
 
-  更新值为原值基础上变更
 -  
  - 没有 WHERE 子句,则更新全表
 
四、Delete
4.1删除数据
-  DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
 - 删除“孙悟空”的数据
 -  
  - 删除整张表的数据
 
- 在删除的基础上再插入一条数据,可见删除数据并不会重置auto_increment项
 
4.2截断表
-  TRUNCATE [TABLE] table_name
 -  只对整张表进行操作,不能像delete一样对部分数据操作
 -  实际上不对数据进行操作,影响行数是0,所以比delete快,但是truncate在删除数据时,并不经过真正的事务,所以无法回滚
 -  会重置auto_increment项
 -  
  
五、插入查询结果
-  
INSERT INTO table_name [(column [, column ...])] SELECT ...
 -  案例:删除表中的的重复复记录,重复的数据只能有一份
 
-  创建一张空表 no_duplicate_table ,结构和 duplicate_table 一样
 -  将 duplicate_table的去重数据插入到no_duplicate_table
 -  通过重命名表实现原子的去重操作
 -  
  
六、聚合函数
| 函数 | 说明 | 
|    COUNT([DISTINCT] expr)    |    返回查询到的数据的数量    | 
|    SUM([DISTINCT] expr)    | 返回查询到的数字总和,不是数字没有意义 | 
|    AVG([DISTINCT] expr)    | 返回查询到的数字平均值,不是数字没有意义 | 
|    MAX([DISTINCT] expr)    | 返回查询到的数字最大值,不是数字没有意义 | 
| MIN([DISTINCT] expr) | 返回查询到的数字最小值,不是数字没有意义 | 
- 使用 * 做统计,不受 NULL 影响
 
 - 使用表达式做统计
 
-  NULL 不会计入结果
 -  
  - COUNT(math)统计的是全部的数学成绩
 
- 统计去重的数学成绩个数
 
- 统计数学成绩总分
 
- 配合where条件使用
 
- 统计平均分
 
- 返回英语最高分
 
- 返回>70以上数学的最低分
 
七、group by子句的使用
-  在 select 中使用 group by 子句可以对指定列进行分组查询
 -  案例
 -  显示每个部门的平均工资和最高工资: select deptno,avg(sal),max(sal) from EMP group by deptno;
 -  显示每个部门的每种岗位的最低工资和平均工资:select avg(sal),min(sal),job, deptno from EMP group by deptno, job;
 -  显示平均工资低于2000的部门和它的平均工资
 
-  统计各个部门的平均工资: select avg(sal) from EMP group by deptno
 -  having搭配group by使用,对group by的查询结果进行筛选: select avg(sal) as myavg from EMP group by deptno having myavg<2000;
 -  --having 经常和 group by 搭配使用,作用是对分组进行筛选,作用有些像 where
 
相关文章:
MySQL表的CURD
目录 一、Create 1.1单行数据全列插入 1.2多行数据指定列插入 1.3插入否则更新 1.4替换 2.Retrieve 2.1 select列 2.1.1全列查询 2.1.2指定列查询 2.1.3查询字段为表达式 2.1.4为查询结果指定别名 2.1.5结果去重 2.2where条件 2.3结果排序 2.4筛选分页结果 三…...
Java 如何覆盖第三方 jar 包中的类
目录 一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理 背景: 在我们日常的开发中,经常需要使用第三方的 jar 包,有时候我们会发现第三方的 jar 包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,…...
VSCode中使用EmmyLua插件对Unity的tolua断点调试
一.VSCode中搜索安装EmmyLua插件 二.创建和编辑launch.json文件 初始的launch.json是这样的 手动编辑加上一段内容如下图所示: 三.启动调试模式,并选择附加的进程...
【数据结构】_链表经典算法OJ(力扣/牛客第二弹)
目录 1. 题目1:返回倒数第k个节点 1.1 题目链接及描述 1.2 解题思路 1.3 程序 2. 题目2:链表的回文结构 2.1 题目链接及描述 2.2 解题思路 2.3 程序 1. 题目1:返回倒数第k个节点 1.1 题目链接及描述 题目链接: 面试题 …...
Spring Boot 2 快速教程:WebFlux优缺点及性能分析(四)
WebFlux优缺点 【来源DeepSeek】 Spring WebFlux 是 Spring 框架提供的响应式编程模型,旨在支持非阻塞、异步和高并发的应用场景。其优缺点如下: 优点 高并发与低资源消耗 非阻塞 I/O:基于事件循环模型(如 Netty)&am…...
自定义多功能输入对话框:基于 Qt 打造灵活交互界面
一、引言 在使用 Qt 进行应用程序开发时,我们经常需要与用户进行交互,获取他们输入的各种信息。QInputDialog 是 Qt 提供的一个便捷工具,可用于简单的输入场景,但当需求变得复杂,需要支持更多类型的输入控件࿰…...
基于springboot河南省旅游管理系统
基于Spring Boot的河南省旅游管理系统是一种专为河南省旅游行业设计的信息管理系统,旨在整合和管理河南省的旅游资源信息,为游客提供准确、全面的旅游攻略和服务。以下是对该系统的详细介绍: 一、系统背景与意义 河南省作为中国的中部省份&…...
LabVIEW图像采集与应变场测量系统
开发了一种基于LabVIEW的图像采集与应变场测量系统,提供一种高精度、非接触式的测量技术,用于监测物体的全场位移和应变。系统整合了实时监控、数据记录和自动对焦等功能,适用于工程应用和科学研究。 项目背景 传统的位移和应变测量技术往往…...
CommonAPI学习笔记-2
一. 概述  这篇文章主要是想整理并且分析CommonAPI代码生成工具根据fidl和fdepl配置文件生成出来的代码的结构和作用。 二. fidl  用户根据业务需求在fidl文件中定义业务服务接口的结构以及自定义数据类型,然后使用core生成工具传入fidl文件生成该fidl的核心…...
ISP代理与住宅代理的区别
代理充当用户和互联网之间的中介,在增强安全性、隐私和可访问性方面提供多种功能。在众多代理类型中,ISP和住宅代理脱颖而出,各自拥有不同的功能和应用程序。 一、ISP代理 ISP代理,俗称Internet服务提供商代理,通过其…...
[25] cuda 应用之 nppi 实现图像色彩调整
[25] cuda 应用之 nppi 实现图像色彩调整 在 NPPI(NVIDIA Performance Primitives)中,图像色彩调整通常包括以下几种操作: 亮度调整:增加或减少图像的亮度。对比度调整:增强或减弱图像的对比度。饱和度调整:增强或减弱图像的颜色饱和度。色调调整:改变图像的色调(通常…...
Java 大视界 -- Java 大数据在智慧文旅中的应用与体验优化(74)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
PyTorch快速入门
Anaconda Anaconda 是一款面向科学计算的开源 Python 发行版本,它集成了众多科学计算所需的库、工具和环境管理系统,旨在简化包管理和部署,提升开发与研究效率。 核心组件: Conda:这是 Anaconda 自带的包和环境管理…...
100.7 AI量化面试题:如何利用新闻文本数据构建交易信号?
目录 0. 承前1. 解题思路1.1 数据处理维度1.2 分析模型维度1.3 信号构建维度 2. 新闻数据获取与预处理2.1 数据获取接口2.2 文本预处理 3. 情感分析与事件抽取3.1 情感分析模型3.2 事件抽取 4. 信号生成与优化4.1 信号构建4.2 信号优化 5. 策略实现与回测5.1 策略实现 6. 回答话…...
CF 465B.Inbox (100500)(Java实现)
题目分析 计算读取所有未读邮件所需的步数,其中1代表未读,0代表已读 思路分析 遍历邮件,如果当前是未读,那么所需步数1,如果下一封也是未读,不用管(遍历后会直接1),如果下一封是已读࿰…...
微信小程序获取openid和其他接口同时并发请求如何保证先获取到openid
在微信小程序中,如果你需要并发请求获取 openid 和其他接口的数据,并且希望确保先获取到 openid 之后再进行后续操作,可以考虑以下几种方法: 方法一:使用 Promise 链 1, 先请求 openid:使用 Promise 来请求 openid。 2, 在获取到 openid 后再请求其他接口。 function g…...
实现动态卡通笑脸的着色器实现
大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...
DeepSeek R1 模型解读与微调
DeepSeek R1 模型是 DeepSeek 团队推出的一款重要的大语言模型,旨在通过强化学习提升大型语言模型的推理能力。 模型架构 DeepSeek-R1-Zero DeepSeek-R1-Zero 是 DeepSeek 团队推出的第一代推理模型,完全依靠强化学习(RL)训练&…...
YOLOv11实时目标检测 | 摄像头视频图片文件检测
在上篇文章中YOLO11环境部署 || 从检测到训练https://blog.csdn.net/2301_79442295/article/details/145414103#comments_36164492,我们详细探讨了YOLO11的部署以及推理训练,但是评论区的观众老爷就说了:“博主博主,你这个只能推理…...
Node.js学习指南
一、模块化规范 nodejs使用的模块化规范 叫做 common.js 规范: 每一个模块都有独立的作用域 代码在各自模块中执行 不会造成全局污染 每一个模块都是一个独立的文件(module对象) 模块可以被多次加载(module.exports 属性) 但是仅…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
