删除语句sql一条数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、SQL DELETE 语句
使用DELETE从表中删除目标行。
记录每次删除操作。
DELETE FROM table_name
WHERE some_column=some_value;
请注意SQL DELETE 语句中的WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要删除。
如果您省略了WHERE 子句,所有的记录都将被删除!即您可以在不删除表的情况下,删除表中所有的行。
这意味着表结构、属性、索引将保持不变。
DELETE FROM table_name;
或
DELETE*FROM table_name;
二、SQL DROP 语句
通过使用DROP 语句,可以轻松地删除索引、表和数据库。
(1)DROP INDEX 语句
DROP INDEX 语句用于删除表中的索引。
MySQL 的DROP INDEX语法:
ALTER TABLE table_name DROP INDEX index_name
(2)DROP TABLE 语句
DROP TABLE 语句用于删除整个表。
同时整个表的结构都被删除。
DROP TABLE table_name
(3)DROP DATABASE 语句
DROP DATABASE 语句用于删除整个数据库。
DROP DATABASE database_name
三、SQL TRUNCATE 语句
如果我们仅仅需要删除表内的数据,但并不删除表本身,即表结构及其列、约束、索引等保持不变。
可以使用TRUNCATE TABLE 语句:TRUNCATE TABLE table_name
四、DELETE 与TRUNCATE 的区别
(1)TRUNCATE TABLE 语句与不带WHERE 子句的DELETE 语句作用相同:二者均删除表中的全部行。
但TRUNCATE TABLE 比DELETE 速度快,且使用的系统和事务日志资源少。
(2)DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
delete可以返回被删除的记录数,而truncate table返回的是0。
(3)对于由FOREIGN KEY 约束引用的表,不能使用TRUNCATE TABLE,而应使用不带WHERE 子句的DELETE 语句。
由于TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
(4)TRUNCATE TABLE 不能用于参与了索引视图的表。
如果要删除表中的所有数据,建议使用truncate table,尤其是表中有大量的数据。
使用truncate table是将表结构重新建一次,速度要比使用delete 快很多,而delete 是一行一行的删除,速度很慢。