首页 > 数据库 >mysql复习

mysql复习

时间:2024-08-01 09:51:39浏览次数:13  
标签:复习 删除 记录 mysql 示例 TRUNCATE 表中 DELETE

 

一、DELETE 和 TRUNCATE 的用法

  1. DELETE 用法

DELETE 命令用于从数据表中删除指定的记录。其基本语法如下:

DELETE FROM 表名 WHERE 条件;

示例:

DELETE FROM employees WHERE employee_id = 100;

上述示例将从 employees 表中删除 employee_id 为 100 的记录。

  1. TRUNCATE 用法

TRUNCATE 命令用于删除表中的所有数据,但不删除表结构。其基本语法如下:

TRUNCATE TABLE 表名;

示例:

TRUNCATE TABLE employees;

上述示例将删除 employees 表中的所有数据,但表结构仍然保留。

二、DELETE 和 TRUNCATE 的区别

  1. 删除范围

DELETE 可以删除指定条件的记录,而 TRUNCATE 只能删除表中的所有数据。

  1. 性能

TRUNCATE 通常比 DELETE 更快,因为它只需要清空数据,而不用逐行检查和删除记录。当需要删除表中的所有数据时,建议使用 TRUNCATE。

  1. 事务和日志

DELETE 是事务安全的,可以撤销。每个 DELETE 操作都会记录在日志中,以便在事务回滚时恢复数据。而 TRUNCATE 不是事务安全的,无法撤销,且不会记录在日志中。

  1. 触发器

当 DELETE 命令执行时,相关的触发器会被执行。而 TRUNCATE 命令不会触发任何触发器。

  1. 自增 ID

DELETE 删除记录后,表中的自增 ID 会继续累加,而 TRUNCATE 删除所有数据后,自增 ID 会重置为初始值。

总结:

在实际应用中,根据具体需求选择 DELETE 或 TRUNCATE。若需要删除指定记录或触发相关触发器,使用 DELETE;若需要快速清空表中所有数据,使用 TRUNCATE。在操作中注意数据的安全性和事务性,避免造成不必要的数据丢失。

标签:复习,删除,记录,mysql,示例,TRUNCATE,表中,DELETE
From: https://www.cnblogs.com/zhangbao3/p/18336018

相关文章

  • MySQL 中 Varchar(50) 和 varchar(500) 有什么区别?
    问题我们在设计表结构的时候,设计规范里面有一条如下规则:对于可变长度的字段,在满足条件的前提下,尽可能使用较短的变长字段长度。为什么这么规定,主要基于两个方面基于存储空间的考虑基于性能的考虑网上说Varchar(50)和varchar(500)存储空间上是一样的,真的是这样吗?基于性......
  • 【MySQL】事务 【上】{事务的版本支持 事务提交方式 实验结论 用户问题 如何理解隔离
    文章目录1.引入事务事务的版本支持事务提交方式实验结论用户问题2.隔离性如何理解隔离性隔离级别查看与设置隔离性4.四种隔离级别的场景读未提交读已提交可重复读串行化1.引入事务当客户端A检查还有一张票时,将票卖掉,还没有执行更新数据库的时候,客户端B检查了票数......
  • MYSQL 8.0 社区版的透明数据加密
    和MySQL5.0不同,MySQL8.0不再使用keyring插件,而是使用keyringcomponent。这包括:component_keyring_filecomponent_keyring_encrypted_filecomponent_keyring_ociMySQL企业版支持所有3个,MySQL社区版只支持第一个,即component_keyring_file。本文测试的也是这个。MySQL5......
  • 局域网这客户端连接MySQL数据库,含(CMT X进阶屏连接MySQL数据库)
    1:首先安装MySQL服务器,服务器端安装的是Serverversion:8.0.37MySQLCommunityServer-GPL版本2.修改MySQL配置文件允许远程访问找到并编辑MySQL配置文件my.ini,该文件通常位于C:\ProgramData\MySQL\MySQLServer<version>\my.ini。使用文本编辑器(VsCode)以管理员身份打开m......
  • MySQL5.7derived table &MySQL8.0derived_condition_pushdown
    随着MySQL版本的发展,优化器是越来越智能,优化器开关也越来越多,本文给大家分享一下MySQL对derivedtable的优化处理。何为derivedtable?这里我把它翻译成派生表,简单来讲,就是将from子句中出现的检索结果集当做一张表,比如from一个select构造的子查询,这个子查询就是一个派生表,from......
  • MySQL 学习笔记 进阶(锁 下,InnoDB引擎 上)
    锁 锁-表级锁-表锁介绍表级锁,每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM,InnoDB,BDB等存储引擎中。对于表级锁,主要分为以下三类:表锁元数据锁(metadatalock,MDL)意向锁表锁对于表锁,分为两类:表共享读锁(readlock)表独占写锁(write......
  • 基于北京市空气质量影响因素研究系统【城市可换爬虫获取、LSTM、Flask、Echarts、MySQ
    文章目录==有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主==研究背景国内外研究现状研究目的研究意义关键技术理论介绍数据采集数据分析与大屏设计大屏相关性分析LSTM模型训练系统集成展示总结每文一语有需要本项目的代码或文档以及全部资源,或者部......
  • MySQL优化器derived_merge
    衍生表的优化:合并|具化一、mysql优化器对于衍生表的优化处理可以从两方面进行:将衍生表合并到外部查询将衍生表具化为内部临时表1、示例1:SELECT * FROM (SELECT * FROMt1) ASderived_t1;衍生表 derived_t1合并处理后,实际执行的查询类似如下:SELECT......
  • Mysql按照范围区间创建分区表
    定义每一个分区仅包含在指定范围内的数据列。这样的分区方式就是范围分区。在Mysql的范围分区表定义中,分区范围需要连续并且不会有覆盖。定义范围分区表时,使用VALUESLESSTHAN操作符。在PARTITIONBYRANGE语法中,建立分区表指定分区时,每一个分区都是按顺序定义。使用时类似C......
  • MySQL基础20题(续前面的20题)
    写在前面今天继续前面的20题之后的练习,数据都是一样的,可以直接使用,来看看你的sql功底降了没。基础20题#1.查询每个员⼯的姓名、邮箱、职位名称以及所在部⻔名称。 SELECT CONCAT(last_name,first_name)as姓名, email, job_title, department_nameFROM employeese J......