【数据库】MySQL表的增删改查(基础命令详解)
写在前面 :
- 语法中大写字母是关键字,用[]括这的是可以省略的内容。
- 文中截图是相对应命令执行完得到的结果截图。
1.CRUD
注释:在SQL中可以使用“--空格+描述”来表示注释说明.
CRUD:即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写.
2.新增(CREATE)
语法格式:
INSERT [INTO] table_name[(column [, column] ...)]VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
使用这个这个命令之前,我们需要先创建好一个数据库,选中数据库后再在这个数据库中创建一个表,之后我们才可以用上述命令将数据填入到表中了。
--创建的的表结构
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| math | int(11) | YES | | NULL | |
| english | int(11) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
2.1 单行数据 + 全列插入
insert into student values(1,'张三',90,87);
insert into student values(1,'李四',89,87);
单行输入时,关键字values可以不加s,这里大家应该都可以理解。在实际应用中,很少使用到添加单行数据,就像我们网购,在一家网店买的东西,都是通过一个快递邮递到站,不然太费资源,单行输入也是如此。因此下方开始展示多行输入。
2.2 多行数据 + 指定列插入
-- 插入两条记录,value_list 数量必须和指定列数量及顺序一致
insert into student (id,name,math,english) values(3,'钟馗',12,45),(4,'卢布',null,null);
通过上方代码我们可以看出在数据中,我们可以将数据赋值为空,什么时候置为空能,就拿现在这个例子,卢布同学因为出去约会了,没参加考试,那么我们就把他所有的成绩全都置为null,相当于卢布同学缺考了。
3.查询(SELECT)
语法格式:
SELECT[DISTINCT] {* | {column [, column] ...}[FROM table_name][WHERE ...][ORDER BY column [ASC | DESC], ...]LIMIT ...
查询语法才是有趣中的有趣,因为他可以套用很多不同的查询方式,让我给你一一道来。
3.1全列查询
-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;
-- 2. 可能会影响到索引的使用。(索引待后面课程讲解)
SELECT * FROM exam_result;
3.2指定列查询
-- 指定列的顺序不需要按定义表的顺序来
SELECT id, name, english FROM exam_result;
3.3 查询字段为表达式
-- 表达式不包含字段
SELECT id, name, 10 FROM exam_result;
-- 表达式包含一个字段
SELECT id, name, english + 10 FROM exam_result;
-- 表达式包含多个字段
SELECT id, name, math + english FROM exam_result;
注:在我们执行english+10,english+math 这些语句时,对于我们的存入数据是不会有影响的,我们在客户端看到的所有表都是一个“临时表”。
3.4别名
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称
语法格式:
-- 结果集中,表头的列名=别名
SELECT column [AS] alias_name [...] FROM table_name;
3.5去重
使用DISTINCT关键字对某列数据进行去重
去重前:
去重后:
通过上方对比可以看出,去重是将出现大于等于两次的数据仅仅保留一项的操作。
3.6 排序:ORDER BY
语法格式:
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];
示例:
--查询姓名和数学成绩,根据数学成绩降序排序
select name,math from student order by math desc;
我们还可以将两行相加再进行排序:
select name,math+english from student order by math+english desc;
上方有刚学完as用于改别名,我们还可以将math+english改一个别名,这时上方的截图标题math+english就会被改为score中代码如下:
select name,math+english as score from student order by math+english desc;
除了上述的方式,我们还可以进行更复杂的排序方式,例如可以对多个字段进行排序,排序优先级随书写顺序。
-- 查询同学各门成绩,依次按 数学降序,英语升序方式显示
select name,math,english from student order by math desc, english ;
注意:
- 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序。
- NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面。
3.7条件查询
比较运算符:
运算符 | 说明 |
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,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) |
注意:
- WHERE条件可以使用表达式,但不能使用别名。
- AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
3.7.1基本查询
--查找姓名和英语成绩,查询出英语成绩不足60的同学 select name,english from student where english<60;
--查找姓名、英语和数学成绩成绩,查询出数学成绩高于英语成绩的同学 select name,english,math from student where english<math;
3.7.2 AND和OR
--英语、数学成绩都在60分以上的学生 select name,english,math from student where english>60 and math>60;
--英语或者数学大于60分的同学 select name,english,math from student where english>60 or math>60;
3.7.3范围查询
- BETWEEN ... AND ...
--查询英语成绩在60-100分的同学
select name,english,math from student where english between 60 and 100;
- IN
--查询英语等于87、45分的同学
select name,english,math from student where english in (87,45);
- 模糊查询
-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM student WHERE name LIKE '张%';
-- _ 匹配严格的一个任意字符
SELECT name FROM student WHERE name LIKE '张_';
- NULL查询:IS [NOT] NULL
-- 查询 id 已知的同学姓名
SELECT name, id FROM student WHERE id IS NOT NULL;
-- 查询 id 未知的同学姓名
SELECT name, id FROM student WHERE id IS NULL;
3.8分页查询
语法格式:
-- 起始下标为 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;
分页查询就是将数据按照页的形式进行显示,就像我们购物时,商品会有页码数,这就是分页查询的实际应用。
示例:
第 1 页
SELECT id, name, math, english FROM student ORDER BY id LIMIT 3
OFFSET 0;
-- 第 2 页
SELECT id, name, math, english FROM student ORDER BY id LIMIT 3
OFFSET 3;
-- 第 3 页,如果结果不足 3 个,不会有影响
SELECT id, name, math, english FROM student ORDER BY id LIMIT 3
OFFSET 6;
4.修改(UPDATAE)
语法格式:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
示例:
-- 将大鹏同学的数学成绩变更为 80 分
UPDATE student SET math = 80 WHERE name = '大鹏';
-- 将张三同学的数学成绩变更为 60 分,语文成绩变更为 70 分
UPDATE student SET math = 60, english = 70 WHERE name = '张三';
-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
UPDATE student SET math = math + 30 ORDER BY math + english LIMIT 3;
-- 将所有同学的语文成绩更新为原来的 2 倍
UPDATE studentt SET math = math * 2;
注意:
修改可以联合上方提到的语句(ORDER BY;WHERE等)进行修改,这样在使用方面对数据的操作就全面了许多。
5.删除(DELETE)
语法格式:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
示例:
--删除张三的成绩
DELETE FROM student WHERE name = '张三';
--创建一个测试表
create table test_table(id int,name varchar(20)
);--删除测试表
delete from test_table;
注意:在开发当中,删除操作是非常危险的,我们一定要再三再三考虑,如果操作失误,很有可能把自己的“饭碗”给弄丢,严重的话可能老板的饭碗也给弄没了。
相关文章:
【数据库】MySQL表的增删改查(基础命令详解)
写在前面 : 语法中大写字母是关键字,用[]括这的是可以省略的内容。文中截图是相对应命令执行完得到的结果截图。1.CRUD 注释:在SQL中可以使用“--空格描述”来表示注释说明.CRUD:即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首…...
2023年全国最新保安员精选真题及答案15
百分百题库提供保安员考试试题、保安职业资格考试预测题、保安员考试真题、保安职业资格证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 151.该图所要表达的是()消防器材。 A:地上消防栓 B:灭火器 …...
KPN对任意形状文本检测
文章目录一、研究背景二、方法流程1. 特征提取2. 核建议3. 实例无关特征图4. 轮廓生成5. 其余部分内容三、不足一、研究背景 相比起基于 FCN 网络的文本边缘检测网络,KPN网络可以更好地处理文本之间的间隔。 二、方法流程 1. 特征提取 FCN 和 FPN FCN(全卷积神经…...
同城外卖跑腿系统源码分析
外卖订餐已经成为很多“社畜”日常不可分割的一部分,足不出户,只需要一部电子设备即可在线订餐,并且可提供的选择非常多样化,与传统的电话订餐外卖模式相比也更便捷的多。 因此,同城外卖跑腿系统源码得以爆火ÿ…...
SCL_PFENET跑通填坑
1.数据准备:VOC2012数据集,initmodel文件夹(预训练模型),SegmentationClassAug数据2.训练部分:训练部分没什么需要改动的,也就改一下选择的配置文件。在config文件夹里有关于coco和voc数据的配置…...
Redis 做延迟消息队列
背景 看到消息队列,我们肯定会想到各种MQ,比如:RabbitMQ,acivityMQ、RocketMQ、Kafka等。 但是,当我们需要使用消息中间件的时候,并非每次都需要非常专业的消息中间件,假如我们只有一个消息队…...
刚果金FERI证书模板
FERI办理流程介(一)申请资料1:FERI APPLICATION FORM申请表格;2:草本海运提单(DRAFT B/L COPY);三:已盖章的商业发飘和箱单扫描件 (Commercial Invoice&Packing list)…...
什么是蜕变测试?
文章目录1.传统测试2.蜕变测试2.1.蜕变测试的理解2.2.蜕变测试的步骤2.2.1.生成蜕变关系2.2.2.生成蜕变用例2.2.3.执行蜕变用例2.2.4.校验蜕变关系参考文献1.传统测试 在没有蜕变测试的时代,传统软件测试的原理是:给定输入,观察被测软件的输…...
74. ‘pip‘不是内部或外部命令,也不是可运行的程序-解决办法
74. pip’不是内部或外部命令,也不是可运行的程序-解决办法 文章目录74. pip不是内部或外部命令,也不是可运行的程序-解决办法1. 课题导入2. 手动配置环境变量1. 准备工作2. 配置步骤3. 命令行安装1. 课题导入 有的同学在使用pip安装第三方库时…...
MIL图像处理那些事:应用程序模块(Mapp)- 初始化和控制MIL应用程序的执行环境
提示:本系列文章通过示例详细介绍MIL图像处理的基础知识及相关操作,让给你快速学会使用MIL进行图像处理 文章目录 前言初始化Mil环境MappAllocMappAllocDefault计时MappTimer异常处理打开和关闭 Mil 异常提示C# try...catch回调函数MappHookFunction查询MappInquire文件操作Ma…...
Pytorch基础语法学习2——argparse模块
一、基本介绍 argparse 模块是 Python 内置的用于命令行参数解析的模块,可以通过少数代码中变量或者参数的改变以实现对整个代码项目的操控。对于大型代码项目(如代码超过1000行),十分便捷 argparse 模块可以让人轻松编写用户友好的命令行接口…...
CHAPTER 2 目录及文件
目录及文件1 目录1.1 目录结构1.2 核心目录2 文件2.1 /etc/中的文件2.1.1 修改主机名(/etc/hostname)2.1.2 网卡配置文件2.1.3 开机自启动配置文件(/etc/rc.local)2.1.4 /etc/motd和/etc/issue2.2 /var/中的文件2.3 /proc/中的文件2.3.1 CPU信息(lscpu)3 文件类型3.1 类型说明3…...
2021牛客OI赛前集训营-提高组(第四场) T1最终测试
2021牛客OI赛前集训营-提高组(第四场) 题目大意 有nnn个选手参加比赛,比赛有两道题。 对于第一题,第iii个选手有50%50\%50%的可能拿到ai,1a_{i,1}ai,1分,有50%50\%50%的可能拿到000分。 对于第二题,第…...
【华为OD机试2023】租车骑绿岛 C++ Java Python
【华为OD机试2023】租车骑绿岛 C++ Java Python 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入…...
05-路由中的Hook
hook中使用 this.props中的路由 类组件中我们通过 this.props 获取到的关于路由的相关方法和数据,在函数组件中还是可以继续通过参数 props 来获取使用: export default function Login(prosp) {return (<button onClick{() > {props.history.pu…...
Ubuntu20.04 源码编译安装SRS-6流媒体服务器,开启GB28181支持
1. 下载SRS源码 直接从仓库clone git clone -b develop https://gitee.com/ossrs/srs.git 2. 编译源码 此处通过 --gb28181on 开启GB28181支持,默认是不开启的 cd srs/trunk && ./configure --gb28181on && make -j4 3. 编译过程中遇到的问题 …...
Web前端学习:六 -- 练习小总结
1、背景颜色透明度写法: background:rgba(R,G,B,Alpha透明度) 透明度范围:0–1,1完全不透明,0完全透明 2、伪类 hovar: 当鼠标接触该元素是,显示另一种样…...
微服务之 CAP原则
文章目录微服务CAP原则AC 可用性 一致性CP 一致性 分区容错性AP 可用性 分区容错性提示:以下是本篇文章正文内容,SpringCloud系列学习将会持续更新 微服务CAP原则 经过前面的学习,我们对 SpringCloud Netflix 以及 SpringCloud 官方整个生…...
乐鑫特权隔离机制 #4 | 用户应用程序的安全启动
乐鑫特权隔离机制 系列文章 #4 目录 安全启动 (Secure boot) 受保护应用程序的安全启动 (Secure boot for protected app ) 用户应用程序的安全启动 (Secure boot for user app) 基于证书的验证方案 (Certificate-based verification scheme) 必要条件验证过程…...
剑指 Offer 46. 把数字翻译成字符串
摘要 剑指 Offer 46. 把数字翻译成字符串 一、递归算法解析 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。…...
tar命令——归档/压缩和解压缩文件
tar命令的功能是将一个或多个文件归档成一个文件,同时可结合gzip、bzip2和xz等压缩命令实现文件的压缩和解压缩。 tar 命令的语法格式如下: tar [选项] 文件或目录 常用选项如下: 选项作用/含义-c建立归档文件-x从归档文件中解出文件-z通…...
Softing smartLink网关——推进过程工业数字化转型
虽然在过程工业中各工厂所投入的运营时间千差万别,但仍需按照新标准来进行有效控制和管理,而这就需要使用一种能够聚合其异构数据的数字通信架构。对此,Softing提供了两种网关解决方案,可用于将过程工业通信架构集成到现有以太网系…...
Spark的常用算子
Spark的常用算子 目录内容Spark的常用算子一、转换算子(Transformation)二、行动算子(Action)三、键值对算子(PairRDDFunctions)四、文件系统算子(File System)Spark 内置算子是指 S…...
Unity Avatar Cover System - 如何实现一个Avatar角色的智能掩体系统
文章目录简介变量说明实现动画准备动画状态机State 状态NoneStand To CoverIs CoveringCover To Stand高度适配高度检测脚部IK简介 本文介绍如何在Unity中实现一个Avatar角色的智能掩体系统,效果如图所示: 初版1.0.0代码已上传至SKFramework框架Package…...
steam/csgo搬砖项目到底真的假的?
搬砖是从国外steam市场置办游戏装备回来,在国内网易buff售卖,低买高卖,产生利润的一个项目。 但我真正上手后,才知道steam是面向全球的游戏平台,用户真的大的夸张!!市场非常巨大,一…...
【Python笔记20230307】
基础 编码、解码 str.encode(utf-8) # 编码 str.decode(utf-8) # 解码关键字 import keyword keyword.kwlist格式化输出 % 占位符:%s 字符串%d 整数%f 浮点数Hello, %s % world Hi, %s, you have $%d. % (Michael, 1000000) 占位符的修饰符 -左对齐 .小数点后位数 0左边补零…...
SBOM应该是软件供应链中的安全主食
当谈到软件材料清单(SBOM)时,通常的类比是食品包装上的成分列表,它让消费者知道他们将要吃的薯片中有什么。 美国机构有90天时间创建所有软件的清单 同样,SBOM是一个软件中组件的清单,在应用程序是来自多个来源的代码的集合的时…...
[计算机组成原理(唐朔飞 第2版)]第一章 计算机系统概论 第二章 计算机的发展及应用(学习复习笔记)
第1章 计算机系统概论 1.1 计算机系统简介 1.1.1 计算机的软硬件概念 计算机系统由“硬件”和“软件”两大部分组成。 硬件 是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成如主机、外部设备等 软件 软件看不见…...
Python的数据分析相关的框架
Python特别强大,也是一款可以实现可数据分析语言,它有很多开源的库和工具,可以帮助数据科学家处理和分析数据。 以下是一些常用的Python库和工具: NumPy:NumPy是一个Python库,用于处理大型多维数组和矩阵&…...
为什么会出现植物神经紊乱 总是检查不出来该怎么办
植物神经紊乱是一种很多人都害怕的疾病,你们知道是为什么吗? 植物神经紊乱是一种神经系统失调导致的多种症状的总称,这种疾病是由于社会因素所诱发的脏器功能的失调,是一种非常复杂的疾病。而这种疾病是可能会发生在任何年龄阶段的…...
怎么利用网站做cpa推广/新站整站快速排名
什么是EDI? EDI(Electronic Data Interchange),即电子数据交换,帮助企业与交易伙伴传输业务数据,如,订单、发货通知、发票、物流信息等。较之传统的邮件及纸质单据方式,EDI更安全、…...
南京哪家做网站好/为什么中国禁止谷歌浏览器
Spring boot maven 搭建框架 Spring Boot: 目的:这个框架帮助开发者更容易地创建基于Spring的应用程序和服务,使得pring开发者能够最快速地获得所需要的Spring功能。 优点:完全不需要XML配置,让spring应用从配置到运行…...
怎么做坑人的网站/自学seo能找到工作吗
创建一个控制台程序和一个类库, 在控制台创建一个匿名对象。然后再在类库中訪问它。代码例如以下: namespace ConsoleApplication1 {class Program{static void Main(string[] args){var obj new { Id 1 };var c new ClassLibrary1.TestClass();c.Test(obj);Cons…...
哪个平台免费招人最快/搜索引擎优化的方式
参考链接: 11周精通python计划(完结) 总结: # 演示类的使用 # 1.类属性, 类对象的属性, 由所有实例对象所共享,通过(类名.属性)或者(实例名.属性)来访问 # 2.实例属性, 实例对象的属性, 由各实例对象所独享,通过(实例名.属性)来访问代码实验展示: # 演…...
一级a做爰片免费网站录像/关键词优化需要从哪些方面开展
题目传送门 1 /*2 二分搜索:式子两边取对数,将x提出来,那么另一边就是一个常数了,函数是:lnx/x。二分搜索x,注意要两次 3 */4 #include <cstdio>5 #include <algorithm>6 #include <cma…...
怎么看一个网站是用什么程序做的/搜索引擎营销有哪些
分享如何设置 macOS 暗夜模式,需要的朋友可以试试这个教程 如何在 macOS 中设置手动暗模式调度 1、单击菜单栏中的Apple 标志,然后单击系统偏好设置。 2、单击常规。 3、在外观下,选择自动。 4、单击返回以返回到系统偏好设置。 5、单击显示…...