【MySql】数据库的CRUD(增删查改)

这篇具有很好参考价值的文章主要介绍了【MySql】数据库的CRUD(增删查改)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在最前面的话

        哈喽,宝子们,今天给大家带来的是MySql数据库的CRUD(增删改查),CRUD是数据库非常基础的部分,也是后端开发日常工作中最主要的一项工作,接下来让我们一起进入学习吧,感谢大家的支持!喜欢的话可以三连哦~~~

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

目录

 一、新增(Create)

1、普通插入

2、指定列插入

​3、多行插入

4、拓展知识

二、查询(Retrieve)

1、全列查询

2、指定列查询

3、查询字段为表达式

4、别名

5、去重(DISTINCT)

6、排序(ORDER BY)

针对表达式进行排序

指定多个列进行排序

7、条件查询(WHERE)

比较运算符

逻辑运算符

学习案例

基本查询

AND与OR查询

范围查询

模糊查询

8、分页查询:LIMIT

三、修改(Update) 

1、单列修改 

2、多列修改

四、删除(Delete)


 一、新增(Create)

1、普通插入

语法:

insert into 表名 values(值,值...);--此处的值要与列的个数与类型匹配

执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 2、指定列插入

语法:

insert into 表名(列名,列名...) values(值,值...);

执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql
3、多行插入

语法:

insert into 表名 values(值,值...),(值,值...),...;

 执行上述SQL语句后,运行结果如下所示: 

 【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

        当多行需要数据插入的时候,多行插入相比于单行插入在速度上要快上许多,为什么这么说呢?因为我们mysql是一个客户端服务器结构的程序,当三行数据执行单行插入的时候就进行了三次网络交互,但是当三行数据执行多行插入的时候只进行了一次网络交互,因此多行插入速度更快。

三次网络交互:

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

一次网络交互:

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

4、拓展知识

时间日期如何插入? (以datetime类型为例)

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

二、查询(Retrieve)

先构造一张数据表:

-- 创建考试成绩表
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, 90),
    (4,'曹孟德', 82, 84, 67),
    (5,'刘玄德', 55.5, 85, 45),
    (6,'孙权', 70, 73, 78.5),
    (7,'宋公明', 75, 65, 30);
1、全列查询

把表中所有的行和列都查询出来。

语法:

selecr * from 表名--*表示“通配符”,可以代指所有的列

 执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 2、指定列查询

一个表的列数可能是非常多的,某个场景的操作下,只需要关注其中几个列

语法:

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

  执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

3、查询字段为表达式

        一边查询,一边进行计算。在查询的时候写做由列名构成的表达式,把这一列中所有的行都代入到表达式中参与运算(此处运算数据是临时数据)。

例如:想查询所有同学数学成绩都-10分的效果

select name,math-10 from exam_result;

 执行上述SQL语句后,运行结果如下所示: 

 【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 例如:计算每个同学的总成绩

select name,chinese+math+english from exam_result;

 执行上述SQL语句后,运行结果如下所示: 

 【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 综上,SQL在查询的时候,可以进行一些简单的统计操作。 

 4、别名

查询的时候给列/表达式指定别名(也可以给表指定别名)。

语法:

select 表达式 as 别名 from 表名 (as 别名);

  执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 5、去重(DISTINCT)

引用distinct修饰某个列/多个列,值相同的行只保留一个。

用例:

--去重前:
select  name,distinct math from exam_result;
--去重后:
select distinct name,distinct math from exam_result;

 执行上述SQL语句后,运行结果如下所示: 【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 6、排序(ORDER BY)

查询的时候使用order by修饰列把行进行排序。

语法:

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

注意:asc为升序,desc为降序,默认升序。

执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

针对表达式进行排序
select name,chinese+math+english as total from exam_result order by total asc;

 执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 指定多个列进行排序
select * from exam_result order by math,chinese asc;

  执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

order by指定的列,如果你select的时候没有把这一列查出来,也不影响使用排序

测试用例:

select name,math from exam_result order by chinese asc;

 执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

修改测试用例:

select name,math,chinese from exam_result order by chinese asc;

执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

 7、条件查询(WHERE)

指定具体条件,按照条件针对数据进行筛选。

语法:

select 列名 from 表名 where 条件;

筛选条件一般通过运算符来组成。

比较运算符
运算符 说明
>,>=,<,<= 大于,大于等于,小于,小于等于
=         比较相等,SQL没有“==”,NULL不安全。例如NULL=NULL 结果是NULL
<=> 比较相等,NULL安全,例如NULL<=>NULL的结果是TRUE(1)
!=,<> 不等于
BETWEEN a0 AND a1 范围匹配,[a0,a1],如果a0<=value<=a1,返回TRUE(1)
IN(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)
学习案例
  • 基本查询

查询英语不及格的同学及英语成绩 ( < 60)

select name,english from exam_result where english<60;

查询语文成绩好于英语成绩的同学

select name,chinese,english from exam_result where chinese>english;

查询总分在 200 分以下的同学

select name,chinese+math+english 
from exam_result 
where chinese+math+english<200;
  • 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;
  • 范围查询

BETWEEN ... AND...

查询语文成绩在 [80, 90] 分的同学及语文成绩

select name,chinese from exam_result where chinese between 80 and 90;

使用AND也可以实现

select name,chinese 
from exam_result 
where chinese >= 80 and chinese <=90;

IN

查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

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 math=99;
  • 模糊查询
  1. 孙%:查询以孙开头的

  2. %孙:查询以孙结尾的

  3. %孙%:查询包含孙的

% 匹配任意多个(包括 0 个)字符

select name from exam_result where name like '孙%';

_ 匹配严格的一个任意字符

select name from exam_result where name like '孙_';
8、分页查询:LIMIT

        其实使用select*这种方式查询是比较危险的,那么日常工作中我们如果需要保证一次查询,并且查询出来的数据准确的话,我们需要使用 分页查询,limit可以限制当前查询最多能查看几个结果。

用例:

select * from exam_result limit 3;

 执行上述SQL语句后,运行结果如下所示: 

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

此时显示出前三条,那么如果需要查看下面记录怎么显示,使用offset 偏移量 即可。

 用例:

select * from exam_result limit 3 offset 3;

 执行上述SQL语句后,运行结果如下所示:  

【MySql】数据库的CRUD(增删查改),数据库,MySql,Sql语言,数据库,mysql,sql

三、修改(Update) 

  语法:

update 表名 set 列名 = 值 ... (where 条件);
--此处的where限制具体要修改哪些数据
1、单列修改 

用例:

将孙悟空同学的数学成绩变更为 80 分

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

将总成绩倒数前三的 3 位同学的数学成绩加上 5 分

update exam_result set math=math+5 order by chinese+math+english limit 3;

将所有同学的语文成绩更新为原来的 0.5 倍

update exam_result set chinese = chinese*0.5;--update后面不加条件就是全列修改
 2、多列修改

用例:

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

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

将孙悟空同学的英语成绩变为原来的0.8倍,语文成绩变为原来的0.5倍

update exam_result 
set english = english*0.8,chinese = chinese*0.5 
where name = '孙悟空';

四、删除(Delete)

语法:

delete from 表名 (where 条件/order by/limit);
--根据括号内条件把符合的数据从表中删掉

用例:

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

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

删除整表数据

delete from exam_result;

拓展知识:这里的删除表delete和drop table不一样,前者只是删除表里的数据,表还在,后者则是把表的数据与表一起删除。


        希望各位读者阅读后都能有所收获,如果喜欢本篇博客的可以点赞+关注+收藏!!!同时也欢迎各位大神如果在阅读过程中发现文章有错误也可私信指正错误,我们下一篇博客再见~~~文章来源地址https://www.toymoban.com/news/detail-697955.html

到了这里,关于【MySql】数据库的CRUD(增删查改)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库预科与增删查改(CURD)

    1.分类 分为关系型数据库和非关系型数据库 关系型数据库对于数据库中数据的格式,要求比较严格(使用硬盘来存储数据) 非关系型数据库则相对不太严格,因此其功能相对于关系型数据库少一些,但是性能更高,因此更适应当前大数据分布式时代 关系型数据库的代表软件有Oracle

    2024年02月02日
    浏览(35)
  • java springboot整合Mongodb 对数据库集合进行增删查改操作

    下面 我们就来做 springboot 整合Mongodb的工作 我们终端打开 Mongodb 安装目录下的bin目录 然后执行 启动服务 然后 打开我们的 springboot 项目 在pom.xml 文件中 导入坐标 有了依赖之后 就还差配置 打开项目中的 application 配置文件 我这里用的 yml 格式 我们在上面 打个 mong 它就会弹出

    2024年01月18日
    浏览(51)
  • 【数据库】通过实例讲清楚,Mongodb的增删查改,分组查询,聚合查询aggregate

    目录 一.基础概念 二.数据库的管理 1.创建数据库 2.删除数据库 二.集合的管理 1.显示所有集合 2.创建集合 3.删除当前集合 4.向集合中插入元素 三.文档的管理 1.文档插入 2.文档的更新 3.文档的删除 4.文档查询 (1)查询基本语法: (2)查询table2集合下的所有文档 (3)查询t

    2024年02月10日
    浏览(42)
  • 通过Studio 3T对Mongodb进行 创建数据库/集合 增删查改集合文档操作

    首先 你需要安装Studio 3T 以及启动 Mongodb服务 具体可以参考我的文章 Studio 3T客户端连接Mongodb数据库服务 我们之前 通过 随便输切换是可以的 但除了这里能看到的 它们都仅存在于内存 我们右键顶部菜单 选择 添加数据库/创建数据库 这里 我们输入数据库名称 然后 点击OK 这样

    2024年02月01日
    浏览(60)
  • SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作

    上文 SSMP整合案例(2) Spring Boot整合Lombok简化实体类开发我们已经开发完了实体类 我们就可以做数据层了 目前来讲 数据层技术 使用了最大的自然是 MyBatis 但其实MyBatis-Plus在国内很多中小企业还是使用的挺多的 这次 我们主要是通过MyBatis-Plus和Druid来做这件事情 这两个工具的坐

    2024年02月09日
    浏览(42)
  • 【MySQL】——关系数据库标准语言SQL(大纲)

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年01月20日
    浏览(61)
  • MySQL数据库基础(五):SQL语言讲解

    文章目录 SQL语言讲解 一、SQL概述 二、SQL语句分类 1、DDL 2、DML 3、DQL 4、DCL 三、SQL基本语法 1、SQL语句可以单行或多行书写,以分号结尾 2、可使用空格和缩进来增强语句的可读性 3、MySQL数据库的SQL语句不区分大小写,建议使用大写  4、可以使用单行与多行注释 四、总

    2024年02月19日
    浏览(56)
  • Mysql-------SQL:DDL数据定义语言、DDM数据操作语言、DQL数据库查询语言、DQL数据控制语言

    SQL语言可以分为: DDL(Data Definition Language)语言:数据定义语言,用于 创建或更改数据库中的表、视图、索引等对象 DML(Data Manipulation Language)语言:数据操作语言,用来对 数据库表中的数据进行增删改查操作; DQL(Data Query Language)语言: 数据查询语言,用来查询数据库

    2024年02月13日
    浏览(75)
  • 【MySQL】数据表的增删查改

    C:Create增加 R:Retrieve查询 U:Update更新 D:Deleta删除 添加数据是对表进行添加数据的,表在数据库中,所以还是得先选中数据库,选中数据库还在进行一些表得操作 现在我们有一张 student 表,里面有两个属性分别为:id和name 接下来我们就给student这个表进行添加数据 选中数

    2024年02月04日
    浏览(61)
  • 【MySQL】:探秘主流关系型数据库管理系统及SQL语言

    🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 在现代信息技术领域中,数据库管理系统扮演着至关重要的角色。本文将介绍数据库、数据库管理系统和SQL等概念,并深入探讨主流的关系型数据库管理系统以及关系型数据库的数据模

    2024年01月20日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包