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

MySQL-增删改查

一、Create(创建)

📖 语法:

INSERT INTO table_name(value_list);

当我们使用表的时候,就可以使用这个语法来向表中插入元素~

我们这边创建一个用于示范的表(Student)~

create table student(
id int,
name varchar(20),
chinese int,
math int,
english int);

此时student就是一个空的表,然后我们就可以向其中插入元素

那么如果说,此时一位学生的English学科缺考了,不应该录入成绩,应该怎么办?
其实很好办,我们可以针对一个学生,只添加一部分的数据即可。

同样的,我们也可以一次性添加多个成员:

Records: 2 表示成功插入了 2 条记录。
Duplicates: 0 表示没有重复的记录插入。
Warnings: 0 表示在执行插入操作时没有产生任何警告信息。


二、Retrieve(检索)

① Select 查询

📖 语法:

SELECT (values) from table_name;

上面我们其实就用到了:

📕 (select * from student)
其中的 ' * ' 代表的其实就是"全部"的意思,也就是"查询表中所有列的所有元素"

📕(select name from student)
代表查询表中的"name"

📕 (select id,chinese)
代表查询表中的"id"和"name"

除了上面一些直接查询表中的信息的方法,我们还可以在查询的时候自己定义一些想查询的东西,比如我们此时想知道"每个学生的(语文)和(数学)成绩的总和为多少"

📕 (select id ,name, chinese + math + english from student)
代表查询每个学生的 id,姓名,以及总分

(需要注意的是,null与任何数运算都等于null)

这么看或许非常别扭,所以我们还可以给它起个别名

📕 (select id,name,chinese + math + english as '总分' from student)
代表查询每个学生的 id,姓名,以及总分(别名为总分)

这样我们的表就变得简介,明了了


② Order by 排序查询

上面我们的查询,就对学生的总成绩进行了查询。而就现实生活的理想状态来说,当这些成绩出现时,我们更希望它是"有序",那么就引出了我们的 "Order by"~

📖 语法:

SELECT (values) from table_name order by (values) (排序方法)

语法意义
ASC升序(从小到大)
DESC降序(从大到小)

比如此时我们要对学生的英语成绩降序排序

📕 (select * from student order by english desc)

那让我们再添加一些数据,以便后续展示更加明显。

我们再试试,对于别名进行一个排序应该依然是如此吧?我们来试试:

但结果却有点出乎意料了~为什么会失败呢?

其实这是因为书写的形式不对,如果带了引号,'总分' 会被当作字符串常量,而不是列别名。

所以此时 order by '总分' 会对一个固定的字符串值排序,导致所有行的排序结果相同,实际并未按计算列排序。

那么想要实现这种排序,也很简单,我们只需要直接删除掉引号即可~

📕 select *, chinese + math + english as '总分' from student order by 总分 desc;

📕 (select * , chinese + math + english as '总分' from student order by chinese + math + english desc;)

📕 (select * , chinese + math + english as '总分' from student order by chinese + math + english asc;)

需要一提的是,如果我们不加 desc 也不加 asc 那么它的默认顺序是一个升序

③ Where 条件查询

而上面只能做到很简单的查询操作,想要查询某些符合特定条件的数据,就要用到"where"了。

📖 语法:

SELECT (values) from table_name where (条件语句)

📕 比较运算符:

运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,无法比较NULL(NULL = NULL的结果是NULL)
<=>等于,可以比较NULL(NULL <=> NULL的结果为TRUE(1))
!=,<>不等于
value BETWEEN a0 AND a1范围匹配[a0,a1]
如果value在其中则返回TRUE(1)
(NOT BETWEEN代表取反)
value IN (列表)如果value在列表中,则返回TRUE(1)
(NOT IN代表取反)
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配
%表示任意多个字符
_表示任意一个字符
NOT LIKE代表取反

📕 逻辑运算符:

运算符说明
AND多个条件都必须为TRUE
结果才能是TRUE
OR任意一个条件为TRUE
结果就为TRUE
NOT条件为TRUE
结果就为FALSE

📕 查询所有学生中 语文 > 95分 的学生

select * from student where chinese > 95;

📕 查找 英语缺考(NULL) 的学生

select * from student where english <=> NULL;

📕 查询 总分在[275,290]之间 的学生

 select *,chinese + math + english as '总分' from student where chinese + math + english between 275 and 290;

注意!这里是不可以使用"总分"来进行查询的,使用where时不能够使用别名来进行判别~

这是因为"执行顺序"的差异:

一般情况下,我们对数据进行查询时,会先通过"from"确定数据源,然后中间会经过一系列"对数据的操作"其中"where"的过滤数据操作在"起别名"之前,所以此时的where是查询不到"别名"的!这点比较重要,需要记住。

📕 查询 语文成绩(89,90,95) 的学生

select * from student where chinese in (89,90,95);

📕 查询 学生名为"小_" 的学生

 select * from student where name like "小_";

📕 查找 语文 = 数学 = 英语 的学生

select * from student where chinese = math and math = english;

注意,这里不能使用 chinese = math = english,这里的顺序是 先判断"chinese = math",返回0 或 1,然后判断(0/1 = english),这样就会得到错误的结果。

④ limit 分页查询

📖 语法:

SELECT (values) from table_name limit (num) offset (start)

📕 以3个为一页,从第一个开始查询

select * from student limit 3 offset 0;

📕 以3个为一页,从第四个开始查询

select * from student limit 3 offset 3;

⑤ distinct 去重查询

📖 语法:

SELECT distinct (values) from table_name;

📕 查找学生中所有出现的语文成绩(不重复)

三、Update(修改)

📖 语法:

update table_name set (value = 新值) where (条件语句);

📕 将语文为 89 分的同学,语文成绩 + 10分

update student set chinese = chinese + 10 where chinese = 89;

(这里不能使用 chinese += 10,MySQL中不能识别这种语句)

📕 将总成绩倒数前三的学生,数学成绩 + 30分

update student set math = math + 30 where chinese + math + english is not null order by chinese + math + english asc limit 3;

(这里我们查找三科成绩总和不是null的学生,因为null与任何数相加都为null,并且null与其他数字进行对比的结果是不确定的。)

(注意,最好使用where进行限制,否则会对整个表进行操作,非常危险)

四、Delete(删除)

📖 语法:

delete from table_name where (条件语句);

📕 删除名字叫'大王'的同学

delete from student where name = '大王';

📕 删除整个表中的数据

delete from student;

(非常危险的操作!)

注意,delete from student drop table student不同

delete from student是删除表中数据,但表还在(相当于用橡皮把纸上的画擦了)

drop table student是删除表(相当于直接把纸撕了~)

那么这篇关于MySQL的(增删改查)的文章到这里就结束啦,作者能力有限,如果有哪里说的不够清楚或者不够准确,还请各位在评论区多多指出,我也会虚心学习的,我们下次再见啦

相关文章:

MySQL-增删改查

一、Create(创建) &#x1f4d6; 语法&#xff1a; INSERT INTO table_name(value_list); 当我们使用表的时候&#xff0c;就可以使用这个语法来向表中插入元素~ 我们这边创建一个用于示范的表(Student)~ create table student( id int, name varchar(20), chinese int, math…...

LeetCode 热题100 15. 三数之和

LeetCode 热题100 | 15. 三数之和 大家好&#xff0c;今天我们来解决一道经典的算法题——三数之和。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求我们从一个整数数组中找到所有不重复的三元组&#xff0c;使得三元组的和为 0。下面我将详细讲解解题思路&#xff0c…...

网络空间安全(1)web应用程序的发展历程

前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷&#xff0c;从简单的文档共享系统到如今复杂、交互式、数据驱动的平台&#xff0c;经历了多个重要阶段。 一、起源与初期发展&#xff08;1989-1995年&#xff09; Web的诞生&#xff1a; 1989年&#xff0c;欧洲…...

ABAQUS功能梯度材料FGM模型

功能梯度材料&#xff08;FGM&#xff09;作为一种新型复合材料&#xff0c;通过材料内部成分或微观结构的梯度变化&#xff0c;优化特定性能适应复杂环境&#xff0c;被广泛应用于高温防护、结构优化、生物医学、光电设备等领域。本案例介绍在ABAQUS内建立功能梯度材料模型。 …...

自适应增强技术

1. 传统图像处理中的自适应增强&#xff08;如CLAHE&#xff09; 难度&#xff1a;⭐容易 实现方式&#xff1a;调用成熟的库&#xff08;如OpenCV&#xff09;函数即可完成。 示例代码&#xff08;CLAHE增强&#xff09;&#xff1a; <PYTHON> import cv2# 输入灰度或彩…...

虚拟项目:一个好用的工具平台

在当今数字化的时代&#xff0c;虚拟项目如雨后春笋般涌现&#xff0c;为人们提供了诸多便捷且充满机遇的选择。以下将为大家详细介绍几种颇具特色的虚拟项目&#xff0c;包括书签、资源站、题库、虚拟商城、专栏、证件照以及分站搭建等&#xff0c;一起来了解它们各自的独特之…...

MySQL 和 Elasticsearch 之间的数据同步

MySQL 和 Elasticsearch 之间的数据同步是常见的需求&#xff0c;通常用于将结构化数据从关系型数据库同步到 Elasticsearch 以实现高效的全文搜索、聚合分析和实时查询。以下是几种常用的同步方案及其实现方法&#xff1a; 1. 应用层双写&#xff08;双写模式&#xff09; 原…...

PS裁剪工具

裁剪&#xff1a; 多张图同一标准裁剪&#xff1a;裁剪–》前面的图像–》选择其他图像–》 确定 选区–》裁剪工具–》确定&#xff1a;选区制作矩形裁剪 裁剪–》拉直 裁剪–》内容识别&#xff1a;当裁剪大于图片大小&#xff0c;会自动填充空白区域 &#xff08;栅格化图层…...

[Web 安全] PHP 反序列化漏洞 —— PHP 序列化 反序列化

关注这个专栏的其他相关笔记&#xff1a;[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 0x01&#xff1a;PHP 序列化 — Serialize 序列化就是将对象的状态信息转化为可以存储或传输的形式的过程&#xff0c;在 PHP 中&#xff0c;通常使用 serialize() 函数来完成序列化的操作…...

QT入门--QMainWindow

从上向下依次是菜单栏&#xff0c;工具栏&#xff0c;铆接部件&#xff08;浮动窗口&#xff09;&#xff0c;状态栏&#xff0c;中心部件 菜单栏 创建菜单栏 QMenuBar* mybar1 menuBar(); 将菜单栏放到窗口中 setMenuBar(mybar1); 创建菜单 QMenu *myfilemenu mybar1-…...

C++ | 高级教程 | 信号处理

&#x1f47b; 概念 信号 —— 操作系统传给进程的中断&#xff0c;会提早终止程序有些信号不能被程序捕获&#xff0c;有些则可以被捕获&#xff0c;并基于信号采取适当的动作 信号描述SIGABRT程序的异常终止&#xff0c;如调用 abortSIGFPE错误的算术运算&#xff0c;比如除…...

最新前端框架选型对比与建议(React/Vue/Svelte/Angular)

前端框架选型对比与建议&#xff08;React/Vue/Svelte/Angular&#xff09; 一、核心框架技术特性对比&#xff08;基于最新版本&#xff09; 维度React 19 25Vue 3.5 12Svelte 5 25Angular 19 5核心理念函数式编程、JSX语法、虚拟DOM渐进式框架、组合式API、模板语法编译时框…...

游戏引擎学习第123天

仓库:https://gitee.com/mrxiao_com/2d_game_3 黑板&#xff1a;线程同步/通信 目标是从零开始编写一个完整的游戏。我们不使用引擎&#xff0c;也不依赖任何库&#xff0c;完全自己编写游戏所需的所有代码。我们做这个节目不仅是为了教育目的&#xff0c;同时也是因为编程本…...

计算机网络:从底层原理到前沿应用,解锁数字世界的连接密码

计算机网络&#xff1a;从底层原理到前沿应用&#xff0c;解锁数字世界的连接密码 在信息如洪流般奔涌的时代&#xff0c;计算机网络宛如无形的脉络&#xff0c;贯穿于我们生活的每一个角落。它不仅是数据传输的通道&#xff0c;更是连接全球、驱动创新的核心力量。从日常的网络…...

grafana K6压测

文章目录 install and runscript.jsoptions最佳实践 report 解析 https://grafana.com/docs/k6/latest/get-started install and run install # mac brew install k6当前目录下生成压测脚本 # create file script.js k6 new [filename] # create file ‘script.js’ in …...

Vue的组合式API和选项式API有什么区别

Vue3的组合式API&#xff08;Composition API&#xff09;和选项式API&#xff08;Options API&#xff09;是两种不同的组件编写方式&#xff0c;主要区别如下&#xff1a; 1. 代码组织方式 选项式API&#xff1a; 按照选项&#xff08;如data、methods、computed等&#xff0…...

ubuntu 安全策略(等保)

windows 三个帐号屏保设置组策略,密码超时次数/审计记录&#xff1b; linux 应具有登录失败处理功能&#xff0c;应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施。 1、在系统中新建测试用户&#xff0c;使用此用户登录时多次输入错误密码&…...

c/c++蓝桥杯经典编程题100道(22)最短路径问题

最短路径问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 最短路径问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1&#xff1a;Dijkstra算法&#xff08;正权图&#xff0c;难度★★&#xff09; 解法2&#xff1a;Bellman-Ford算法&#xff08;含负权边&a…...

AI工具集合

设计相关 1. mastrtgo&#xff08;暂时免费&#xff09; &#xff1a;可以根据自然语言生成UI设计稿和前端代码 MasterGo 莫高设计 - AI 时代的数字界面生产平台 2. reddy.ai&#xff08;暂时免费&#xff09;: 国外类似mastrtgo的平台 Readdy 3. midjourney &#xff08;…...

CSDN 博客:CC++ 内存管理详解

CSDN 博客&#xff1a;C/C 内存管理详解 在软件开发过程中&#xff0c;内存管理是一个非常重要的环节。对于 C 和 C 这两种编程语言&#xff0c;它们都拥有独特的内存管理机制&#xff0c;理解这些机制对于编写高效、健壮的程序至关重要。本文将详细讲解 C/C 内存管理相关的内…...

DM V5.0.6.03.103 Windows 2000 (2026.04.14)

...

ViGEmBus虚拟手柄驱动技术深度解析:Windows内核级游戏控制器模拟架构揭秘

ViGEmBus虚拟手柄驱动技术深度解析&#xff1a;Windows内核级游戏控制器模拟架构揭秘 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus作为Windows内…...

PMD自定义规则开发终极指南:打造专属代码质量检查工具

PMD自定义规则开发终极指南&#xff1a;打造专属代码质量检查工具 【免费下载链接】pmd An extensible multilanguage static code analyzer. 项目地址: https://gitcode.com/gh_mirrors/pm/pmd PMD作为一款强大的多语言静态代码分析工具&#xff0c;允许开发者通过自定…...

故障排查手册从现象到根因分析

故障排查手册&#xff1a;从现象到根因的精准拆解 在复杂的系统运维或设备维护中&#xff0c;故障往往像一场突如其来的风暴&#xff0c;而一本结构化的故障排查手册就是工程师的“导航仪”。它通过从表面现象逐层深入&#xff0c;最终锁定根因&#xff0c;不仅能快速恢复系统…...

OFA视觉推理系统效果展示:复杂场景下的图文关系判断案例

OFA视觉推理系统效果展示&#xff1a;复杂场景下的图文关系判断案例 1. 引言&#xff1a;当计算机学会"看图说话" 在数字内容爆炸式增长的今天&#xff0c;我们每天都会遇到大量图文信息。从社交媒体到电商平台&#xff0c;从新闻网站到在线教育&#xff0c;图片和…...

终极Bloatynosy优化指南:3步打造流畅Windows系统体验

终极Bloatynosy优化指南&#xff1a;3步打造流畅Windows系统体验 【免费下载链接】Bloatynosy The Bloaty and the Nosy: No Bloat, No Problem! 项目地址: https://gitcode.com/gh_mirrors/bl/Bloatynosy Bloatynosy是一款专为Windows系统设计的轻量级优化工具&#xf…...

古法编程1:整数拆分

题目来源于力扣343题给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。返回 你可以获得的最大乘积 。示例1&#xff1a;输入: n 2输出: 1解释: 2 1 1, 1 1 1思路&#xff1a;题目描述比…...

Coze (扣子) 开发AI智能体

Coze (扣子) 已经成为连接底层大模型与实际业务场景的核心“零代码/低代码”平台。利用 Coze 开发一个英语学习 AI 智能体&#xff08;Agent&#xff09;&#xff0c;本质上是将各种原子能力&#xff08;插件、工作流、记忆&#xff09;组装进一个“大脑”中。以下是开发一个高…...

2026年OpenClaw怎么集成?阿里云1分钟保姆级教程+大模型APIKey配置、Skill集成教程

2026年OpenClaw怎么集成&#xff1f;阿里云1分钟保姆级教程大模型APIKey配置、Skill集成教程。本文面向零基础用户&#xff0c;完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw&#xff08;Clawdbot&#xff09;的流程&#xff0c;包含环境配置、服务启动…...

Redis 常用数据类型

下面给你一套面试最标准、逻辑清晰、直接背诵的版本&#xff1a; Redis 常用数据类型 使用场景 底层原理 面试话术&#xff0c;一次性讲全。 一、开场一句话&#xff08;必说&#xff09; Redis 是基于内存的高性能 KV 数据库&#xff0c;支持丰富的数据结构&#xff0c;通过…...