MYSQL——数据更新

news2024/11/20 23:17:59

一、插入数据

1.插入完整的数据记录

在MYSQL中,使用SQL语句INSERT插入一条完整的记录,语法如下:

INSERT INTO 表名 [(字段名1[,...字段名n])]

VALUES (值1[...,值n]);

表名——用于指定要插入的数据的表名

字段名——用于指定需要插入数据的字段名。若插入的是一条完整的记录,且VALUES子句后各数值的顺序与表中列的定义顺序一致,则字段名表可以省略,直接采用INSERT表名VALUES(...)

VALUES子句——用于指定所要插入的数值。数值表中各数据的顺序要和字段名列表中各列的顺序相对应。

2.插入非完整的数据记录

在MYSQL中,使用SQL语句INSERT插入一条非完整的记录,语法如下:

INSERT INTO 表名 (字段名1[,...字段名n])

VALUES (值1[...,值n]);

字段名——用于指定需要插入数据的列名,若插入的是一条非完整的记录,字段名列表不能省略。

VALUES子句——用于指定所要插入的数值。数值表中各数据的顺序要和字段名列表中各列的顺序相对应。

插入的记录在未指定的字段上取空值。

3.插入多条数据记录

在MYSQL中,使用SQL语句INSERT插入多条数据记录,语法如下:

INSERT INTO 表名 [(字段名1[,...字段名n])] VALUES (值表1),

...

(值表n);

字段名——用于指定需要插入数据的字段名。若插入的是一条完整的记录,且VALUES子句后各数值的顺序与表中列的定义顺序一致,则字段名可以省略,直接采用INSERT表名VALUES即可,若插入的是非完整记录,字段不可以省略。

数值表中各数据的顺序要和字段名列表中各列的顺序相对应。

4.插入查询结果

在MYSQL中,使用SQL语句通过INSERT语句将一个表中查询的结果插入表中,从而实现表记录的复制功能。语法如下:

INSERT INTO 目标表名 [(字段名1[,...字段名n])]

SELECT (字段名1[,...字段名n])

FROM 源表名

[WHERE 条件表达式]

SELECT子句——返回的是一个从源表查询到满足指定条件(条件省略时,表示查询源表中所有记录)的结果集。

INSERT语句——表示将这个结果集插入目标表中。

目标表的字段名列表与SELECT子句字段名列表的字段个数必须相同,且对应的字段的数据类型应保持一致。

如果插入的是完整的记录,目标表的字段名列表可以省略。

结果集中的每行数据的字段数、字段的数据类型都必须与被操作的表完全一致。

5.采用REPACE语句插入数据记录

使用REPACE语句插入数据记录,有3种语法格式

语法格式1:

REPACE INTO 表名[(字段名1[,...字段名n])]

VALUES(值1[...,值n]);

语法格式2:

REPACE INTO 目标表名[(字段名1[,...字段名n])]

SELECT (字段名1[,...字段名n])

FROM 源表名

[WHERE 条件表达式]

语法格式3:

REPACE INTO 表名

SET 字段名1 = 数值1,...,字段名n = 值n;

使用REPACE语句向表插入新记录时,如果新记录的主键值或者唯一性约束的字段值与已有记录相同,则需先删除已有记录(注意:已有记录删除时也不能违背外码约束条件),再插入新记录。

使用REPACE的优势在于可以将DELETE和INSERT合二为一,形成一个原子操作,因此无须将DELET操作与INSERT操作置于事务中。

二、修改数据

1.修改特定数据记录

修改特定数据记录使用SQL语句UPDATE来实现,语法如下:

UPDATE 表名

SET 字段名1 = 值1 [,...字段名n = 值n]

WHERE 条件表达式;

表名——用于指定待修改数据的表名

SET子句——用于指定表中要修改的列名及其列值。列值可以是表达式

WHERE子句——用于修改满足条件

修改一行数据的多个列值时,set子句中每个字段值的修改使用逗号分开。

修改表记录时,需要注意表中的主码约束、外码约束以及唯一性等约束,修改的数据只有满足表定义中所以约束,才能修改成功。

2.修改所有数据记录

修改所有数据记录同样使用SQL语句UPDATE来实现,语法如下:

UPDATE 表名

SET 字段名1 = 值1 [,...字段名n = 值n]

[WHERE 条件表达式];

WHERE 条件表达式为可选项,用于限定表中要修改的记录。若要修改的是所有记录则不用指定。

三、删除数据

1.删除特定数据记录

删除特定数据记录使用SQL语句DELETE FROM来实现,语法如下:

DELETE FROM 表名

WHERE 条件表达式;

表名——用于指定要删除的表名

WHERE子句——用于指定满足条件的特定记录,为可选项

2.删除所有数据记录

删除所有数据记录同样使用SQL语句DELETE FROM来实现,语法如下:

DELETE FROM 表名

[WHERE 条件表达式];

WHERE 条件表达式为可选项,用于删除表中要特定的记录。若要删除的是所有记录则不用指定。

  • DELETE操作是可以在一个事务中回滚的,即如果执行过程中发生错误或用户选择回滚,已删除的记录可以恢复。
  • DELETE操作会激活表上的触发器。
  • DELETE不会影响自增列的计数器,除非删除的记录中包含了自增列的最大值,并且该值在后续操作中不再被使用。
  • 逐行删除数据,因此操作较慢,特别是当表中记录很多时。

3.采用TRUNCATE语句清除数据记录

在MYSQL中,删除数据除使用DELETE外,还可以使用TRUNCATE语句清空表中的数据记录,语法如下:

TRUNCATE [TABLE] 表名

TABLE关键字——可以省略。

TRUNCATE语句——用于快速删除一个表中的所有记录,但不会删除表本身及其结构。

无WHERE语句,原因在于TRUNCATE语句是清空表中所有记录,不能指定特定数据记录,所以不需要WHERE语句指定特定记录,

  • 在大多数数据库系统中,TRUNCATE操作不能在一个事务中进行回滚(即一旦执行,此操作立即生效且不可撤销,除非在特定的事务管理配置下)。
  • TRUNCATE通常不激活表上的触发器。
  • 执行TRUNCATE后,自增列(如果有的话)的计数器会被重置。
  • 不会逐行删除数据,而是直接删除数据页,并重新初始化该表的存储空间。这使得TRUNCATE操作比DELETE更快。

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

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

相关文章

Linux网络:守护进程

Linux网络:守护进程 会话进程组会话终端 守护进程setsiddaemon 在创建一个网络服务后,往往这个服务进程是一直运行的。但是对于大部分进程来说,如果退出终端,这个终端上创建的所有进程都会退出,这就导致进程的生命周期…

5.4.2-1 编写Java程序在HDFS上创建文件

本次实战涉及使用Java操作Hadoop HDFS,包括创建文件、判断文件存在性及异常处理。通过手动添加依赖、启动HDFS服务,成功在HDFS上创建和检查文件。进一步探索了文件操作的最佳实践,如检查文件存在性以避免重复创建,以及处理HDFS安全…

十六.SpringCloudAlibaba极简入门-整合Grpc代替OpenFeign

前言 他来了他来了,停了快2个月了终于又开始更新文章啦,这次带来的绝对是干货!!!。由于公司项目进行重构的时候考虑到,OpenFeign做为服务通信组件在高并发情况下有一定的性能瓶颈,所以将其替换…

【pytest】pytest注解使用指南

前言:在 pytest 测试框架中,注解(通常称为装饰器)用于为测试函数、类或方法提供额外的信息或元数据。这些装饰器可以影响测试的执行方式、报告方式以及测试的组织结构。pytest 提供了多种内置的装饰器,以及通过插件扩展…

百度AI人脸检测与对比

1.注册账号 打开网站 https://ai.baidu.com/ &#xff0c;注册百度账号并登录 2.创建应用 3.技术文档 https://ai.baidu.com/ai-doc/FACE/yk37c1u4t 4.Spring Boot简单集成测试 pom.xml 配置&#xff1a; <!--百度AI--> <dependency> <groupId>com.baidu.…

A040-基于springboot的智能停车计费系统设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

力扣 LeetCode 222. 完全二叉树的节点个数(Day7:二叉树)

解题思路&#xff1a; 解法一&#xff1a;普通二叉树解法 使用后序遍历 有一行的精简版代码但不利于理解采用的哪一种遍历方式 解法二&#xff1a;利用上完全二叉树的特点 一个指针left&#xff0c;一个指针right left一直向左遍历&#xff0c;right一直向右遍历&#xff…

hhdb数据库介绍(9-21)

计算节点参数说明 checkClusterBeforeDnSwitch 参数说明&#xff1a; PropertyValue参数值checkClusterBeforeDnSwitch是否可见否参数说明集群模式下触发数据节点高可用切换时&#xff0c;是否先判断集群所有成员正常再进行数据节点切换默认值falseReload是否生效是 参数设…

百度智能云千帆大模型平台引领企业创新增长

本文整理自百度世界大会 2024——「智能跃迁 产业加速」论坛的同名演讲。 更多大会演讲内容&#xff0c;请访问&#xff1a; https://baiduworld.baidu.com 首先&#xff0c;跟大家分享一张图&#xff0c;这个是我们目前大模型应用落地的场景分布。可以看到&#xff0c;大模型…

得物彩虹桥架构演进之路-负载均衡篇

文 / 新一 一、前言 一年一更的彩虹桥系列又来了&#xff0c;在前面两期我们分享了在稳定性和性能2个层面的一些演进&优化思路。近期我们针对彩虹桥 Proxy 负载均衡层面的架构做了一次升级&#xff0c;目前新架构已经部署完成&#xff0c;生产环境正在逐步升级中&#xf…

C++ lambda(匿名函数)捕获自己

今天写算法题时无意间遇到一种情况,我的深度优先遍历函数要在函数内调用自身,如果是普通函数没什么问题,但如果是 匿名函数 的话会有一些问题,甚至问ai,ai也没打上来,上网搜了半天,才找到这个的解答,故作此文 以费契那波数列为例 // 普通函数式 int fun(int pos) {if (pos …

解决Spring Boot整合Redis时的连接问题

前言 在使用Spring Boot整合Redis的过程中&#xff0c;经常会遇到连接问题&#xff0c;尤其是当Redis服务部署在远程服务器上时。 问题描述 当你尝试连接到Redis服务器时&#xff0c;可能会遇到以下错误&#xff1a; org.springframework.data.redis.connection.PoolExcept…

vue3 路由守卫

在Vue 3中&#xff0c;路由守卫是一种控制和管理路由跳转的机制。它允许你在执行导航前后进行一些逻辑处理&#xff0c;比如权限验证、数据预取等&#xff0c;从而增强应用的安全性和效率。路由守卫分为几种不同的类型&#xff0c;每种类型的守卫都有其特定的应用场景。 其实路…

向潜在安全信息和事件管理 SIEM 提供商提出的六个问题

收集和解读数据洞察以制定可用的解决方案是强大网络安全策略的基础。然而&#xff0c;组织正淹没在数据中&#xff0c;这使得这项任务变得复杂。 传统的安全信息和事件管理 ( SIEM ) 工具是组织尝试使用的一种方法&#xff0c;但由于成本、资源和可扩展性等几个原因&#xff0…

星海智算:Stable Diffusion3.5镜像教程

Stable Diffusion3.5 模型介绍 Stable Diffusion 3.5是由Stability AI推出的最新图像生成模型&#xff0c;它是Stable Diffusion系列中的一个重大升级。这个模型家族包括三个版本&#xff0c;分别是Stable Diffusion 3.5 Large、Stable Diffusion 3.5 Large Turbo和Stable Dif…

STM32电源管理—实现低功耗

注&#xff1a; 本文是学习野火的指南针开发板过程的学习笔记&#xff0c;可能有误&#xff0c;详细请看B站野火官方配套视频教程&#xff08;这个教程真的讲的很详细&#xff0c;请给官方三连吧&#xff09; 在响应绿色发展的同时&#xff0c;在很多应用场合中都对电子设备的功…

3D Gaussian Splatting 代码层理解之Part2

现在让我们来谈谈高斯分布。我们已经在Part1介绍了如何根据相机的位置获取 3D 点并将其转换为 2D。在本文中,我们将继续处理高斯泼溅的高斯部分,这里用到的是代码库 GitHub 中part2。 我们在这里要做的一个小改动是,我们将使用透视投影,它利用与上一篇文章中所示的内参矩阵…

【白话机器学习系列】白话 Softmax

文章目录 什么是 SoftmaxSoftmax 函数详解示例编程实现对矩阵应用 Softmax 函数 什么是 Softmax Softmax 函数&#xff0c;又称归一化指数函数&#xff0c;它使用指数函数将输入向量归一化为概率分布&#xff08;每一个元素的范围都在 ( 0 , 1 ) (0,1) (0,1) 之间&#xff0c;…

thinkphp6配置多应用项目及多域名访问路由app配置

这里写一写TP6下配置多应用。TP6默认是单应用模式&#xff08;单模块&#xff09;&#xff0c;而我们实际项目中往往是多应用的&#xff08;多个模块&#xff09;&#xff0c;所以在利用TP6是就需要进行配置&#xff0c;开启多应用模式。 1、安装ThinkPHP6 1.1安装ThinkPHP6.…

无人机航测技术算法概述!

一、核心技术 传感器技术&#xff1a; GPS/GLONASS&#xff1a;无人机通过卫星定位系统实现高精度的飞行控制和数据采集。 高清相机&#xff1a;用于拍摄地面图像&#xff0c;通过后续图像处理生成三维模型。 激光雷达&#xff08;LiDAR&#xff09;&#xff1a;通过激光扫…