【MySQL】数据表的增删查改

news2024/12/23 18:01:19

1、CRUD的解释

  • C:Create增加

  • R:Retrieve查询

  • U:Update更新

  • D:Deleta删除

2、添加数据

2.1 添加一条记录

添加数据是对表进行添加数据的,表在数据库中,所以还是得先选中数据库,选中数据库还在进行一些表得操作

现在我们有一张 student 表,里面有两个属性分别为:id和name

接下来我们就给student这个表进行添加数据

选中数据库

对表进行添加一行数据:insert into 表名 values(列,列,......);

注:

  • 在SQL中,单引号和双引号都表示字符串,SQL没有字符类型,只有字符串类型

  • SQL中得符号都是英文状态下的

  • values括号中的内容,个数和类型都要和表的结构匹配

2.2 添加指定列的数据

首先我们来看student表的结构

如果我们只对一个列进行添加数据,那么另一个列默认为NULL

选中数据库

对表进行添加指定列的数据:insert into 表名 (列名) values (数据);

添加完后我们可以通过查询表看表里面内容

注:如果相对多个指定列进行添加元素,用逗号分隔即可

2.3 添加多条记录

选中数据库

对表进行添加多条记录:insert into 表名 values (列,列,......), (列,列,......), ......;

添加完后我们也可以通过查询表看表里面内容

一次插入多条数据和一条一条的插入数据,哪个效率更高呢?

答:当然是一次插入多条数据的效率高,因为 MySQL 是一个“客户端服务器”结构的程序,每次插入数据的时候都要通过网络访问、发起网络请求和返回网络响应,数据库服务器把数据保存在硬盘上每次都要访问硬盘,这些都有一定的时间开销,所有一次插入多条数据比一条一条插入数据的效率要高

3、查询数据

在数据库中没有查看整张表的操作,只有对表进行查询的操作

只要对表进行增删改操作,一般都会用查询看对表的增删改操作是否成功

查询操作不仅仅可以对指定条件的数据进行查看操作,还可以通过查询查看整张表

3.1 全列查询

全列查询就是查看整张表的数据

选中数据库

查询整张数据表:select * from 数据表

注:*是通配符,代表所有的列

当表中数据非常多的时候,建议不用全列查询。因为服务器中存了很多的数据,此处的查询操作就会遍历所有的数据,把数据从硬盘中读取处理,通过网卡来进行发送。如果数据量非常大,那么就容易把硬盘IO吃满或者把网络带宽吃满!此时当有用户想要访问这个服务器,可能就会因为io和带宽吃满了,而无法正常访问

3.2 指定列查询

指定列查询就是查询指定的列

选中数据库

指定列查询:select 列名 from student;

注:当查询多个列时,列名用逗号分隔

3.3 查询列为“表达式”

查询列为表达式就是对列进行一个简单的运算

假设我们现在有个分数表score:

现在我们就对这个表进行查询列为表达式

选中数据库

列为表达式的查询:select 表达式列名 from 表;

注:进行表达式查询的时候,查询的结果只不过是一个“临时表”,这个临时表不会写入到硬盘中,所以当我们进行表达式查询的时候,不必担心原来的表会被改变

3.4 给查询结果的列指定别名

当采用列为表达式的查询的时候,默认列名为表达式

列名为表达式的时候,就会造成列名不美观,为了让列名美观就可以指定别名

选中数据库

方法一:

给查询结果的列指定别名:select 表达式列名 别名 from 表名;

方法一是将表达式列名和别名用空格进行分隔的,这样写别名,容易看错

方法二:

给查询结果的列指定别名:select 表达式列名 as 别名 from 表名;

方法二是将表达式列名和别名用as隔开,这样就更清晰,不容易看错。虽然可以将 as 省略变成方法一的格式,但是不推荐

3.5 对查询的相同数据进行去重

去重就是把有重复的记录,合并成一个

有一个 score 成绩表

我们现在对 score这个表进行查询姓名这一列

大家可以看到姓名查询的时候,有两个姓名为赵六。但是我们现在只想显示一个赵六,此时就可以用到去重

选中数据库

对查询结果去重:select distinct 列名 from 表名;

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

3.6 对查询结果进行排序

还是 score 这张表,表的内容如下:

3.6.1 升序排序

选中数据库

对查询结果进行升序排序:select 列名 from 表名 order by 列名 asc;

asc 是升序排序,当不写 asc 的时候默认也是升序排序

3.6.2 降序排序

选中数据库

对查询结果进行降序排序:select 列名 from 表名 order by 列名 desc;

desc 降序排序

desc 不是查看表的结构嘛,为什么有可以用作降序排序?

答:这个纯属巧合,一个是 describe 的缩写,一个是 descend 的缩写

注:如果排序的列中有 NULL,则将 NULL 视为“最小值”

3.6.3 针对表达式列名的别名进行排序

选中数据库

针对表达式列名的别名进行排序:select 表达式列名 as 别名 from 表名 order by 别名 asc/desc;

注:SQL中 NULL 和任何值进行运算结果还是 NULL

3.6.4 采用多个列进行排序

选中数据库

多个列进行排序:select * from 表名 order by 列名 asc/desc,列名 asc/desc;

当采用多个列进行排序的时候,先以第一个列为准,如果第一个列值相同,再比较第二个列

3.7 条件查询

条件查询就是针对查询结果,按照一定的条件进行筛选

3.7.1 运算符

比较运算符:

运算符

说明

>,>=,<,<=

大于,大于等于,小于,小于等于

=

等于,NULL不安全,例如:NULL=NULL结果是NULL

<=>

等于,NULL安全,例如:NULL<=>NULL的结果是TRUE

!=,<>

不等于

between a0 and a1

范围匹配,[a0,a1],如果a0<=value<=a1,返回TRUE

in(option,...)

如果是option中的任意一个,返回TRUE

is null

是NULL

is nut null

不是NULL

like

模糊匹配,%表示任意多个(包括0个)任意字符,表示任意一个字符

逻辑运算符:

运算符

说明

and

多个条件必须都为TRUE,结果才为TRUE

or

任意一个条件为欸TRUE,结果才为TRUE

not

条件为TRUE,结果为FALSE

注:

  • where 条件可以使用表达式,但是不能使用别名

  • and 的优先级高于or,再同时使用时,需要使用小括号包裹优先执行的部分

  • TRUE可以用 1 表示,FALSE可以用 0表示

3.7.2基本查询

现在有一张 score 表:

现在我们需要查询language语文成绩低于90分的同学

选中数据库

基本查询:select * from 表名 where 列名 < 值;

假设我们现在需要查询三门成绩总和小于270的同学

选中数据库

基本查询:select * from 表名 where 表达式 < 270;

3.7.3 and 和 or

1、and

and 是条件都成立的情况下,结果才为true

现在我们查询 language 和english成绩都在90分以上的同学

选中数据库

and 条件查询:select * from 表名 where 列名 > 值 and 列名 > 值;

2、or

or 表达式只要有一个成立,结果就为 true

查询mathematics和english只要有一门大于90的同学

选中数据库

or条件查询: select * from 表名 where 列名 > 值 or 列名 > 值;

3.7.4 范围查询

  1. between ... and ...

between a0 and a1:表示查询范围在 [a0,a1] 这个区间内

假设我们现在查询mathematics成绩在80~90内的同学信息

选中数据库

范围查询:select * from 表名 where 列名 between 值 and 值;

  1. in

in(值,...):当数据和in括号里的值相同时,则为true

现在有一张学生表:

现在查询年龄成绩为 16,19,23的同学信息

选中数据库

范围查询: select * from 表名 where 列名 in(值,值,...);

3.7.5 模糊查询

%:匹配任意0个或多个字符

_:匹配一个任意字符

我们现在有这样一张student表:

现在我们要查询所有姓赵的同学,因为我们不知道姓赵的同学名有几个字,所有此时就需要用 % 去匹配零个或多个字符

选中数据库

模糊查询(%):select * from 表名 where 列名 like '赵%';

如果我们现在要查询姓赵,名只有一个字的,此时可以用_来进行匹配

选中数据库

模糊查询(_):select * from 表名 where 列名 like '赵_';

查询姓赵,名只有两个字的

选中数据库

模糊查询(_):select * from 表名 where 列名 like '赵__';

3.8 分页查询

分页查询是采用 limit 来实现的,通过这个分页查询可以先至查询结果的数量

选中数据库

分页查询:select * from 表名 limit 值;

limit 后面的值,表示这次查询最大结果的数量

搭配 offset 就可以指定从第几条开始进行筛选了,offset 的值从0开始计算

选中数据库

分页查询:select * from 表名 limit 值 offset 值;

这个查询表示从第二个开始向后查询三个数据

因为 offset 的值是从 0 开始计算的,所有第一项是0,第二项是 1,...

4、修改数据

上述的条件查询不仅仅可以搭配 select 使用,还可以搭配 updata/delete使用,对应的条件的用法,也是一样的

现在有一张student表:

现在我们要将赵小六的名字改为赵小七

选中数据库

修改数据:update 表名 set 列名 = 值 where 条件;

接下来我们就通过查询表,看看赵小六是否改为了赵小七

修改操作是会修改表里面的内容的,修改完成之后就会持久生效

updata修改多个列时,多个列之间用逗号个隔开,如:update 表名 set 列名 = 值,列名 = 值 where 条件;

update 还可以搭配 order by 和 limit 等子句来进行使用

5、删除数据

现在我们有一张student表:

现在我们要将这张表里面的赵小七这一行给删除

选中数据库

删除数据:delete from 表名 where 条件;

6、总结

插入 insert:

  • 插入一行:insert into 表名 values (值,值,值,...);

  • 插入指定列:insert into 表名 (列名,列名,列名,...) values (值,值,值,...);

  • 插入多行:insert into 表名 values (值,值,值,...),(值,值,值,...),(值,值,值,...),......;

查询 select:

  • 全列查询:select * from 表名;

  • 指定列查询:select 列名 from 表名;

  • 带表达式的查询:select 表达式 from 表名;

  • 带别名的查询:select 列名/表达式 as 别名 from 表名;

  • 去重查询:select distinct 列名 from 表名;

  • 排序查询:select 列名 from 表名 order by 列名/表达式/别名 asc/desc;

  • 条件查询:select 列名 from 表名 where 条件;

修改update:

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

删除 delete:

  • delete from 表名 where 条件;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F429移植microPython笔记

目录 一、microPython下载。二、安装开发环境。三、编译开发板源码。四、下载验证。 一、microPython下载。 https://micropython.org/download/官网 下载后放在linux中。 解压命令&#xff1a; tar -xvf micropython-1.19.1.tar.xz 二、安装开发环境。 sudo apt-get inst…

MUSIC算法仿真

DOA波达方向估计 DOA&#xff08;Direction Of Arrival&#xff09;波达方向是指通过阵列信号处理来估计来波的方向&#xff0c;这里的信源可能是多个&#xff0c;角度也有多个。DOA技术主要有ARMA谱分析、最大似然法、熵谱分析法和特征分解法&#xff0c;特征分解法主要有MUS…

HTML+CSS+JS 学习笔记(四)———jQuery

&#x1f331;博客主页&#xff1a;大寄一场. &#x1f331;系列专栏&#xff1a;前端 &#x1f331;往期回顾&#xff1a; &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注​​ 目录 jQuery 基础 jQuery 概述 下载与配置jQuery 2. 配置jQuery jQuery 选…

数据库管理-第七十期 自己?自己(20230425)

数据库管理 2023-04-25 第七十期 自己&#xff1f;自己1 自己吓自己2 自己坑自己3 自己挺自己4 自己懵自己总结 第七十期 自己&#xff1f;自己 来到70了&#xff0c;最近有点卷&#xff0c;写的稍微多了些。 吐槽一下五一调休&#xff0c;周末砍一天&#xff0c;连6天&#x…

重学Java第一篇——数组

本片博客主要讲述了以下内容&#xff1a; 1、 一维数组和二维数组的创建和初始化方式&#xff1b; 2、数组的遍历和赋值 3、java.util.Arrays的常用方法 4、数组在内存中的分布&#xff08;图示&#xff09; 创建数组和初始化 type[] arr_name;//方式一 type arr_name[];//方式…

一家传统制造企业的上云之旅,怎样成为了数字化转型典范?

众所周知&#xff0c;中国是一个制造业大国。在想要上云以及正在上云的企业当中&#xff0c;传统制造企业也占据了相当大的比例。 那么这类企业在实施数字化转型的时候&#xff0c;应该如何着手&#xff1f;我们不妨来看看一家传统制造企业的现身说法。 国茂股份的数字化转型诉…

云原生-如何部署k8s集群与部署sms集群

阿里云开通三台云服务器实例&#xff0c;&#xff08;同一个vpc下&#xff09;&#xff0c;配置安全组入规则&#xff0c;加入80端口 ssh登录三台云服务器 在三台云服务器上部署容器环境&#xff08;安装docker&#xff09;&#xff08;https://www.yuque.com/leifengyang/oncl…

Springboot Mybatis使用pageHelper实现分页查询

以下介绍实战中数据库框架使用的是mybatis&#xff0c;对整合mybatis此处不做介绍。 使用pageHelper实现分页查询其实非常简单&#xff0c;共两步&#xff1a; 一、导入依赖&#xff1b; 二、添加配置&#xff1b; 那么开始&#xff0c; 第一步&#xff1a; pom.xml添加依…

工具链和其他-超级好用的web调试工具whistle

目录 whistle介绍 整体结构 能力 规则 6个使用场景示例 1.修改Host 2.代理 3.替换文件&#xff08;线上报错时&#xff09; 4.替换UA 5.远程调试 6.JS注入 互动 whistle介绍 整体结构 安装&#xff1a; npm install whistle -g cli&#xff1a;whistle help 启动…

前端系列第10集-实战篇

用户体验&#xff1a;性能&#xff0c;交互方式&#xff0c;骨架屏&#xff0c;反馈&#xff0c;需求分析等 组件库&#xff1a;通用表单&#xff0c;表格&#xff0c;弹窗&#xff0c;组件库设计&#xff0c;表单等 项目质量&#xff1a;单元测试&#xff0c;规范&#xff0c;…

mac十大必备软件排行榜 mac垃圾清理软件哪个好

刚拿到全新的mac电脑却不知道该怎么使用&#xff1f;首先应该装什么软件呢&#xff1f;如果你有同样的疑惑&#xff0c;今天这篇文章一定不要错过。接下来小编为大家介绍mac十大必备软件排行榜&#xff0c;以及mac垃圾清理软件哪个好。 一、mac十大必备软件排行榜 1.CleanMyM…

权限提升:AT || SC || PS 提权.(本地权限提升)

权限提升&#xff1a;AT || SC || PS 提权 权限提升简称提权&#xff0c;由于操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;比如通过 Web 漏洞拿到的是 Web 进程的权限&#xff0c;往往 Web 服务都是以一个权限很低的账号启动的&#xff0c;因此通…

电能计量管理系统在煤矿上的应用

摘要&#xff1a;随着煤矿供电系统管、控一体化的发展需要&#xff0c;本文提出了一种基于矿井光纤网络构成的煤矿电参数计量系统&#xff0c;该系统具有实现变电所各类开关、动力设备的用电高精度计量&#xff1b;远程实时监测各路电参数&#xff1b;远程抄表&#xff1b;远程…

Aspose.Pdf使用教程:在PDF文件中添加水印

Aspose.PDF 是一款高级PDF处理API&#xff0c;可以在跨平台应用程序中轻松生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现&#xff0c;保护和打印文档。无需使用Adobe Acrobat。此外&#xff0c;API提供压缩选项&#xff0c;表创建和处理&#xff0c;图形和图像功能&am…

Windows环境下实现设计模式——模板方法模式(JAVA版)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下Windows环境下如何编程实现模板方法模式&#xff08;设计模式&#xff09;。 不知道大家有没有这样的感觉&#xff0c;看了一大堆编程和设计模式的书&#xff0c;却还是很难理解设计模式&#x…

STM32驱动SG90舵机

STM32驱动SG90舵机 关于SG90舵机SG90转动角度与占空比的关系驱动SG90舵机代码①确定控制引脚②写代码 SG90舵机正常驱动现象总结 关于SG90舵机 SG90是一种小型伺服电机&#xff0c;通常用于模型制作和小型机械应用中: 问题答案SG90的工作电压是多少SG90的工作电压通常为3V至7.…

QT笔记——QtPropertyBrowser的使用

上一节&#xff0c;我们将了如何去配置QtPropertyBrowser 本节&#xff0c;我们将说明 如何 去 使用QtPropertyBrowser 这个属性类的一些基本知识 简单的几种用法&#xff1a; 首先&#xff1a; 我们需要创建一个Widget 提升一个类 为 QtTreePropertyBrowser .h文件 QtVariant…

git -团队开发 版本控制

文章目录 Git的概念Git的安装过程Git结构交互方式初始化本地仓库Git常用命令add和commit命令status命令log命令log命令2reset命令hard参数/mixed参数/soft参数 删除文件找回本地库删除的文件找回暂存区删除的文件 diff命令 分支操作分支冲突问题&#xff0c;如何解决冲突题 Git…

2023年的深度学习入门指南(9) - Triton

2023年的深度学习入门指南(9) - Triton 上一篇我们学习了如何用CUDA进行编程。 下面我们将介绍几种深度学习GPU编程的优化方法。 第一种我们称之为多面体编译器。我们知道&#xff0c;在传统的IR&#xff0c;比如LLVM-IR中&#xff0c;使用条件分支来编码控制流信息。这种相对…

Find My资讯|美国苹果AirTag市场大涨,助推Find My技术的发展

根据市场调查机构 Circana公布的最新统计数据&#xff0c;在苹果 AirTag 的助推下&#xff0c;美国市场物品追踪器市场快速发展。 报告称 AirTag 等物品追踪器已经成为旅行者的必备品&#xff0c;今年 1 月和 2 月期间&#xff0c;物品追踪器的销售额同比增长了 82%&#xff…