💡 简记:增(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
重要安全提示
- 删除前务必备份数据
- 先执行SELECT验证WHERE条件:
USE [数据库名];
GO
SELECT * FROM [表名] WHERE [条件]; -- 先确认要删除的数据
GO
- 考虑使用事务:
USE [数据库名];
GO
BEGIN TRANSACTION;
DELETE FROM [表名] WHERE [条件];
-- 确认无误后再提交
COMMIT TRANSACTION;
-- 或者回滚
-- ROLLBACK TRANSACTION;
GO
- 生产环境谨慎使用无WHERE条件的DELETE语句
相关文章
© 版权声明
THE END