一文带你拿下MySQL之增删查改(基础)
✏️✏️✏️今天给各位带来的是关于数据库增删查改基础方面的知识。
清风的CSDN博客
😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流!
动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛

目录
前言
一、新增数据
1.1 单行数据-全列插入
1.1.1 语法
1.1.2 案例代码
1.2 单行数据-指定列插入
1.2.1 语法
1.2.2 案例代码
1.3 多行数据-指定列插入
1.3.1 语法
1.3.2 案例代码
1.4 多行数据-全列插入
1.4 语法
1.4.2 案例代码
二、查询
2.1 全列查询
2.1.1 语法
2.1.2 案例代码
2.2 指定列查询
2.2.1 语法
2.2.2 案例代码
2.3 查询字段为表达式
三、排序 ORDER BY
3.1 语法
3.2 案例代码
四、MySQL关键字查询
4.1 运算符
4.2 案例代码
4.2.1 基本查询 WHERE
4.2.2 AND 与 OR 查询
4.2.3 范围查询
4.2.4 IN查询
4.2.5 模糊查询LIKE
4.2.6 NULL的查询
4.2.7 分页查询LIMIT
五、修改 UPDATE
5.1 语法
5.2 案例
六、删除 DELETE
6.1 语法
6.2 案例代码
前言
- CRUD : Create, Retrieve,Update,Delete
- 新增数据
- 查询数据
- 修改数据
- 删除数据
一、新增数据
首先我们创建一张学生表,为后续的新增数据做准备。
create table student(id int, //身份证号sn int, //学号name varchar(20), //姓名qq_mail varchar(20)); //QQ邮箱

1.1 单行数据-全列插入
1.1.1 语法
insert into 表名 values (值,值,值...);//单行全列插入
1.1.2 案例代码
insert into student values (100,10000,'唐三藏',null);insert into student values (101,10001,'孙悟空','1111'); 
1.2 单行数据-指定列插入
1.2.1 语法
insert into 表名 (列名,列名...) values (值,值,值...);//单行指定列插入
1.2.2 案例代码
-- 插入一条记录,value_list 数量必须和指定列数量及顺序一致
insert into student (id,name) values (102,'猪悟能');

1.3 多行数据-指定列插入
1.3.1 语法
insert into 表名 (列名,列名...) values (值,值...),(值,值...);//多行全列插入
1.3.2 案例代码
insert into student (id,sn,name) values-> (103,20002,'曹孟德'),-> (104,20003,'孙仲谋');

1.4 多行数据-全列插入
1.4 语法
insert into 表名 values (值,值...),(值,值...);//多行全列插入
1.4.2 案例代码
插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致。
insert into student values(105,20004,'关云长',null),(106,20005,'张飞',null),(107,20006,'武则天',null);

二、查询
创建考试成绩表如下:
create table exam_result (id int,name varchar(20),chinese decimal(3,1),math decimal(3,1),english decimal(3,1));

插入测试数据
insert into exam_result (id,name,chinese,math,english) values(1,'唐三藏',67,98,56),(2,'孙悟空',87.5,78,77),(3,'猪悟能',88,98.5,90),(4,'曹孟德',82,84,67),(5,'刘玄德',55.5,85,45),(6,'孙权',70,73,78.5),(7,'宋公明',75,65,30);

2.1 全列查询
2.1.1 语法
select * from 表名;
2.1.2 案例代码
查询考试成绩表的学生信息
select * from exam_result;

2.2 指定列查询
2.2.1 语法
select 列名,列名... from 表名
2.2.2 案例代码
select name,id,english from exam_result; 
2.3 查询字段为表达式
查询学生的英语成绩加10分后的学生id和姓名
select id,name, english+10 from exam_result;

查询学生的总成绩以及学生信息
select id, name, chinese + math + english from exam_result;

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称
查询学生的总成绩以及学生信息
select id, name, chinese + math + english as total from exam_result;

使用DISTINCT关键字对某列数据进行去重
在创建的考试成绩表,可以利用关键字DISTINCT去除:(此表不重复,但不影响测试)
select distinct math from exam_result;

三、排序 ORDER BY
3.1 语法
select 列名,列名... from 表名 order by 列名 排序方式;
//排序方式默认为升序ASC
//降序为DESC
3.2 案例代码
查询学生的英语成绩排名以及学生姓名
select name, english from exam_result order by english;

注意事项:
- 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
- NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
也可以对多个字段进行排序,例如:
select name,math,english,chinese from exam_result order by math desc, english, chinese; 
四、MySQL关键字查询
4.1 运算符
比较运算符:
| 运算符 | 说明 |
| >,>=,<,<= | 大于,大于等于,小于,小于等于 |
| = | 等于, 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 | 是空 |
| is not null | 不是空 |
| like | 模糊匹配。 % 表示任意多个(包括 0 个)任意字符; _ 表示任意一个字符 |
逻辑运算符:
| 运算符 | 说明 |
| and | 多个条件必须都为 TRUE(1) ,结果才是 TRUE(1) |
| or | 任意一个条件为 TRUE(1), 结果为 TRUE(1) |
| not | 条件为 TRUE(1) ,结果为 FALSE(0) |
- WHERE条件可以使用表达式,但不能使用别名。
- AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
4.2 案例代码
4.2.1 基本查询 WHERE
select name,english from exam_result where english < 60; 
-- 查询语文成绩好于英语成绩的同学
select name,chinese,english from exam_result where chinese > english;

-- 查询总分在 200 分以下的同学
select name from exam_result where chinese + math + english < 200;

4.2.2 AND 与 OR 查询
-- 查询语文成绩大于80分,且英语成绩大于80分的同学
select name,chinese,english from exam_result where chinese > 80 and english > 80;

-- 查询语文成绩大于80分,或英语成绩大于80分的同学
select name,chinese,english from exam_result where chinese > 80 or english > 80;

4.2.3 范围查询
-- 查询语文成绩在 [80, 90] 分的同学及语文成绩
select name,chinese from exam_result where chinese between 80 and 90;

4.2.4 IN查询
select name,math from exam_result where math in(58,59,98,99); 
使用or也可以实现,这里不再赘述。
4.2.5 模糊查询LIKE
select name from exam_result where name like '孙%'; 
-- --匹配严格的一个任意字符
select name from exam_result where name like '孙_';

4.2.6 NULL的查询
-- 查询 qq_mail 已知的同学姓名
select name,qq_mail from student where qq_mail is not null;

-- 查询 qq_mail 未知的同学姓名
select name,qq_mail from student where qq_mail is null;

4.2.7 分页查询LIMIT
语法:
-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
案例:
按id进行分页,每页三条记录
select id,name,math,english,chinese from exam_result order by id limit 3 offset 0;select id,name,math,english,chinese from exam_result order by id limit 3 offset 3;select id,name,math,english,chinese from exam_result order by id limit 3 offset 6;

五、修改 UPDATE
5.1 语法
UPDATE table_name SET column = expr [, column = expr ...][WHERE ...] [ORDER BY ...] [LIMIT ...]
5.2 案例
update exam_result set math = 80 where name = '孙悟空'; 
-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
update exam_result set math = 60, chinese = 70 where name = '曹孟德';

update exam_result set math = math + 10 order by chinese + math + english limit 3; 
六、删除 DELETE
6.1 语法
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
6.2 案例代码
-- 删除孙悟空同学的考试成绩
delete from exam_result where name = '孙悟空';

-- 删除整张表数据
delete from exam_result;

✨好啦,今天的分享就到这里!
🎉希望各位看官读完文章后,能够有所提升。
✨创作不易,还希望各位大佬支持一下!
👍点赞,你的认可是我创作的动力!
⭐收藏,你的青睐是我努力的方向!
✏️评论:你的意见是我进步的财富!

相关文章:
一文带你拿下MySQL之增删查改(基础)
✏️✏️✏️今天给各位带来的是关于数据库增删查改基础方面的知识。 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的小手…...
2023亿发数字化智能工单,专业管理工单处理全流程,助力企业转型腾飞
伴随着智能化和信息化的不断深入,企业数字化转型势如腾飞。在这个过程中,工单管理成为生产、家电、后勤等多个管理场景下频繁应用的关键环节。如何满足管理方对设备、服务等智能化管理的需求,提升工单管理效率、规范管理流程,并实…...
JavaScript 常用符号
JavaScript是一门基础性的编程语言,常用于web开发中。JS中有许多特殊的符号,这些符号的用法十分重要,直接影响代码的正确性和可读性。在日常编写中,我们会频繁使用以下几个符号。 一、等于号() 等于号在JS…...
GPT-4:论文阅读笔记
GPT-4的输入和输出:输入的内容是文本或图片,输出的内容是文本。因此,GPT-4是一种输入端多模态的模型。GPT-4的效果:在真实世界中还是比不上人类,但是在很多专业性的任务上已经达到了人类的水平,甚至超过人类…...
hm商城微服务远程调用及拆分
RequiredArgsConstructor是Lombok库中的一个注解 它会自动在类中生成一个构造函数,这个构造函数会接收类中所有被标记为final的字段,并将其作为参数。这个注解可以帮助我们减少样板代码,例如手动编写构造函数。 eg: public fin…...
设置指定时间之前的时间不可选
1、el-date-picker设置今天之前的日期不可选 <el-date-picker style"width: 100%" type"date" v-model"form.resetDate" align"right" :value-format"yyyy-MM-dd" placeholder"选择调整日期":disabled"t…...
Java使用Redis来实现分布式锁
Java使用Redis来实现分布式锁 在单节点服务中,我们可以使用synchronized来保证同一时间内只允许一个线程执行限定的代码块。但是如果我们是多节点服务呢,因为synchronized是针对服务内部的,其他服务是无法受到他的干预的。那么如何保证多个节…...
移动端表格分页uni-app
使用uni-app提供的uni-table表格 网址:https://uniapp.dcloud.net.cn/component/uniui/uni-table.html#%E4%BB%8B%E7%BB%8D <uni-table ref"table" :loading"loading" border stripe type"selection" emptyText"暂无更多数据…...
全志R128芯片RTOS调试指南
RTOS 调试指南 此文档介绍 FreeRTOS 系统方案支持的常用软件调试方法,帮助相关开发人员快速高效地进行软件调试,提高解决软件问题的效率。 栈回溯 栈回溯是指获取程序的调用链信息,通过栈回溯信息,能帮助开发者快速理清程序执行…...
超级实用的程序员接单平台,看完少走几年弯路,强推第一个!
“前途光明我看不见,道路曲折我走不完。” 兜兜转转,心心念念,念念不忘,必有回响。终于找到了… 网络上好多人都在推荐程序员线上接单,有人说赚得盆满钵满,有的人被坑得破口大骂,还有的人甚至还…...
前端字符串方法汇总
1、length属性 const sss lengthconsole.log(字符串长度是, sss.length) 2、chartAt() charAt()和charCodeAt()方法都可以通过索引来获取指定位置的值: charAt() 方法获取到的是指定位置的字符;charCodeAt()方法获取的是指定位置字符的Unicode值。 …...
12 分布式锁加入看门狗
1、看门狗的流程图 2、看门狗的代码实现 /****类说明:Redis的key-value结构*/ public class LockItem {private final String key;private final String value;public LockItem(String key, String value) {this.key key;this.value value;}public String getKey…...
怎么判断list是否为null
List<Entity> baseMess new ArrayList<>(); baseMess motiveService.getBaseMessage(machine.get(i),preDate,nowDate); System.out.println("获取Size"baseMess.size()); baseMess.removeIf(Objects::isNull); System.out.println("获取Size"…...
11.数据公式中使用2个 $$ a =b $$,是什么意思?
在 LaTeX 中,双美元符号 $$ 用于进入和退出独立的数学模式,也就是数学公式模式。在 $$ 中的文本将被视为数学公式,并以数学排版的方式显示。 具体地说,$$ 的使用是为了在文档中创建居中显示的独立数学公式。这意味着公式将单独占…...
设计模式-14-迭代器模式
经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。 1-原理和实现 迭代器模式(Iterator Design Pattern)&a…...
防雷接地+防雷工程施工综合方案
一、地凯科技防雷工程接地概述 防雷接地工程是指在建筑物或其他设施上安装防雷装置,以防止雷电对人员、设备和建筑物造成危害的工程。防雷装置主要包括避雷针(网)、引下线、接地体(网)等部分,其中接地体&a…...
排序算法--选择排序
实现逻辑 ① 第一轮从下标为 1 到下标为 n-1 的元素中选取最小值,若小于第一个数,则交换 ② 第二轮从下标为 2 到下标为 n-1 的元素中选取最小值,若小于第二个数,则交换 ③ 依次类推下去…… void print_array(int a[], int n){f…...
【Web】Ctfshow SSRF刷题记录1
核心代码解读 <?php $url$_POST[url]; $chcurl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resultcurl_exec($ch); curl_close($ch); ?> curl_init():初始curl会话 curl_setopt():会…...
【算法挨揍日记】day30——300. 最长递增子序列、376. 摆动序列
300. 最长递增子序列 300. 最长递增子序列 题目解析: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如&#…...
ROS2对比ROS1的一些变化与优势(全新安装ROS2以及编译错误处理)《1》
1、概述 我们在前面介绍的ROS,都是ROS1的版本,近期对机器狗进行学习的时候,发现版本是ROS2了,也发现平时习惯的一些命令都有了变化,改变还是挺大的,不过熟悉之后还是很习惯ROS2的写法。 ROS2不是在ROS1的基…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
