当前位置:网站首页>MySQL常用增删改查操作(CRUD)
MySQL常用增删改查操作(CRUD)
2022-07-04 16:12:00 【如风暖阳】
️前言️
本篇文章主要介绍在MySQL数据库中常见的增删改查(CRUD)SQL语句操作。
博客主页:【如风暖阳】
精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】
欢迎点赞收藏留言评论私信必回哟本文由 【如风暖阳】 原创,首发于 CSDN
博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言
内容导读
MySQL常用增删改查操作(CRUD)
1.新增(create)
语法:
insert into 表名 values (值,值);
案例:
创建学生表进行插入:
create table student(id int ,name varchar(50));
insert into student values (1,'李四');
最下一行“1 row affected in 5 ms”表示有一行发生了改变。
指定列插入:
insert into student (name) values('张三');
多行插入:
insert into student values (3,'王五'),(4,'赵六');
一次插入N条记录要比一次插入一条分N次插入快很多。
2.查询(retrieve)
查询语句是SQL语句中最核心也是最复杂的操作,下边我们先简单介绍初阶查询语句(查询select子句无论怎样进行,都不会对数据库原有的数据发生改动)。
案例:
-- 创建考试成绩表
drop table if exists exam_result;
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 全列查询
最基础的操作,但在实际开发中也很危险,如果数据量较大,进行全列查询将会大量消耗系统资源,有可能导致宕机。
select*from 表名;
2.2 指定列查询
这种相对于全列查询要高效很多,在查询时会显示告诉数据库要查询哪些列,数据库就会有针对性的返回数据了。
select 列名,列名...... from 表名;
2.3 查询字段为表达式
在查询的同时进行一些运算操作(列和列之间)
例如,期望查询结果中的语文成绩比真实成绩高十分:
查询每个同学的总分:
2.4 查询字段指定别名
通过指定别名的方式防止得到的临时表列名太乱。
2.5 针对查询结果去重
针对查询结果,把重复的记录抹去。
如果是针对多个列进行去重,只有这多个列的值都相同时才会被视为重复
2.6 针对查询结果排序
select 列名..... from 表明 order by 列名 asc/desc;
针对数学成绩进行升序排序 asc为升序(默认为升序可以不写),desc为降序
注意:
1.数据库记录中带NULL值的将被视为最小(在排序中会被视为最小值)
2.排序也可依据别名或表达式来进行排序。
3.指定多个列排序时,先根据第一个列进行排序,如果第一个列的值相同再按第二个列的结果排序,如下先按照数学排序,数学相同再按语文排序。
2.7 条件查询
在select子句后面加上where筛选条件,查询结果会把满足条件的保留,不满足的过滤掉。
select 列名 from 表名 where 条件;
比较运算符:
运算符 | 说明 |
---|---|
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,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,在同时使用时,需要使用小括号()包裹优先执行的部分
案例:
基本查询:
1.查询英语不及格同学的英语成绩
2.查询语文成绩好于英语成绩的同学
3.查询总分在200分以下的同学
此处注意不能使用别名AND与OR:
1.查询语文成绩大于80分,且英语成绩大于80分的同学
2.查询语文成绩大于80分,或英语成绩大于80分的同学
3.观察AND 和 OR 的优先级
and的优先级高于or,如果想打破优先级需要使用小括号()范围查询
1.between …and…
在编程领域里,大部分区间都是左闭右开,注意在SQL中是左右都闭合的区间
查询语文成绩在 [80, 90] 分的同学及语文成绩
使用and也可以实现
2.in
查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
使用or也可以实现类似效果模糊查询:LIKE
% 匹配任意多个(包括 0 个)字符
_ 匹配严格的一个任意字符NULL 的查询:IS [NOT] NULL
与null的相关操作结果还是努力了,所以要查找语文成绩为空的学生信息,按如下方式无法查询到结果
有<=>、is null这两种方式来判别是否为null
2.8 分页查询
如果查询到的结果数较多,我们就需要按照上图的方式来进行分页展示。
在sql中利用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;
如下显示查询结果的前三条
从下标为3开始,往后查三条
在之前我们提到select*from
是危险操作,所以我们可以通过加where条件或者limit来更稳妥的限制。
3.修改(update)
语法:
update 表名 set 列名=值(或表达式),列名=值(或表达式)..... where 条件;
此处的where限制符合条件的进行修改。
案例:将孙悟空同学的数学成绩变更为 80 分
update exam_result set math =80 where name='孙悟空';
4.删除(delete)
语法:
delete from 表名 where 条件 [ORDER BY ...] [LIMIT ...];
删除孙悟空同学的考试成绩
delete from exam_result where name='孙悟空';
注意,如果不加where条件,就会把整个表的数据给删除。
5.导图总结
️最后的话️
总结不易,希望uu们不要吝啬你们的哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正
边栏推荐
- To sort out messy header files, I use include what you use
- 【Hot100】31. 下一个排列
- Flask 轻量web框架
- 用于图数据库的开源 PostgreSQL 扩展 AGE被宣布为 Apache 软件基金会顶级项目
- 曾经的“彩电大王”,退市前卖猪肉
- General environmental instructions for the project
- 【Hot100】31. Next spread
- 【HCIA持续更新】WLAN工作流程概述
- 国产数据库TiDB初体验:简单易用,快速上手
- You should know something about ci/cd
猜你喜欢
Open source PostgreSQL extension age for graph database was announced as the top-level project of Apache Software Foundation
wuzhicms代码审计
The money circle boss, who is richer than Li Ka Shing, has just bought a building in Saudi Arabia
To sort out messy header files, I use include what you use
7 RSA Cryptosystem
Superscalar processor design yaoyongbin Chapter 5 instruction set excerpt
MVC mode and three-tier architecture
The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
【HCIA持续更新】WLAN概述与基本概念
VSCode修改缩进不成功,一保存就缩进四个空格
随机推荐
Win32 API 访问路由的加密网页
【每日一题】556. 下一个更大元素 III
2022 national CMMI certification subsidy policy | Changxu consulting
With an annual income of more than 8 million, he has five full-time jobs. He still has time to play games
Achieve animation effect through event binding
Device interface analysis of the adapter of I2C subsystem (I2C dev.c file analysis)
The top half and bottom half of the interrupt are introduced and the implementation method (tasklet and work queue)
90后开始攒钱植发,又一个IPO来了
Cocoscreator event dispatch use
CocosCreator事件派發使用
gatling 之性能测试
股价大跌、市值缩水,奈雪推出虚拟股票,深陷擦边球争议
曾经的“彩电大王”,退市前卖猪肉
Russia arena data releases PostgreSQL based products
【209】go语言的学习思想
超标量处理器设计 姚永斌 第5章 指令集体系 摘录
Implementation of shell script replacement function
如何进行MDM的产品测试
[test development] software testing - Basics
估值900亿,超级芯片IPO来了