MySQL常用增删改查操作(CRUD)

MySQL常用增删改查操作(CRUD)_第1张图片

⚡️前言⚡️

本篇文章主要介绍在MySQL数据库中常见的增删改查(CRUD)SQL语句操作。

博客主页: 【如风暖阳】
精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】
欢迎点赞 收藏留言评论 私信必回哟

本文由 【如风暖阳】 原创,首发于 CSDN

博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

博客中涉及源码及博主日常练习代码均已上传码云(gitee)、GitHub


内容导读

  • MySQL常用增删改查操作(CRUD)
    • 1.新增(create)
    • 2.查询(retrieve)
      • 2.1 全列查询
      • 2.2 指定列查询
      • 2.3 查询字段为表达式
      • 2.4 查询字段指定别名
      • 2.5 针对查询结果去重
      • 2.6 针对查询结果排序
      • 2.7 条件查询
      • 2.8 分页查询
    • 3.修改(update)
    • 4.删除(delete)
    • 5.导图总结

MySQL常用增删改查操作(CRUD)

1.新增(create)

语法:

insert into 表名 values (值,值);

案例:
创建学生表进行插入:

create table student(id int ,name varchar(50));
insert into student values (1,'李四');

MySQL常用增删改查操作(CRUD)_第2张图片
最下一行“1 row affected in 5 ms”表示有一行发生了改变。

指定列插入:

insert into student (name) values('张三');

MySQL常用增删改查操作(CRUD)_第3张图片
多行插入:

insert into student values (3,'王五'),(4,'赵六');

MySQL常用增删改查操作(CRUD)_第4张图片
一次插入N条记录要比一次插入一条分N次插入快很多。

插入时间
比如字段类型为时间类型,标准插入方式为:
‘YYYY-MM-DD HH:mm:ss’
‘2022-07-03 12:00:00’
比较时间,按照> = < 即可。

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 表名;

MySQL常用增删改查操作(CRUD)_第5张图片

2.2 指定列查询

这种相对于全列查询要高效很多,在查询时会显示告诉数据库要查询哪些列,数据库就会有针对性的返回数据了。

select 列名,列名...... from 表名;

MySQL常用增删改查操作(CRUD)_第6张图片

2.3 查询字段为表达式

在查询的同时进行一些运算操作(列和列之间)
例如,期望查询结果中的语文成绩比真实成绩高十分:
MySQL常用增删改查操作(CRUD)_第7张图片
查询每个同学的总分:
MySQL常用增删改查操作(CRUD)_第8张图片

2.4 查询字段指定别名

通过指定别名的方式防止得到的临时表列名太乱。
MySQL常用增删改查操作(CRUD)_第9张图片

2.5 针对查询结果去重

针对查询结果,把重复的记录抹去。

MySQL常用增删改查操作(CRUD)_第10张图片

如果是针对多个列进行去重,只有这多个列的值都相同时才会被视为重复

2.6 针对查询结果排序

select 列名..... from 表明 order by 列名 asc/desc;

针对数学成绩进行升序排序 asc为升序(默认为升序可以不写),desc为降序

MySQL常用增删改查操作(CRUD)_第11张图片

注意:

1.数据库记录中带NULL值的将被视为最小(在排序中会被视为最小值)

MySQL常用增删改查操作(CRUD)_第12张图片

2.排序也可依据别名或表达式来进行排序。

MySQL常用增删改查操作(CRUD)_第13张图片

3.指定多个列排序时,先根据第一个列进行排序,如果第一个列的值相同再按第二个列的结果排序,如下先按照数学排序,数学相同再按语文排序。
MySQL常用增删改查操作(CRUD)_第14张图片

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)

注:

  1. WHERE条件可以使用表达式,但不能使用别名。
  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

案例:

  • 基本查询:
    1.查询英语不及格同学的英语成绩
    MySQL常用增删改查操作(CRUD)_第15张图片
    2.查询语文成绩好于英语成绩的同学
    MySQL常用增删改查操作(CRUD)_第16张图片
    3.查询总分在200分以下的同学
    MySQL常用增删改查操作(CRUD)_第17张图片
    此处注意不能使用别名

  • AND与OR:
    1.查询语文成绩大于80分,且英语成绩大于80分的同学
    MySQL常用增删改查操作(CRUD)_第18张图片
    2.查询语文成绩大于80分,或英语成绩大于80分的同学
    MySQL常用增删改查操作(CRUD)_第19张图片
    3.观察AND 和 OR 的优先级
    and的优先级高于or,如果想打破优先级需要使用小括号()
    MySQL常用增删改查操作(CRUD)_第20张图片
    MySQL常用增删改查操作(CRUD)_第21张图片

  • 范围查询
    1.between …and…
    在编程领域里,大部分区间都是左闭右开,注意在SQL中是左右都闭合的区间
    查询语文成绩在 [80, 90] 分的同学及语文成绩
    MySQL常用增删改查操作(CRUD)_第22张图片
    使用and也可以实现
    MySQL常用增删改查操作(CRUD)_第23张图片
    2.in
    查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
    MySQL常用增删改查操作(CRUD)_第24张图片
    使用or也可以实现类似效果
    MySQL常用增删改查操作(CRUD)_第25张图片

  • 模糊查询:LIKE
    % 匹配任意多个(包括 0 个)字符
    _ 匹配严格的一个任意字符
    MySQL常用增删改查操作(CRUD)_第26张图片
    MySQL常用增删改查操作(CRUD)_第27张图片

  • NULL 的查询:IS [NOT] NULL
    与null的相关操作结果还是努力了,所以要查找语文成绩为空的学生信息,按如下方式无法查询到结果
    MySQL常用增删改查操作(CRUD)_第28张图片
    有<=>、is null这两种方式来判别是否为null
    MySQL常用增删改查操作(CRUD)_第29张图片
    MySQL常用增删改查操作(CRUD)_第30张图片

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;

如下显示查询结果的前三条

MySQL常用增删改查操作(CRUD)_第31张图片
从下标为3开始,往后查三条
MySQL常用增删改查操作(CRUD)_第32张图片
在之前我们提到select*from 是危险操作,所以我们可以通过加where条件或者limit来更稳妥的限制。

3.修改(update)

语法:

update 表名 set 列名=值(或表达式),列名=值(或表达式)..... where 条件;

此处的where限制符合条件的进行修改。
案例:将孙悟空同学的数学成绩变更为 80 分

update exam_result set math =80 where name='孙悟空';

MySQL常用增删改查操作(CRUD)_第33张图片

4.删除(delete)

语法:

delete from 表名 where 条件 [ORDER BY ...] [LIMIT ...];

删除孙悟空同学的考试成绩

delete from exam_result where name='孙悟空';

注意,如果不加where条件,就会把整个表的数据给删除。

5.导图总结

MySQL常用增删改查操作(CRUD)_第34张图片


⚡️最后的话⚡️

总结不易,希望uu们不要吝啬你们的哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正
在这里插入图片描述

你可能感兴趣的:(MySQL,mysql,java,数据库)