🗑️SQL Server常用语句【删除语句】

💡 简记:增(INSERT)删(DELETE)改(UPDATE)查(SELECT)是数据库操作的四大基础功能,简称CRUD(Create, Read, Update, Delete)。

删 (DELETE)

  • 作用:从表中删除记录
  • 示例DELETE FROM 表名 WHERE 条件
  • 用途:清理过期数据,删除错误记录(⚠️慎用)

以下是使用USE语句先指定数据库,然后执行删除操作的完整SQL示例:

1. 基础删除语句

-- 切换到目标数据库
USE [数据库名];
GO

-- 简单删除
DELETE FROM [架构名].[表名]
WHERE [条件字段] = 条件值;
GO

示例

USE [订单管理数据库];
GO

DELETE FROM [dbo].[临时订单表]
WHERE [创建日期] < DATEADD(month, -3, GETDATE());
GO

2. 多条件删除

USE [员工档案数据库];
GO

DELETE FROM [hr].[离职员工表]
WHERE 
    [离职日期] < '2020-01-01'
    AND [档案状态] = '已归档';
GO

3. 基于子查询的删除

USE [库存数据库];
GO

DELETE FROM [dbo].[过期产品表]
WHERE [产品ID] IN (
    SELECT [产品ID] 
    FROM [dbo].[产品表]
    WHERE [过期日期] < GETDATE()
);
GO

4. 清空表数据(无WHERE条件)

USE [测试数据库];
GO

-- 清空表数据(保留表结构)
DELETE FROM [dbo].[测试数据表];
GO

-- 或者使用TRUNCATE(效率更高,但不可回滚)
TRUNCATE TABLE [dbo].[测试数据表];
GO

5. 带JOIN的删除(SQL Server特有语法)

USE [客户关系数据库];
GO

DELETE t
FROM [dbo].[临时客户表] t
INNER JOIN [dbo].[正式客户表] c ON t.[手机号] = c.[手机号]
WHERE c.[注册时间] > '2023-01-01';
GO

重要安全提示

  1. 删除前务必备份数据
  2. 先执行SELECT验证WHERE条件
   USE [数据库名];
   GO
   SELECT * FROM [表名] WHERE [条件]; -- 先确认要删除的数据
   GO
  1. 考虑使用事务
   USE [数据库名];
   GO
   BEGIN TRANSACTION;
   DELETE FROM [表名] WHERE [条件];
   -- 确认无误后再提交
   COMMIT TRANSACTION;
   -- 或者回滚
   -- ROLLBACK TRANSACTION;
   GO
  1. 生产环境谨慎使用无WHERE条件的DELETE语句

相关文章

© 版权声明
THE END
喜欢就点赞吧
分享