DROP TABLE或者TRUNCATE TABLE需要什么权限
grant drop any table to 用户名;
drop any table 权限的描述是这样的 --Drop or truncate tables or table partitions in any schema.
举例说明在SQL中,DELETE语句与DROP TABLE的区别
区别一、语法不同:
1、DROP TABLE语法
DROP TABLE table_name
2、DELETE语法
DELETE FROM 表名称 WHERE 列名称 = 值
区别二、参数不同
1、table_name;是要删除的表名。
2、DELETE ;用于删除表中的行。
区别三、注释不同
1、DROP TABLE不能用于除去由FOREIGN KEY约束引用的表。
必须先除去引用的FOREIGN KEY约束或引用的表。
表所有者可以除去任何数据库内的表。
除去表时,表上的规则或默认值将解除绑定,任何与表关联的约束或触发器将自动除去。
如果重新创建表,必须重新绑定适当的规则和默认值,重新创建任何触发器并添加必要的约束。
在系统表上不能使用DROP TABLE语句。
如果删除表内的所有行(DELETE tablename)或使用TRUNCATE TABLE语句,则表将一直存在到被除去。
2、DELETE删除所有行;可以在不删除表的情况下删除所有的行。
这意味着表的结构、属性和索引都是完整的:
DELETE FROM table_name或者:DELETE * FROM table_name。
区别四、使用用法不同
1、drop主要用于删除结构
例如删除数据库:dropdatabaseXX,删除表droptableXX。
字段也是结构的一种,也可以使用drop了;对的,但是改变了表结构要先alter方法。
例如,要删除student表上的age字段的信息,可以这样写:altertablestudentdropage
2、delete主要用于删除数据
举个例子,要删除student表上名字为‘张三’的所有信息:delete*fromstudentwherename=‘张三’。
这种情况下用delete,由此可见delete常用于删除数据。
drop table可以还原吗
一、drop表
执行drop table xx 语句
drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。
这样,回收站里的表信息就可以被恢复,或彻底清除。
通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句
flashback table
to before drop [rename to ];
将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。
若要彻底删除表,则使用语句:drop table purge;
清除回收站里的信息说明在drop table 时,resirict 和cascade 的区别
在用DROP TABLE 语句删除表时:
1. RESTRICT:有限制条件,欲删除的基本表不能被其他的表所约束引用(如CHECK,FOREIGN KEY等约束条件),不能有视图、触发器、存储过程和函数等。
如果有则该表不能被删除。
2. CASCADE:没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。