1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index)依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。
注意:truncate 不能删除行数据,要删就要把表清空。
3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除 *** 作作为事务记录在日志中保存以便进行进行回滚 *** 作。
truncate与不带where的delete :只删除数据,而不删除表的结构(定义)
4、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。如果要删除表定义及其数据,请使用 drop table 语句。
5、对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。由于truncate table 记录在日志中,所以它不能激活触发器。
6、执行速度,一般来说: drop>truncate >delete。
7、delete语句是数据库 *** 作语言(dml),这个 *** 作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
扩展资料例子:
1、查看数据库
2、切换数据库
3、查看数据库中已创建的表
当表中的数据不需要时 则应该删除该数据并释放所占用的空间 删除表中的数据可以使用Delete语句或者Truncate语句 下面分别介绍 一 delete语句 ( )有条件删除 语法格式 delete [from] table_name [where condition]如 删除users表中的userid为 的数据 delete from users where userid= ( )无条件删除整个表数据 语法格式 delete table_name如 删除user表中的所有数据 delete users 二 Truncate语句 使用Truncate语句是删除表中的所有记录 语法格式 Truncate [table] table_name( )删除所有记录不保留记录占用空间 Truncate [table] table_name [drop storage]如 删除users表中的所有数据并不保存占用空间 Truncate table users drop storage由于默认使用drop storage关键字 所以可以省略 drop storage( )删除所有记录保留记录占用空间 Truncate [table] table_name [reuse storage]如 删除users表中的所有数据并保存占用空间 Truncate table users reuse storage 三 两种删除语句的对比 由于delete语句删除记录时候 记录是逐条删除的 而Truncate 语句删除数据时不产生回退信息 所以如果需要删除大量数据的时候使用delete则占用较多的系统资源 而如果使用Truncate 则会快的多 下面通过实例说明一下 首先建立user表 create table users ( userid varchar ( ) username varchar ( ) userpass varchar ( ) )复制代码 接着插入一条数据 insert into users values( GavinDream )使用复制插入方法插入几万条数据 insert into users(userid username userpass) select * from users我插入了 条数据 使用delete删除花费时间为 seconds 然后又插入了二倍的数据 但使用truncate花费时间仅仅为 seconds 如下图所示 lishixinzhi/Article/program/Oracle/201405/30860
语法与其它的sql数据库教程是一样的 如下 DELETE FROM COURSES WHERE COURSE_DESIGNATER = Java
按条件比较复杂的 *** 作方法
DELETE FROM CLASSCONVENINGS WHERE CLASSES_NUM_FK > AND CLASS_CONVENE_DATE = TO_DATE( : : YYYY MM DD HH :MI:SS ) AND CLASS_LOCATION_FK = Seattle Training Room
下面来看个详细的实例
SQL >create demo table SQL>create table Employee( ID VARCHAR ( BYTE) NOT NULL First_Name VARCHAR ( BYTE) Last_Name VARCHAR ( BYTE) Start_Date DATE End_Date DATE Salary Number( ) City VARCHAR ( BYTE) Description VARCHAR ( BYTE) ) /
Table created
SQL>SQL>prepare data SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values ( Jason Martin to_date( YYYYMMDD ) to_date( YYYYMMDD ) Toronto Programmer ) /
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values( Alison Mathews to_date( YYYYMMDD ) to_date( YYYYMMDD ) Vancouver Tester ) /
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values( James Smith to_date( YYYYMMDD ) to_date( YYYYMMDD ) Vancouver Tester ) /
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values( Celia Rice to_date( YYYYMMDD ) to_date( YYYYMMDD ) Vancouver Manager ) /
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description)
values( Robert Black to_date( YYYYMMDD ) to_date( YYYYMMDD ) Vancouver Tester )
/
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values( Linda Green to_date( YYYYMMDD ) to_date( YYYYMMDD ) New York Tester ) /
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values( David Larry to_date( YYYYMMDD ) to_date( YYYYMMDD ) New York Manager ) /
row created
SQL>insert into Employee(ID First_Name Last_Name Start_Date End_Date Salary City Description) values( James Cat to_date( YYYYMMDD ) to_date( YYYYMMDD ) Vancouver Tester ) /
row created
SQL>SQL>SQL>SQL>display data in the table SQL>select * from Employee /
ID FIRST_NAME LAST_NAME START_DAT END_DATE SALARY CITY DESCRIPTION Jason Martin JUL JUL Toronto Programmer Alison Mathews MAR FEB Vancouver Tester James Smith DEC MAR Vancouver Tester Celia Rice OCT APR Vancouver Manager Robert Black JAN AUG Vancouver Tester Linda Green JUL JAN New York Tester David Larry DEC FEB New York Manager
ID FIRST_NAME LAST_NAME START_DAT END_DATE SALARY CITY DESCRIPTION James Cat SEP APR Vancouver Tester
rows selected
SQL>SQL>SQL>SQL>SQL>SQL>SQL>delete mand with conditions SQL>SQL>delete from Employee where Salary >
rows deleted
SQL>SQL>select * from Employee
ID FIRST_NAME LAST_NAME START_DAT END_DATE SALARY CITY DESCRIPTION Jason Martin JUL JUL Toronto Programmer Celia Rice OCT APR Vancouver Manager Robert Black JAN AUG Vancouver Tester James Cat SEP APR Vancouver Tester
rows selected
删除指定的内容
SQL>CREATE TABLE project ( pro_id NUMBER( ) pro_name VARCHAR ( ) budget NUMBER( ) CONSTRAINT project_pk PRIMARY KEY (pro_id) )
Table created
SQL>SQL>SQL>INSERT INTO project(pro_id pro_name budget)VALUES ( A )
row created
SQL>INSERT INTO project(pro_id pro_name budget)VALUES ( ERP )
row created
SQL>INSERT INTO project(pro_id pro_name budget)VALUES ( SQL )
row created
SQL>INSERT INTO project(pro_id pro_name budget)VALUES ( CRM )
row created
SQL>INSERT INTO project(pro_id pro_name budget)VALUES ( VPN )
row created
lishixinzhi/Article/program/Oracle/201311/19072
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)