一文带你拿下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, RetrieveUpdateDelete
  • 新增数据
  • 查询数据
  • 修改数据
  • 删除数据

一、新增数据 

首先我们创建一张学生表,为后续的新增数据做准备。

 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 案例代码

插入两条记录, value_list 数量必须和定义表的列的数量及顺序一致。
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 案例代码

-- 插入两条记录, value_list 数量必须和指定列数量及顺序一致
 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 案例代码

指定列的顺序不需要按定义表的顺序来,查询学生的姓名,id以及英语成绩
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

-- 查询英语不及格的同学及英语成绩 ( < 60 )
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查询 

-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
 select name,math from exam_result where math in(58,59,98,99);

使用or也可以实现,这里不再赘述。

4.2.5 模糊查询LIKE 

-- % 匹配任意多个(包括 0 个)字符
 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 案例

-- 将孙悟空同学的数学成绩变更为 80
update exam_result set math = 80 where name = '孙悟空';

-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70

update exam_result set math = 60, chinese = 70 where name = '曹孟德';

-- 将总成绩倒数前三的 3 位同学的数学成绩加上  10
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;


✨好啦,今天的分享就到这里!

🎉希望各位看官读完文章后,能够有所提升。

创作不易,还希望各位大佬支持一下!

👍点赞,你的认可是我创作的动力!

收藏,你的青睐是我努力的方向!

✏️评论:你的意见是我进步的财富!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/175681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

消息中间件——RabbitMQ(三)理解RabbitMQ核心概念和AMQP协议!

前言 本章学习&#xff0c;我们可以了解到以下知识点&#xff1a; 互联网大厂为什么选择RabbitMQ&#xff1f;RabbiMQ的高性能之道是如何做到的&#xff1f;什么是AMQP高级协议&#xff1f;AMQP核心概念是什么&#xff1f;RabbitMQ整体架构模型是什么样子的&#xff1f;Rabbi…

[译]JavaScript中Base64编码字符串的细节

本文作者为 360 奇舞团前端开发工程师 本文为翻译 原文标题&#xff1a;The nuances of base64 encoding strings in JavaScript 原文作者&#xff1a;Matt Joseph 原文链接&#xff1a;https://web.dev/articles/base64-encoding Base64编码和解码是一种常见的将二进制内容转…

【剪枝】torch-pruning的基本使用

论文&#xff1a;DepGraph: Towards Any Structural Pruning 工程&#xff1a;https://github.com/VainF/Torch-Pruning 算法和库的使用介绍&#xff1a;CVPR 2023 | DepGraph 通用结构化剪枝 1 TP的简介 该算法介绍了DepGraph 如何建模结构化剪枝中的层依赖&#xff0c;实现任…

redis的集群

高可用方案 1、持久化 2、高可用 主从复制 哨兵模式 集群 主从复制: 主从复制是redis实现高可用的基础&#xff0c;哨兵模式和集群都是在主从复制的基础之上实现高可用 主从复制实现数据的多机备份&#xff0c;以及读写分离&#xff08;主服务器负责写&#xff0c;从服务器…

云HIS系统源码,医院管理系信息统源码,融合B/S版四级电子病历系统

医院管理信息系统是以推进公共卫生、医疗、医保、药品、财务监管信息化建设为着力点&#xff0c;整合资源&#xff0c;加强信息标准化和公共服务信息平台建设&#xff0c;逐步实现统一高效、互联互通的管理系统。 SaaS模式Java版云HIS系统&#xff0c;在公立二甲医院应用三年…

代餐粉产业分析:中国市场销售额增长至116.94亿元

近年来&#xff0c;随着人们生活节奏的加快和健康意识的增强&#xff0c;代餐粉市场规模逐渐壮大。在这个忙碌的时代&#xff0c;快捷、营养而又方便的代餐粉成为了许多人选择的首选。 随着健康理念的不断普及和推广&#xff0c;人们开始更加重视日常饮食的健康与营养。代餐粉作…

Vellum —— 简介

目录 一&#xff0c;介绍 二&#xff0c;原理 三&#xff0c;PBD算法 一&#xff0c;介绍 Vellum是一个解算模拟框架&#xff0c;使用更高级的PBD&#xff08;XPBD&#xff0c;extended position based dynamics&#xff09;&#xff0c;是2nd Order Integration&#xff08…

Go 实现网络代理

使用 Go 语言开发网络代理服务可以通过以下步骤完成。这里&#xff0c;我们将使用 golang.org/x/net/proxy 包来创建一个简单的 SOCKS5 代理服务作为示例。 步骤 1. 安装 golang.org/x/net/proxy 包 使用以下命令安装 golang.org/x/net 包&#xff0c;该包包含 proxy 子包&am…

2023亿发数字化智能工单,专业管理工单处理全流程,助力企业转型腾飞

伴随着智能化和信息化的不断深入&#xff0c;企业数字化转型势如腾飞。在这个过程中&#xff0c;工单管理成为生产、家电、后勤等多个管理场景下频繁应用的关键环节。如何满足管理方对设备、服务等智能化管理的需求&#xff0c;提升工单管理效率、规范管理流程&#xff0c;并实…

问题:vue2+elementui,tabs切换显示表格并设置表格选中行高亮失败

错误示范&#xff1a; 1.直接setCurrentRow失败&#xff08;this.currentRow是之前保存的表格当前选中行的数据&#xff09; this.$refs.table.setCurrentRow(this.currentRow);2.以为是表格没生成就执行了setCurrentRow导致设置不成功&#xff0c;所以使用了this.$nextTick&…

英国国家量子计算中心与IBM签署重要协议!英国进入实用量子时代

​&#xff08;图片来源&#xff1a;网络&#xff09; 近日&#xff0c;英国国家量子计算中心&#xff08;NQCC&#xff09;与IBM达成了一项重要协议。根据该协议&#xff0c;NQCC将为英国研究人员提供IBM量子高级计划的云访问权限&#xff0c;其中包括IBM的量子计算系统舰队。…

SpringBoot Admin

前言 Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目&#xff0c;它提供了一个简洁的 Web 界面来监控 Spring Boot 应用程序的状态和各种运行时指标。Spring Boot Admin 可以帮助开发者快速了解应用程序的状态&#xff0c;并快速定位错误或性能问题。下面…

赛氪荣幸受邀参与中国联合国采购促进会第五次会员代表大会

11 月21 日 &#xff08;星期二&#xff09; 下午14:00&#xff0c;在北京市朝阳区定福庄东街1号中国传媒大学&#xff0c;赛氪荣幸参与中国联合国采购促进会第五次会员代表大会。 2022年以来&#xff0c;联合国采购杯全国大学生英语大赛已经走上了国际舞台&#xff0c;共有来自…

HC32L110小华半导体SWD模式切换的问题

在将SWD配置为普通引脚并配置为输出后&#xff0c;如果需要重新配置为SWD&#xff0c;需要将其配置为输入才行&#xff0c;如下&#xff1a; Clk_SetFunc(ClkFuncSwdPinIOEn, TRUE); //配置SWD引脚为普通引脚模式 Gpio_InitIOExt(SWCLK_PORT, SWCLK_PIN, GpioDirOut, TRUE,…

垃圾收集器的种类及概述

1.JVM参数 1.1标准参数所有jdk版本通用参数 -version -help -server -cp 1.2-X参数 非标准参数&#xff0c;也就是在JDK各个版本中可能会变动 -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式&#xff0c;JVM自己来决定 1.3 -XX参数 使用得最多…

一个测试驱动的Spring Boot应用程序开发

文章目录 系统任务用户故事搭建开发环境Web应用的框架Spring Boot 自动配置三层架构领域建模域定义与领域驱动设计领域类 业务逻辑功能随机的Challenge验证 表示层RESTSpring Boot和REST API设计API第一个控制器序列化的工作方式使用Spring Boot测试控制器 小结 这里采用面向需…

悄悄上线:CSS @starting-style 新规则

最近 Chrome 117&#xff0c;CSS 又悄悄推出了一个新的的规则&#xff0c;叫做starting-style。从名称上来看&#xff0c;表示定义初始样式。那么&#xff0c;具体是做什么的&#xff1f;有什么用&#xff1f;一起了解一下吧 一、快速了解 starting-style 通常做一个动画效果…

vue3引入vuex基础

一&#xff1a;前言 使用 vuex 可以方便我们对数据的统一化管理&#xff0c;便于各组件间数据的传递&#xff0c;定义一个全局对象&#xff0c;在多组件之间进行维护更新。因此&#xff0c;vuex 是在项目开发中很重要的一个部分。接下来让我们一起来看看如何使用 vuex 吧&#…

OpenLayers入门,OpenLayers6的WebGLPointsLayer图层样式和运算符详解,四种symbolType类型案例

专栏目录: OpenLayers入门教程汇总目录 前言 本章讲解使用OpenLayers6的WebGL图层显示大量点情况下,列举出所有WebGLPointsLayer图层所支持的所有样式运算符大全。 补充说明 本篇主要介绍OpenLayers6.x版本的webgl图层,OpenLayers7.x和OpenLayers8.x主要更新内容就是webgl…

任意文件下载漏洞(CVE-2021-44983)

简介 CVE-2021-44983是Taocms内容管理系统中的一个安全漏洞&#xff0c;可以追溯到版本3.0.1。该漏洞主要源于在登录后台后&#xff0c;文件管理栏存在任意文件下载漏洞。简言之&#xff0c;这个漏洞可能让攻击者通过特定的请求下载系统中的任意文件&#xff0c;包括但不限于敏…