MySQL—表的增删改查

news/2024/5/6 14:26:29/文章来源:https://blog.csdn.net/weixin_64181464/article/details/127336636

MySQL—表的增删改查

  • 一、Create
    • 1.1、单行数据 + 全列插入
    • 1.2、多行数据 + 指定列插入
    • 1.3、插入否则更新
    • 1.4 替换
  • 二、Retrieve
    • 2.1、全列查询
    • 2.2、指定列查询
    • 2.3、查询字段为表达式
    • 2.4、为查询结果指定别名
    • 2.5 结果去重
    • 2.6 WHERE 条件
      • >, >=, <, <=,=
    • 2.7、结果排序
    • 2.8、筛选分页结果
  • 三、Update
  • 四、 Delete
    • 4.1、Delete删除整张表数据
    • 4.2、截断表

CRUD :

Create(创建), Retrieve(读取),Update(更新),Delete(删除)

一、Create

语法:

INSERT [INTO] table_name
[(column [, column] …)]
VALUES (value_list) [, (value_list)] …
value_list: value, [, value] …

创建表:
在这里插入图片描述

1.1、单行数据 + 全列插入

在这里插入图片描述

1.2、多行数据 + 指定列插入

单行数据+指定列插入:
在这里插入图片描述

多行数据+指定列插入:

在这里插入图片描述

1.3、插入否则更新

由于 主键 或者 唯一键 对应的值已经存在而导致插入失败

可以选择性的进行同步更新操作 语法:

INSERT … ON DUPLICATE KEY UPDATE
column = value [, column = value] …

在这里插入图片描述

1.4 替换

主键 或者 唯一键 没有冲突,则直接插入;
主键 或者 唯一键 如果冲突,则删除后再插入

在这里插入图片描述

多个信息冲突时:

在这里插入图片描述

二、Retrieve

语法:

SELECT
[DISTINCT] {* | {column [, column] …}
[FROM table_name]
[WHERE …]
[ORDER BY column [ASC | DESC], …]
LIMIT …

2.1、全列查询

通常情况下不建议使用 * 进行全列查询

  1. 查询的列越多,意味着需要传输的数据量越大;
  2. 可能会影响到索引的使用。(索引待后面课程讲解)

在这里插入图片描述

2.2、指定列查询

指定列的顺序不需要按定义表的顺序来

在这里插入图片描述

2.3、查询字段为表达式

表达式不包含字段

在这里插入图片描述

表达式包含一个字段

在这里插入图片描述

表达式包含多个字段

在这里插入图片描述

2.4、为查询结果指定别名

语法:

SELECT column [AS] alias_name […] FROM table_name;

在这里插入图片描述

2.5 结果去重

select distinct 列名 from 表名;

在这里插入图片描述

没有去重,因为ID这一列不重复,去重必须要求一行内容都重复。

在这里插入图片描述

2.6 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)

>, >=, <, <=,=

在这里插入图片描述

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

直接=NULL无法找到(不进行任何数值运算)

在这里插入图片描述

想找到空字段必须:
在这里插入图片描述

NOT:条件为 TRUE(1),结果为 FALSE(0)
如上图:取反

AND :语法:
多个条件必须都为 TRUE(1),结果才是 TRUE(1)

BETWEEN a0 AND a1
范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)

在这里插入图片描述

OR: 任意一个条件为 TRUE(1), 结果为 TRUE(1)

在这里插入图片描述

IN (option, …):如果是 option 中的任意一个,返回 TRUE(1)

在这里插入图片描述

LIKE:模糊匹配

% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

在这里插入图片描述

where可以用别名进行查找嘛?

在这里插入图片描述
我们发现并不可以,为什么,这里的where语句中,无法使用别名呢?

因为我们需要先按照条件进行筛选我们的数据再按照要求计算数据
不先筛选出我们需要的数据,计算出来的数据毫无意义。

在这里插入图片描述

2.7、结果排序

语法:

– ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC
SELECT … FROM table_name [WHERE …]
ORDER BY column [ASC|DESC], […];

注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

在这里插入图片描述

2.8、筛选分页结果

语法:

– 起始下标为 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;

建议:对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死

在这里插入图片描述

在这里插入图片描述

三、Update

语法:

UPDATE table_name SET column = expr [, column = expr …]
[WHERE …] [ORDER BY …] [LIMIT …]

对查询到的结果进行列值更新

在这里插入图片描述

四、 Delete

语法:

DELETE FROM table_name [WHERE …] [ORDER BY …] [LIMIT …]

在这里插入图片描述

4.1、Delete删除整张表数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.2、截断表

语法:

TRUNCATE [TABLE] table_name

注意:这个操作慎用

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚;
  3. 会重置 AUTO_INCREMENT 项

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式锁(Distributed Lock)理论介绍

在多线程环境中&#xff0c;线程之间通常使用互斥锁实现共享资源的独占访问。在多进程环境&#xff0c;特别是分布式环境&#xff0c;常使用分布式锁来实现共享资源的独占访问。简单来说&#xff0c;分布式锁就是指在分布式环境下&#xff0c;通过加解锁实现多节点对共享资源的…

Day2: 正原电子 imx交叉编译环境搭建

imx交叉编译环境搭建 资源下载 https://atk-imx6ull.coding.net/public/imx6ull/05_Tools/git/files/master/01%E3%80%81%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E5%99%A8 正点原子提供两种交叉编译工具链。这两种交叉编译工具链解释如下图。 第一种 Poky 编译器是Yocto 项…

Entity Framework教程-Entity Framework-模型关系(Model Relationships)

更新记录 转载请注明出处: 2022年10月17日 发布。 2022年10月10日 从笔记迁移到博客。配置实体关系的方式 使用数据特性 使用FluentAPI关系配置 使用关系属性 导航属性(navigation property) 导航属性说明 一个类型为主体实体或从属实体的属性 无论它是指它的父实体还是持有…

Spring源码分析(八)依赖注入源码解析1:autowire自动注入 和 @Autowired注入

Spring中到底有几种依赖注入的方式&#xff1f; 首先分两种&#xff1a; 手动注入自动注入 手动注入 在XML中定义Bean时&#xff0c;就是手动注入&#xff0c;因为是程序员手动给某个属性指定了值。 <bean name"userService" class"com.luban.service.U…

谷粒商城项目学-分布式基础

项目框架图 分布式基础概念 • 微服务、注册中心、配置中心、远程调用、Feign、网关 • 2、基础开发 • SpringBoot2.0、SpringCloud、Mybatis-Plus、Vue组件化、阿里云对象存储 • 3、环境 • Vagrant、Linux、Docker、MySQL、Redis、逆向工程&人人开源 • 4、开发规范 •…

【LeetCode48:旋转图像(附Java代码)】

旋转图像一、题目描述1.题目内容2.样例二、解决方案1.算法流程1&#xff09;分析2&#xff09;算法流程2.Java代码1&#xff09;核心代码2&#xff09;完整测试代码一、题目描述 1.题目内容 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必…

metamask api 请求 一般操作

参考文档&#xff1a;https://docs.metamask.io/guide/ 注意 metamask 必须是运行在站点之下的 web 页进行操作。 一、检查 metamask 是否安装 metamask 提供了 window.ethereum 供开发者对 metamask&#xff08;以太坊网络&#xff09; 进行交互&#xff0c;当然是需要你已…

DO、VO、BO、DTO、POJO

DO:Domain Object 即数据库表字段 在Java中一一对应关系(有人称它实体类) BO:Business Object 即业务对象,Service层向上传传输的对象。是多个DO的组合形式 VO:view oject 展示层对象,通过接口向前端输出展示的对象 DTO:Date Transfer Object 数据传输对象,controll…

《Linux下软件的管理》

【一】Linux软件包yum 什么是软件包&#xff1f; 在Linux下安装软件&#xff0c;一个通常的办法就是下载程序的源代码&#xff0c;并经行编译&#xff0c;既可得到可执行程序&#xff0c;但是这种办法属实是太麻烦了&#xff0c;因为下载要时间&#xff0c;编译要时间&#x…

根文件系统简介

根文件系统 根文件系统一般也叫做rootfs&#xff0c;那么什么叫根文件系统&#xff1f;看到“文件系统”这四个字&#xff0c;很多人&#xff0c;第一反应就是FATFS、FAT、EXT4、YAFFS和NTFS等这样的文件系统。在这里&#xff0c;根文件系统并不是FATFS这样的文件系统代码&…

SpringCloudAlibaba 通过Dubbo实现微服务之间的RPC调用

目录 一、创建模块化项目 二、公共api接口模块 三、服务提供者 四、服务调用者 五、测试 六、案例代码 在微服务架构中&#xff0c;微服务之间的调用一般我们有两种比较好的解决策略&#xff0c;分别是通过OpenFeign的基于http协议的传输的调用和基于RCP协议的Dubbo框架来…

基于SSM的餐饮管理系统的设计与实现

目 录 前 言 1 第1章 概述 2 1.1 选题背景及意义 2 1.2 技术概述 2 1.2.1 JSP技术概述 2 1.2.2 SpringSprngMVC介绍 3 1.2.3 MySQL数据库概述 3 1.2.4 Mybatis介绍 3 1.2.5 Maven介绍 3 1.3 开发平台介绍 4 1.3.1 Tomcat服务器 4 1.3.2 Eclipse简介 4 第2章 可行性研究 5 2.1 技…

Redis学习和笔记

Redis学习 作为一个程序员&#xff0c;你没有办法不学Redis redis是一个NoSql的&#xff08;远程字典服务的&#xff0c;key_value的数据库&#xff09; redis 能干嘛 内存存储&#xff0c;持久化&#xff0c;内存中是断电就失去&#xff0c;所有说持久化很重要效率高&#…

Linux Command mount 挂载

Linux Command mount 挂载 tags: 文件管理 文章目录Linux Command mount 挂载1. 简介2. 语法3. 退出状态4. 命令选项5. mount 挂载5.1 列出挂载的文件系统5.2 列出特定文件系统5.3 挂载文件系统5.4 使用 /etc/fstab 挂载文件系统5.5 挂载 USB 驱动器5.6 安装 CD-ROM5.7 挂载 I…

电路方案分析(十二)USB Type-C PD 移动电源参考设计方案

USB Type-C PD 移动电源参考设计方案 tips&#xff1a;TI设计方案参考分析&#xff1a;TI Designs&#xff1a;TIDA-01627 1.系统描述 2.系统概述 3.系统供电方案 4.测试数据 5.设计文件 6.关键术语 说明 此移动电源参考设计提供高度集成的 USB Type-C™电力传输 (PD) 解决…

Docter安装

上传安装包 docker-ce-18.06.0.ce-3.el7.x86_64.rpm 安装 yum install docker-ce-18.06.0.ce-3.el7.x86_64.rpm -y 启动docter systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker&#xff08;查看状态&#xff09; 查看doct…

浮点型在内存中的存储

目录 1、浮点数的存储方式 (1) 转化为二进制 (2) 转化为国际标准形式 (3) 使用国际标准形式存储 (4) 存储方式验证 2、从内存中取出浮点数需满足的规则 (1) E 不全为0 或 不全为1 (2) E 全为 0 (3) E 全为 1 浮点数在内存中存储的方式和整型不一样。所以我们在存储的…

2022/10语音识别大作业:基于HMM(隐马尔可夫模型)的Matlab孤立数字语音识别

别看了你要找的就在这。csdn上所有这方面的资源都是收费的&#xff0c;而且没有直接能用的好的&#xff0c;我的也是基于重金买来的两份结合起来做了三天的大修之后才能运行。所以这也不是一份免费分享。但是本文解决了其他资源没有解决的问题&#xff0c;所以50是一个公道的价…

C++——程序员的逼格神器-github

github的重要性&#xff1a; 网络时代的程序员必备。 github的作用&#xff1a; 版本管理多人协作开源共享 常用方案&#xff1a; gitTortoiseGitgithub [Tortoise&#xff0c;程序员常称其为小乌龟&#xff0c;小海龟] 安装配置步骤 1.注册 GitHub: Where the world bui…

JVM之对象的内存模型、创建过程、对象引用、生命周期

JVM之对象的内存模型、创建过程、对象引用、生命周期Java对象内存模型对象头实例数据对齐填充部分对象的创建类加载检查分配内存初始化零值设置对象头执行init方法引用计数法对象的引用强引用软引用弱引用虚引用对象的生命周期创建阶段(Created)应用阶段(In Use)不可见阶段(Inv…