sqldeletedrop
❶ 数据库中drop和delete的区别
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的
存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,
执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发
trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate
会将高水线复位(回到最开始).
4.速度,一般来说: drop> truncate > delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及.
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还
是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据/
总结:
DROP用于删除表,数据库等.
TRUNCATE和DELETE都是删除表数据.
但是TRUNCATE相当于初始化,比如如果有自增长ID,用TRUNCATE删除后,自增长Id会从1开始,(truncat会释放表所占的空间)
而delete则不会.
❷ 删除一个表的sql 语句怎么写啊
使用drop语句,droptable (需要删除表的名字)。
drop是删除整个表,delete是删除表的内容。
drop语句的作用:删除内容和定义,释放空间,简单来说就是把整个表去掉。以后要新增数据是不可能的,除非新增一个表。
删除表时需要注意的事项:
1、如果删除应用表别名,则delete 后面一定要接对应的别名,然后再接表名,不然报错。
2、delete删除sql后面不可接通配符*,即delete * from ,这样会报错。
3、delete删除sql默认的返回值为int数据类型,当删除一条数据时,返回int数据1,当删除num条数据时,则返回int类型num。
(2)sqldeletedrop扩展阅读:
SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。
常用语句:
创建数据库 CREATE DATABASE database-name
删除数据库 drop database dbname
创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
删除新表 drop table tabname
参考资料:网络—sql语句大全
❸ SQL 语句里delete 和drop有什么区别
一、删除内容不同
1、delete:只删除数据不删除表的结构。
2、drop:句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index)。
二、语句效果不同
1、delete:是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
2、drop:是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。
三、删除空间影响不同
1、delete:不影响表所占用的 extent,高水线(high watermark)保持原位置不动。
2、drop:语句将表所占用的空间全部释放。