GaussDB数据库SQL系列:DROP TRUNCATE DELETE

news2025/1/19 20:41:42

目录

一、前言

二、GaussDB的 DROP & TRUNCATE & DELETE 简述

1、命令简述

2、命令比对

三、GaussDB的DROP TABLE命令及示例

1、功能描述

2、语法

3、示例

四、GaussDB的TRUNCATE命令及示例

1、功能描述

2、语法

3、示例

4、示例

五、GaussDB的DELETE命令及示例

1、功能描述

2、注意事项

3、语法

4、示例

六、应用场景

七、小结

一、前言

在数据库中,SQL作为一种常用的数据库编程语言,扮演着至关重要的角色。SQL不仅可以用于创建、修改和查询数据库,还可以通过DROP、DELETE和TRUNCATE等语句来删除数据。这些语句是SQL语言中的最常用的命令,且它们有着不同的含义和使用场景。

本文以GaussDB数据库为平台,将详细介绍SQL中DROP、TRUNCATE和DELETE等语句的含义、使用场景以及注意事项,帮助读者更好地理解和掌握这些常用的数据库操作命令。

二、GaussDB的 DROP & TRUNCATE & DELETE 简述

1、简述

  • DROP语句可以删除整个表,包括表结构和数据等;
  • TRUNCATE语句则可以快速地删除表中的所有数据,但不删除表结构。
  • DELETE语句可以根据条件删除表中的数据,但不包括表结构;

2、命令比对

大类

DROP

TRUNCATE

DELETE

SQL类型

DDL

DDL

DML

删除内容

删除表的所有数据,包括表结构、索引和权限等

删除表中所有数据,或指定分区的数据

删除表的全部或部分(+条件)数据

执行速度

速度最快

速度中等

速度最慢

Tip:在GaussDB数据库中,DROP是用于定义或修改数据库中的对象的命令之一。对象主要包括:库、模式、表空间、表、索引、视图、存储过程、函数、加密秘钥等,本次只针对表的操作。

三、GaussDB的DROP TABLE命令及示例

1、功能描述

DROP TABLE的功能是用来删除已存在的Table。

2、语法

DROP TABLE [IF EXISTS] [db_name.]table_name;

说明:SQL中加[IF EXISTS] ,可以防止因表不存在而导致执行报错。

参数:db_name:Database名称。如果未指定,将选择当前database。table_name:需要删除的Table名称。

3、示例

以下示例演示DROP命令的使用,依次执行如下SQL语句:

--删除整个表course
DROP TABLE IF EXISTS course

--创建course表
CREATE TABLE course(cid VARCHAR(10),cname VARCHAR(10),teid VARCHAR(10));

--初始化数据
INSERT INTO course VALUES('01' , '语文' , '02');
INSERT INTO course VALUES('02' , '数学' , '01');
INSERT INTO course VALUES('03' , '英语' , '03');

--3条记录
SELECT count(1) FROM  course;

--删除整个表
DROP TABLE IF EXISTS course

--查看结果,表不存在(表结构及数据不存在)
SELECT count(1) FROM  course;

1)DROP TABLE,提示表不存在

2)创建并初始化一张实验表

3)DROP TABLE 执行成功

 

4)查看执行结果

四、GaussDB的TRUNCATE命令及示例

1、功能描述

从表或表分区中移除所有数据,TRUNCATE快速地从表中删除所有行。它和在目标表上进行无条件的DELETE有同样的效果,但由于TRUNCATE不做表扫描,因而快得多, 且使用的系统和事务日志资源少。在大表上操作效果更明显。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。

2、语法

TRUNCATE [TABLE] table_name;

ALTER TABLE [IF EXISTS] table_name  TRUNCATE PARTITION { partition_name | FOR (  partition_value  [, ...] ) }

参数:table_name:需要删除数据的Table名称。partition_name:需要删除的分区表的分区名称。partition_value:需要删除的分区表的分区值。

3、示例1

以下示例演示TRUNCATE命令的使用:

--创建course表
DROP TABLE IF EXISTS course;
CREATE TABLE course(cid VARCHAR(10),cname VARCHAR(10),teid VARCHAR(10));

--初始化数据
INSERT INTO course VALUES('01' , '语文' , '02');
INSERT INTO course VALUES('02' , '数学' , '01');
INSERT INTO course VALUES('03' , '英语' , '03');

--3条记录
SELECT count(1) FROM  course;

--清空表
TRUNCATE TABLE course;
--或
TRUNCATE course;

--0条记录
SELECT count(1) FROM  course;

1)创建实验表并初始化数据

 2)TRUNCATE TABLE执行成功

 3)查看执行结果

4、示例2

以下示例演示TRUNCATE命令的删除分区表数据

--创建列表分区(LIST)
DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
    id INT PRIMARY KEY,
    customer_id INT,
    order_date DATE,
    product_id INT,
    quantity INT
) PARTITION BY LIST (customer_id) (
    PARTITION p1 VALUES (100),
    PARTITION p2 VALUES (200), 
    PARTITION p3 VALUES (300),
    PARTITION p4 VALUES (400),
    PARTITION p5 VALUES (500)
);

--插入测试数据
INSERT INTO orders(id,customer_id,order_date,product_id,quantity)VALUES(1001,100,date'20230822',1,10);
INSERT INTO orders(id,customer_id,order_date,product_id,quantity)VALUES(1002,100,date'20230822',2,20);
INSERT INTO orders(id,customer_id,order_date,product_id,quantity)VALUES(1003,100,date'20230822',3,30);
INSERT INTO orders(id,customer_id,order_date,product_id,quantity)VALUES(1004,200,date'20230822',4,40);

--查看分区p1、p2的数据
SELECT * FROM orders WHERE customer_id IN (100,200);
--或
--根据分区名称查询
SELECT * FROM  orders PARTITION(p2);

--清空分区p1。
ALTER TABLE orders TRUNCATE PARTITION p1;
--或者
--清空分区p2=200。
ALTER TABLE orders TRUNCATE PARTITION for (200);

--查看分区p1、p2的数据
SELECT * FROM orders WHERE customer_id IN (100,200);

1)创建实验表并初始化

 2)根据分区进行删数据

五、GaussDB的DELETE命令及示例

1、功能描述

从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在,将删除表中所有行,结果只保留表结构。

2、注意事项

  • 不支持DELETE语句中使用LIMIT。应使用WHERE条件明确需要更新的目标行。
  • 不支持在单条SQL语句中,对多个表进行删除。
  • DELETE语句中必须有WHERE子句,避免全表扫描。
  • DELETE语句中禁止不应使用ORDER BY、GROUP BY子句,避免不必要的排序。
  • 如果需要清空一张表,建议使用TRUNCATE,而不是DELETE。
  • TRUNCATE会创建新的物理文件,并在事务结束时将原文件物理删除,清空磁盘空间。而DELETE会将表中数据进行标记,直到VACCUUM FULL阶段才会真正清理磁盘空间。
  • DELETE有主键或索引的表,WHERE条件应结合主键或索引,提高执行效率。
  • DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
  • 如果想保留标识计数值,请改用 DELETE

3、语法

DELETE FROM table_name [WHERE condition];

参数:table_name:需要删除数据的Table名称。condition:用于判断哪些行需要被删除。

4、示例

复用前面的实验表:

DELETE FROM orders WHERE  customer_id <200;

1)删除orders表中customer_id <200的所有数据:

六、应用场景

  • 需要根据一定的业务条件删除数据时、且数据量、性能可控的情况下,可以考虑使用 DELETE。
  • 需要删除大批量数据时,同时要求速度快,效率高并且无需撤销时,可以使用 TRUNCATE。
  • 在企业级开发中,实际上都是进行逻辑删除(将数据进行“删除标识”处理)、而并不进行物理上的删除。
  • 在实际生产环境中,一般情况下删除业务处理(过渡表)中的数据。
  • 在实际企业开发、维护过程中,不管使用 DELETE、TRUNCATE还是DROP命令前,都要考虑数据的备份。

七、小结

在GaussDB等数据库中,DROP、TRUNCATE和DELETE均是常用的删除数据的命令。但在实际业务使用中,需要根据不同的需求进行准确的选择,但无论选择那种删数方式,都需要考虑数据安全性——重要的事情说三遍:备份!备份!备份!

——结束。

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

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

相关文章

一文速学-让神经网络不再神秘,一天速学神经网络基础-激活函数(二)

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…

VSCode配置终端默认为cmd命令行方式

1、新建终端 2、点击默认配置文件 3、选择第一个即可&#xff01;

臻图信息基于数字孪生技术搭建智慧电厂管理系统解决方案

随着可再生能源在电力行业中占比不断提升&#xff0c;以及互联网技术的深入和大数据时代的到来&#xff0c;智能化应用正在悄然地改变着电力企业运营模式。臻图信息以数字孪生、ZTMap3D、地理信息为技术手段&#xff0c;从管、查、监、云、端等几个层面全面建设电力监管系统平台…

国产调度器之光——Fsched到底有多能打?

这是一篇推荐我们速石自研调度器——Fsched的文章。 看起来在专门写调度器&#xff0c;但又不完全在写。 往下看&#xff0c;你就懂了。 本篇一共五个章节&#xff1a; 一、介绍一下主角——速石自研调度器Fsched 二、只要有个调度器&#xff0c;就够了吗&#xff1f; 三…

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与应收单新增接口

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与应收单新增接口 对接源平台:伯俊ERP 伯俊科技&#xff0c;依托在企业信息化建设方面的领先技术与实践积累&#xff0c;致力于帮助企业实现全渠道一盘货。伯俊提供数字经营的咨询与系统实施&#xff0c;助力企业信息化升级、加速…

ChatGPT在工业领域的研究与应用探索-数据与工况认知

1. ChatGPT发展现状 ChatGPT是基于OpenAI的GPT-4架构的一种大型语言模型。截至2021年9月&#xff0c;最新版本是GPT-3。在过去的几年里&#xff0c;ChatGPT已经取得了显著的进步&#xff0c;具备更强的自然语言处理和生成能力。 目前&#xff0c;ChatGPT的应用领域广泛&#…

05架构管理之持续集成-DevOps的理解与实现

专栏说明&#xff1a;针对于企业的架构管理岗位&#xff0c;分享架构管理岗位的职责&#xff0c;工作内容&#xff0c;指导架构师如何完成架构管理工作&#xff0c;完成架构师到架构管理者的转变。计划以10篇博客阐述清楚架构管理工作&#xff0c;专栏名称&#xff1a;架构管理…

基于SSM+vue框架的个人博客网站源码和论文

基于SSMvue框架的个人博客网站源码和论文061 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm &#xff08;设计&#xff09;研究背景与意义 关于博客的未来&#xff1a;在创办了博客中国(blogchina)、被誉为“…

【LeetCode75】第三十六题 路径总和3

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵树&#xff0c;每个节点都有一个值&#xff0c;我们需要找出一条路径&#xff0c;这条路径上所有节点的值的和等于一个目标…

解决华为云ping不通的问题

进入华为云控制台。依次选择&#xff1a;云服务器->点击服务器id->安全组->更改安全组->添加入方向规则&#xff0c;添加一个安全组规则&#xff08;ICMP&#xff09;&#xff0c;详见下图 再次ping公网ip就可以ping通了 产生这一问题的原因是ping的协议基于ICMP协…

缺少代码签名证书会怎么样?

在当下恶意软件攻击频发的情形下&#xff0c;使用代码签名证书来保护代码安全已经成为每个软件开发商的基本认知。代码签名证书将保护软件代码的完整性&#xff0c;避免软件被非法篡改或植入恶意代码病毒&#xff0c;从而使得软件可以正常运行。那么如果软件缺少代码签名证书会…

栈和队列OJ题

有效括号问题&#xff1a; 题目描述&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的…

R语言之 dplyr 包

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 R语言 也可获取。 文章目录 1.使用 filter( ) 和 slice( ) 筛选行2.使用 arrange( ) 排列行3. 使用 select( ) 选择列4.使用 mutate( ) 添加新变量5.使…

FMCW雷达基于时分复用波形(TDMA) 3D点云获取方法的仿真

摘要&#xff1a;通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中&#xff0c;首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据&#xff0c;其次对获取的原始数据依次经行距离、速…

电脑怎么把视频转换gif动图?视频生成gif的操作步骤

如果你也想把一些精彩的视频转gif图片&#xff08;https://www.gif.cn&#xff09;的话&#xff0c;今天的文章你可千万不要错过&#xff0c;利用专业的视频转gif工具&#xff0c;轻松在线视频转gif&#xff0c;操作简单又方便&#xff0c;支持电脑、手机双端操作&#xff0c;赶…

金蝶云星空和管易云接口打通对接实战

金蝶云星空和管易云接口打通对接实战 对接系统金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应用框架等&#xff0c;有效支持企业的运…

静电中和风机在所具有的的优点

半导体生产过程中&#xff0c;静电积聚和离子污染是常见的问题&#xff0c;会对产品质量和工艺稳定性造成负面影响。为了解决这个问题&#xff0c;可以采用专门用于半导体自动化的静电消除/中和离子风机。 静电消除/中和离子风机是一种集静电消除和离子中和功能于一体的装置。…

Arnold置乱

一、Arnold置乱概述 Arnold变换是俄国数学家弗拉基米尔阿诺德&#xff08;Vladimir Igorevich Arnold&#xff09;提出&#xff0c;Arnold将其应用在遍历理论研究中。由于Arnold本人最初对一张猫的图片进行了此种变换&#xff0c;因此它又被称为猫脸变换&#xff08;cat映射&am…

24 | 紧跟时代步伐:微服务模式下API测试要怎么做?

微服务架构&#xff08;Microservice Architecture&#xff09; 微服务是一种架构风格。在微服务架构下&#xff0c;一个大型复杂软件系统不再由一个单体组成&#xff0c;而是由一系列相互独立的微服务组成。其中&#xff0c;各个微服务运行在自己的进程中&#xff0c;开发和部…

【pdf密码】PDF文件,无密码取消限制

PDF文件设置了限制编辑&#xff0c;会导致什么情况呢&#xff1f;比较常见的就是无法编辑、无法复制粘贴、无法打印或者打印文件清晰度差。这些都是PDF限制编辑导致的&#xff0c;想要编辑文件&#xff0c;我们就需要取消限制编辑&#xff0c;但是有些时候&#xff0c;大家可能…