MySQL数据库 【增删改查】

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

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

目录

一、新增

 指定列插入

一次插入多个数据

二、查询

1、全列查询

2、指定列查询 

3、查询字段为表达式

4、查询的时候给列名/表达式 指定别名

5、查询时去重

6、排序查询

7、条件查询

8、模糊查询

9、空值查询

10、分页查询 

三、修改   

四、删除


 SQL 最核心的操作就是增删改查,作为一个后端开发,我们在未来的工作中最常遇见的场景也就是增删改查(CRUD)

一、新增

语法:

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

新增也就是网数据表中插入一条记录,语法中此处列出的这些值的数目和类型要和表的列相匹配。

我们现在先在java这个数据库中创建一个student表:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

然后再在这个表中插入数据

 MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 此时颜色对应的部分也就是我们前面所指的值和值对应

这里我们要注意一点:

SQL 中表示字符串使用 ' 或者 " 都行

也就是说在SQL中并没有“字符”类型

大部分没有字符类型的编程语言,都是允许 单引号 和 双引号 来表示字符串并且单双引号效果通常是等价的

 此外,如果我们要想能够正确的插入中文,必须保证在创建数据库的时候,指定 charset utf8

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

这样才能保证插入中文的时候不会进行报错。

 指定列插入

在进行数据的插入的时候,我们也可以对单独的某个列进行插入

语法;

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

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 使用括号( )来标识目前要针对哪些列进行插入,多个列名之间可以使用 ,  进行分割

后续values 里的列必须要和当前 ( ) 中的列的个数和类型都匹配


一次插入多个数据

在values 后面,可以有多个和( ),多个 ( ) 之间用 , 分割,每一组 ( )就是一条记录(也就是一行)

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

那么 问题来了,我们一次插入 3 条记录和分 3 次插入一条记录有什么区别呢?

我们要时刻牢记: MySql 是一个客户端服务器结构的程序!!!

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

那么哪种更好呢?

我们要知道:每一次网络交互,都是有一定的成本的!!

而第一种的成本更低。因此第一种是更优的选择。 


二、查询

查询语句能让我们看到表中包含的数据内容

1、全列查询

select *from 表名;

这个操作,就是查询出当前数据库中所有的行和所有的列

其中,* 是通配符,可以把它理解成斗地主中的“癞子”,* 就能够代指任意的列

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 那么上图就是全列查询的全部效果

那么我们前面也说了,MySQL是一个客户端服务器结构的程序,全列查询可以用下图来表示

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

select * 是一个非常危险的操作!!!

如果,当前select* 查询的这个表,里面的的数据非常非常多(比如,几十亿条....),这样的操作就会导致这个服务器一瞬间,硬盘的带宽和网卡的带宽都被吃满了!!!

这就会使服务器无法给外面的普通用户提供服务了此时服务器就像 “卡死” 了一样


2、指定列查询 

手动指定要查询到额某一列或者某几列 ,服务器返回的额结果就只包含想要的数据

语法:

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

我们现在重新创建一个表,将其命名为exam_result

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

先对其进行一次全列查询

 MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

再对其进行指定列查询,操作结果如下:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 数据库的增删改查,都是比较慢的,也是比较吃硬件资源的,因此我们尽量能省则省


3、查询字段为表达式

查询的同时可以进行计算

例如我们要查询所有同学,数学成绩加10分之后的效果,可以这样写:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 此处,我们看到的客户端中显示的结果,其实是一个“临时表”,select 操作不管怎么写,都不会影响到数据库服务器硬盘上存储的原始数据

SQL中四则运算只能针对数字进行!!!

但是也可以将两个列的数值,或者多个列之间的数值进行计算

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 这时,我们会发现,此时查询结果中临时表的列名和咱们当前表达式是一致的,这就导致了如果查询的表达式非常的复杂,就会导致列名也非常的复杂,不利于用户来阅读


4、查询的时候给列名/表达式 指定别名

语法:

select 列名 as 别名 from 表名;

此时,别名会最终显示在查询结果的临时表中

另外,as 这个关键字是可以省略的,但是我们不建议省略

最终的效果如下:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

SQL中。列名和表名都是可以起别名的,取名的方式,都是用as  


5、查询时去重

把重复的行去掉,只保留一份

语法:

select distinct 列名 from 表名;

我们现在先查询一下math 这一列的数组

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

此时会发现,98.0这个数值有两个,当我们现在进行查询时去重的操作之后,临时表中便只会显示一个98.0了

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 同样的,distinct 后面的列名,也可以是多个

当指定多个列的时候,则要求必须所有列的值都相同,才算 “重复”


6、排序查询

针对查询到的结果进行排序

还是那句话,MySql 是一个客户端-服务器结构的程序因此这里的排序也只是针对临时表进行的,对于数据库服务器上原始的数据并没有任何顺序上的影响

语法:

select 列名 from 表名 order by 列名;

排序的时候,依据order by 后面的那个列进行排序

举个例子,这个是是不排序之前临时表的顺序:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

按照英语成绩排序后升序排序的结果是这样的:

 MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 如果想要得到降序排序,则只需要在最后加上 desc 即可

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 如果 SQL 中,没有指定 order by,此时我们的代码中,就不应该依赖结果集合(临时表)的顺序!!!

MySQL并不承诺,这个不带order by 的查询结果是有一定的顺序的

order by 后面是可以接多个列的

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

这个顺序表示: 先针对数学进行排序,如果数学相同,再根据英语进行排序


7、条件查询

指定一个筛选条件,把符合条件的结果保留下来,不符合的就剔除掉

关系运算符:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

注意事项: 

有些列是可以不填的(不填就相当于是NULL)

NULL参与各种运算,运算的结果还是NULL

NULL = NULL             结果是false 

NULL <=> NULL         结果是true  

  逻辑运算符:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 示例1:查询英语不及格的同学的英语成绩

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 注意理解查询语句执行的过程:

1、服务器需要先遍历表中的每一个记录

2、针对当前记录,带入条件,看是否成立

3、如果条件成立,则这一条记录加入结果集,并返回给客户端

4、如果条件不成立,则这一条记录跳过

条件比较的时候,并不只是使用列名和常量比较,也可以使用列名和其它列名比较,例如

示例2:查询语文成绩大于英语成绩的同学

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 此外,条件查询也可以结合一些更复杂的表达式

示例3:查询总分小于200的同学

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 注意:当我们在条件中,尝试使用别名的时候,这个别名是不能被正确识别出来的!!!

MySQL 的 where 条件中,无法使用 列 的别名!!!


8、模糊查询

MySQL中提供的模糊查询,是相对比较简单的 :like

MySQL中提供了两个通配符:

%  匹配 0 个 或者 任意个 字符

_   匹配 1 个任意字符

 示例:查询姓孙的同学

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 示例:查询名字以孙结尾的同学

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

其实,MySQL进行 like 模糊查询是一个比较低效的操作,尤其是针对一些比较长的字符串

因此我们使用模糊查询的时候要慎重 


9、空值查询

除了之前讲过的 =  和 <=> 的区别之外,它们在使用方法上还有别的不同

<=> 可以用于两个列之间的比较

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database


10、分页查询 

分页查询:limit 

针对查询出来的结果,进行 截取,取出其中的一部分

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database                                                                                                                                                                  MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database                                                                                                                                                            这个操作中 limit 4 的意思是,一次查询,最多查询到4条记录

那么如果我们想查询到下一页的记录,则应该这样写:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database                                                                                                                                                            其中,limit 约束了结果中最多包含几条记录  ,offset 描述了当前的结果从哪一条开始算,也可以当做从下标为4 的记录开始获取


三、修改   

语法:

update 表名 set 列名 = 值 where 条件;

  进行修改的时候要明确一些重要信息:

1、改哪个表

2、改这个表的哪个列 / 哪个行,改成什么

3、改这个表的哪些行                                                                                                               

 示例:将孙悟空的数学成绩改成80分

我们可以看到,目前孙悟空的数学成绩是78分

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 那么接下来,我们对其进行 update 操作

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

注意:math = 80 此处的等号是赋值的意思,不再是比较相等了 

 经过上述的修改之后,我们再查询孙悟空的成绩

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

此时,其数学成绩已经成功被修改成了80

注意:此处的修改是修改MySQL 服务器保存在硬盘上的数据(持久生效的) 

 此外,update 也可以一次操作修改多个列

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

曹孟德本来的成绩如下:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 然后使用update 对其两列成绩进行修改

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 结果如下:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

此外,修改操作也可以搭配 order by 这样的排序操作 

示例:把总成绩倒数的3位同学,数学成绩加上30分

我们现在可以看到,总成绩倒数三名的同学是这三位:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

现在,我们要对它们的数学成绩进行加三十分的操作

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database 但是这个时候发生了报错,这是因为刘玄德的数学成绩此时是85,而此处设定的成绩是3位有效数字,如果再加30,那么就是四位有效数字了,所以这里我们选择只加10分

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

 然后我们便会发现刚才倒数的三位同学的数学成绩都加上了10分MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

由此得知: select 中支持的条件,排序,分页对于update来说,是同样生效的

update 可以理解成: 先查询,再修改

注意:如果我们在 update 操作的时候,没有加其它条件,会将所有的行都进行修改!!!


四、删除

delete 直接删除符合条件的行

语法:

delete from 表名 where 条件;

示例:删除孙悟空的考试成绩

删除前:

 MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

删除操作: 

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

删除后:

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

注意:删除是按照行来进行删除的,我们无法删除某些列 

如果先要删除列,可以通过update 把指定条件的行的指定列设为null

同样的,如果在delete 的时候,没有指定数据,就会将整张表的数据都删除掉

MySQL数据库 【增删改查】,Mysql,数据库,mysql,oracle,开发语言,database

效果和删除表差不多,但还是略有不同

delete from 删除之后,表还在,但是表里面的数据没有了

drop table 删除之后,表以及表里面的数据都没有了 文章来源地址https://www.toymoban.com/news/detail-595403.html

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

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

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

相关文章

  • 【MySql】数据库的增删改查

    本篇的主要目的:对于数据库如何去增加删除查询修改 主要细节在于选项问题,编码选项 说明: 大写的表示 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 查看当前用户数据库的列表show databases; 创建数据库create database db_name; 当

    2024年02月12日
    浏览(47)
  • MySQL数据库基础表格——增删改查(上)

    ♥️ 作者:小刘在C站 ♥️ 个人主页: 小刘主页 ♥️ 每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 树高千尺,落叶归根人生不易,人间真情 前言 不要太在乎别人对你的评价,做好自己个人,干好自己的事,走

    2024年02月05日
    浏览(44)
  • MySQL数据库,表的增删改查详细讲解

    目录 1.CRUD 2.增加数据 2.1创建数据 2.2插入数据 2.2.1单行插入 2.2.2多行插入 3.查找数据 3.1全列查询 3.2指定列查询 3.3查询字段为表达式 3.3.1表达式不包含字段 3.3.2表达式包含一个字段 3.3.3表达式包含多个字段  3.4起别名 3.5distinct(去重) 3.6order by(排序) 3.6.1某字段默认排序 3.6.2某字

    2023年04月14日
    浏览(43)
  • Python对MySQL数据库进行增删改查

    Python连接MySQL数据库后,可以使用SQL语句对数据库进行增删改查操作。以下是使用pymysql库实现Python对MySQL数据库进行增删改查的示例。 1. 连接MySQL数据库 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host=\\\'localhost\\\', user=\\\'root\\\', password=\\\'password\\\', database=\\\'test_db\\\') # 使用 cursor()

    2024年02月05日
    浏览(40)
  • 【PHP网页应用】MySQL数据库增删改查 基础版

    使用PHP编写一个简单的网页,实现对MySQL数据库的增删改和展示操作 页面实现在index.php,其中basic.php为没有css美化的原始人版本 函数实现在database.php 目录 功能基本实现版  CSS美化版 basicindex.php  index.php   database.php 代码讲解 我们来展示一下页面和操作示例。 运行网页,可

    2024年01月16日
    浏览(51)
  • MySQL | 数据库的管理和操作【表的增删改查】

    第一章:MySQL | 数据库的管理和操作(基本介绍) 第二章:MySQL | 数据库的基本操作和表的基本操作 第三章: MySQL | 数据库的表的增删改查 第四章:MySQL | 数据库的表的增删改查【进阶】【万字详解】 CRUD : Create, Retrieve,Update,Delete 新增数据 查询数据 修改数据 删除数据 注释:

    2024年02月08日
    浏览(54)
  • flask 框架中对 MySQL 数据库进行增删改查

    以下是一个简单的示例代码,可以在 Flask 中使用 SQLAlchemy 库来实现对 MySQL 数据库的增删改查: 在上面的示例代码中,我们定义了一个名为 User 的数据模型,然后在 Flask 中创建了五个路由,分别用于创建用户、获取所有用户、获取单个用户、更新用户和删除用户。在每个路由

    2024年02月12日
    浏览(41)
  • Python FastAPI 框架 操作Mysql数据库 增删改查

    2 比 1 更容易理解,可以先看2(单文件级别) FastAPI 可以使用任何您想要的关系型数据库。 在这里,让我们看一个使用着SQLAlchemy的示例。 您可以很容易地将SQLAlchemy支持任何数据库,像: PostgreSQL MySQL SQLite Oracle Microsoft SQL Server,等等其它数据库 在此示例中,我们将使用SQL

    2024年01月16日
    浏览(39)
  • 【MYSQL数据库的增删改查操作-超市管理系统】

    MYSQL数据库的增删改查 创建数据库 选择数据库 删除数据库 创建数据表 删除数据表 插入数据 更新数据 查找数据 以超市管理系统为例,包含员工表,库存表,仓库表 数据库:db_supermarket 数据表:s_employee #员工表;s_stock #库存表;s_storehouse #仓库表 插入数据之后生成表如下:

    2024年02月09日
    浏览(51)
  • 查询数据库空间(mysql和oracle)

    1.查看数据库表空间文件: 2.查看所有表空间的总容量: 3.查看数据库表空间使用率 4.1.查看表空间总大小、使用率、剩余空间 4.2.查看表空间使用率(包含temp临时表空间) 5.查看具体表的占用空间大小 1.更改表空间的dbf数据文件分配空间大小 2. 为表空间新增一个数据文件(表空间

    2024年02月05日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包