MySQL中表的增删改查
目录
一、CRUD
二、新增(Create)
(1)语法
(2)单行数据+全列插入
(3)多行数据+指定列插入
三、查询(Retrieve)
(1)语法
(2)全列查询
(3)指定列查询
(4)查询字段为表达式
1、表达式不包含字段:
2、表达式包含一个字段
表结构如下:
3、表达式包含多个字段
(5)别名
(6)去重:DISTINCT
(7)排序:ORDER BY
1、语法:
2、升序
3、降序
4、使用表达式及别名排序
5、可以对多个优先级进行排序,排序优先级随书写顺序
(8)条件查询:WHERE
1、比较运算符
2、逻辑运算符
3、基本查询:
4、AND和OR:
5、范围查询
(1) BETWEEN ... AND
(2)IN
6、模糊查询:LIKE
7、NULL的查询:IS [NOT] NULL
8、分页查询:LIMIT
四、修改(Update)
案例:
-- 将孙悟空同学的数学成绩变更为 80 分
-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
-- 将所有同学的语文成绩更新为原来的 2 倍
五、删除(Delete)
案例:
-- 删除孙悟空同学的考试成绩
-- 删除整张表数据
六、内容重点总结
新增编辑
查询编辑
修改编辑
删除编辑
都看到这了,点个赞再走吧,谢谢谢谢谢!!!
一、CRUD
注释:在SQL中可以使用“--空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
二、新增(Create)
已有的表结构和表数据:
(1)语法
INSERT [INTO] table_name
[(column [, column] ...)]
VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
(2)单行数据+全列插入
语法:insert into 表名 values(要插入的数据, ...)
注意:插入的数据顺序要和表结构相同,不然插入会失败
代码展示:
insert into books values('数学', '张三', 6.66, '数学类'); insert into books values('英语', '李四', 8.88, NULL);
结果如下:
(3)多行数据+指定列插入
语法:insert into 表名 (指定的列名, ...) values(指定列名数据)
代码展示
insert into books (name, price, sort) values('语文', 5.55, '语文类'), ('物理', 7.77, '物理类');
结果如下:
三、查询(Retrieve)
(1)语法
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
(2)全列查询
注意:select查询操作的全都是临时表,不会改变原本的数据
语法:select * from 表名
代码展示:
select * from books;
结果如下:
注意:通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;(要处理的信息太多,服务器可能会堵塞,大量的硬盘IO和网络IO就可能把硬盘或者网卡的宽带给吃满,一旦宽带吃满了,此时服务器就无法正常响应其他的客户端的请求了,在其他的客户端视野中,就会认为服务器挂了)
-- 2. 可能会影响到索引的使用
(3)指定列查询
语法:select 指定的列名,... from 表名
代码展示:
select name, author, price from books;
结果如下:
注意:指定列查询可以不按这个表的列顺序查询,如图
(4)查询字段为表达式
1、表达式不包含字段:
语法:select 表达式, ... from books
代码演示:
select name, price, 10 from books;
结果如下
因为没有10,所以会创建一个字段10,下面都放10
2、表达式包含一个字段
语法:select 含有一个字段的表达式, ... froms 表名
代码演示:
select name, author, price + 10 from books;
结果如下:
表结构如下:
3、表达式包含多个字段
语法:select 含有多个字段的表达式,... from 表名
整型数据代码演示:
select name, chinese + math + english from report;
结果如下:
不是整型数据代码演示:
select price, name + author + sort from books;
结果如下:
可以看到,表达式包含多行字段,有只要有NULL都为NULL,字符串相加等于0的现象
(5)别名
语法:select 列名,... as 别名 from report
注意(as可以不加,但是加上更好,容易区分)
代码演示:
select id, chinese + math + english as 总分 from report;
结果如下:
(6)去重:DISTINCT
现有的表:
语法:select distinct 列名,... from 表名
代码展示:
select distinct math from exam_result;
结果如下:
(7)排序:ORDER BY
1、语法:
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];
2、升序
语法:select * (或者其他列名也可以) from 表名 order by 列名
代码展示:
select * from exam_result order by math;
结果如下:
3、降序
语法:select * (或者其他列名也可以) from 表名 order by 列名 desc
代码展示:
select * from exam_result order by math desc;
结果如下:
4、使用表达式及别名排序
语法:select 列名, 表达式 from 表名 order by 表达式;
代码展示:
select name, math + chinese + english as total from exam_result order by math + chinese + english;
结果如下:
注意:
这里order by后面可以使用别名
5、可以对多个优先级进行排序,排序优先级随书写顺序
语法:select 要查询的列 exam_result order by 列名,列名...;
代码演示:
select * from exam_result order by math, english;
结果如下:
(8)条件查询:WHERE
1、比较运算符
2、逻辑运算符
注意:1. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
2. WHERE条件可以使用表达式,但不能使用别名。
如图示例:
sql语句的执行顺序:
第一步:取出一条记录(遍历表)
第二步:把记录带入条件带入条件,判断是否满足
第三步:如果条件满足,再把select指定的列取出来,并进行一些表达式运算
所以条件查询的where后面不能用别名
3、基本查询:
查询英语成绩大于70分的同学:
代码如下:
select name, english from exam_result where english > 70;
结果如下:
查询英语成绩大于语文成绩的同学:
代码如下:
select name, english, chinese from exam_result where english > chinese;
结果如下:
查询总成绩小于200的同学:
代码如下:
select name, chinese + math + english from exam_result where (chinese + math + english) < 200;
结果如下:
4、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);
结果如下:
5、范围查询
(1) BETWEEN ... AND
代码展示:
select * from exam_result where chinese between 80 and 90;
结果展示:
这里用and也可以实现代码:
select * from exam_result where chinese >= 80 and chinese <= 90;
(2)IN
代码如下:
select name, math from exam_result where math in(58, 59, 98, 99);
结果展示:
这里也可以用or
代码:
select name, math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;
6、模糊查询:LIKE
% 匹配任意多个(包括 0 个)字符
_ 匹配严格的一个任意字符
代码展示:select name from exam_result where name like '孙%';
结果如下:
代码展示:
select name from exam_result where name like '孙_';
结果如下:
7、NULL的查询:IS [NOT] NULL
判断表里面某个列是否为NULL,或者不是NULL
代码如下:
select name from exam_result where name is not null;
结果如下:
代码如下:
select name from exam_result where name is NULL;
结果如下:
8、分页查询:LIMIT
语法:
-- 起始下标为 0
-- 从 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;
四、修改(Update)
语法:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
案例:
-- 将孙悟空同学的数学成绩变更为 80 分
语法:
update 表名 set 要修改的列名 = 要修改的值 where 列名 = 要指定修改的列里的值
代码如下:
mysql> update exam_result set math = 80 where name = '孙悟空';
结果如下:
-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
代码如下:
update exam_result set math = 60, chinese = 70 where name = '曹孟德';
结果如下:
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
代码如下:
结果如下:
-- 将所有同学的语文成绩更新为原来的 2 倍
代码如下:
update exam_result set chinese = chinese * 2;
结果如下:
五、删除(Delete)
语法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
案例:
-- 删除孙悟空同学的考试成绩
代码如下:
delete from exam_result where name = '孙悟空';
结果如下:
-- 删除整张表数据
准备一张表,如下:
代码如下:
delete from for_delete;
结果如下:
六、内容重点总结
新增

查询

修改

删除

都看到这了,点个赞再走吧,谢谢谢谢谢!!!
相关文章:

MySQL中表的增删改查
目录 一、CRUD 二、新增(Create) (1)语法 (2)单行数据全列插入 (3)多行数据指定列插入 三、查询(Retrieve) (1)语法 …...
web.py python服务器两种模板template使用方法
【版权声明】 本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 更多python应用或算法总结请关注我的博客:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。 web.py是Python Web框架之一,…...

Flutter 01 目录结构入门
一、Flutter目录结构: 二、Flutter入口文件、入口方法: 三、Flutter Demo: demo1: import package:flutter/material.dart;//MaterialApp 和 Scaffold两个组件装饰App void main() {runApp(MaterialApp(home: Scaffold(appBar: A…...

Esxi安装OpenWrt
最近折腾下软路由主要就是实现局域网内的上网。 1.StarWind V2V Converter下载 先去下载个StarWind V2V Converter,觉得麻烦我在网上有找到一个博主的地址点击这里。 这是官网地址传送门,然后一阵乱输入点击下载 然后 双击之后无脑下一步即可。 2.Op…...
tuple 简易实现(C++ 模板元编程)
std::tuple 在标准库里面,tuple主要有下面四个类模板 or 函数模板 tupletuple_sizetuple_elementget 在后续有实现:tuple_size_v tuple_size::value和tuple_element_t tuple_element::type。 事例Example: auto tup std::tuple<in…...

Http代理与socks5代理有何区别?如何选择?(二)
上篇文章我们基本分别了解了http代理与socks5代理的定义与优缺点,接下来我们继续来了解http代理与socks5代理之间的比较与区别。 一、两者的比较 1、功能比较 HTTP代理专门用于Web流量,并在处理HTTP和HTTPS协议方面非常高效。它们可以修改正在传输的数…...
java中main方法和@Test注解的区别
Java的main方法和Test注解在用途和功能上有很大的区别。 main方法是Java应用程序的入口点。当你运行一个Java程序时,JVM会首先查找具有public static void main(String[] args)签名的类,并从这个方法开始执行程序。main方法通常用于控制程序的启动、执行…...
C++进阶语法——STL 标准模板库(下)(Standard Template Library)【学习笔记(七)】
文章目录 STL 代码示例1、迭代器2、算法3、array容器示例4、vector示例5、deque(double ended queue,双端数组)示例6、list(链表)容器7、set示例8、map示例9、stack 示例10、queue示例11、priority_queue (…...
力扣:求最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 示例1: 输入: strs ["flower", "flow" , "flight"] 输出: "fl" 示例2: 输入: strs ["dog","racecar","car&…...

Redis入门04-消息通知
目录 Redis中的消息通知 命令行操作 Redis中的管道 Redis中的消息通知 Redis可以用作消息队列的中间件,它提供了一种轻量级、高性能的消息传递机制,适用于实时通信、任务队列、事件处理等各种应用。以下是有关如何使用Redis作为消息队列的一些重要信…...

关于idea使用的一些操作设置
关于idea使用的一些操作设置 1. 常用的一下设置1.1 快捷键相关1.2 配置自动生成注释(类、方法等)1.3 maven项目相关1.4 常见其他的一些操作设置 2. IntelliJ IDEA 取消param注释中参数报错提示3. idea同时打开多个文件,导航栏不隐藏、自动换行…...

CLion 2023.2.2(C ++ IDE智能代码编辑器)
CLion 2023是一款跨平台C/C集成开发环境(IDE)。它为Mac用户提供了高效的编程体验,帮助程序员们在Mac平台上进行C/C开发。 CLion 2023支持多种编译器和调试器,并具有强大的代码分析和导航功能。它还为用户提供了许多便捷的工具和插…...

企业级API资产如何管理
在当今数字化时代,API已成为企业开发和创新的重要工具,如何高效地管理和调度这些资产成为了企业发展的重要课题。API资产管理的出现,为企业解决了这一难题,通过合理管理和利用API资产,企业可以更好地推动业务发展&…...

Git https方式拉的代码IDEA推送代码报错
报错信息 fatal: could not read Username for ‘https://codehub-cn-south-1.devcloud.huaweicloud.com’: No such file or directory 18:18:39.885: [recovery_pattern] git -c credential.helper -c core.quotepathfalse -c log.showSignaturefalse push --progress --porc…...
C++ capacity()用法总结
1. 容器的容量 容器的size是指它已经保存的元素的数目;而capacity则是在不分配新的内存空间的前提下它最多可以保存多少元素。capacity(),size(),reserve(),resize()这几个都是不太容易区分的函数 functionmeancapacity()获得容…...
TensorFlow2.0教程1-Eager
文章目录 张量极其操作1 张量自定义层一、网络层layer的常见操作二、实现自定义网络层三、网络层组合自动求导一、Gradient tapes二、记录控制流三、高阶梯度自定义训练(基础)一、Variables二、示例:拟合线性模型1、定义模型2.定义损失函数3.获取训练数据4.定义训练循环张…...

Redis学习系统(持续更新中)
RedisExample 课程介绍 目标是提供一个高效、可靠的学习和实践Redis的环境。我们将通过搭建Redis集群、实现缓存数据的持久化存储、制定缓存数据的淘汰策略以及同步缓存数据等步骤来深入了解和学习Redis的特性和功能。通过这个项目,你可以掌握Redis的核心概念和技…...
el-select获取id和name
一般选中节点只会返回:value绑定的数据给v-model中,要想获取id和name一并传给后端,需要如下几步: 1、给选择框添加点击事件 input"selectChangeParent" 2、v-for中多添加一个参数 index <el-select v-model"inputForm.pr…...
最简单的驱动程序
简介 在 Linux 内核中,Makefile 和 Kconfig 是两个重要的文件,它们分别承担着不同的作用。 Makefile Makefile 是一个文本文件,用于定义编译和构建内核的规则。它使用 make 工具来管理和自动化构建过程。Makefile 定义了编译器、链接器、编译选项、目标文件、源文件等信息…...

MFC String类的初始化学习
之前写过CString的用法; VC CString 编程实例图解_bcbobo21cn, cstring-CSDN博客 下面单独看一下CString的各种初始化方式; void CTest2View::OnDraw(CDC* pDC) {CTest2Doc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for nati…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...