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…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...








































