1. 删除oracle表中的所有数据而不删除表:

语法:

  

TRUNCATE TABLE table_name;

使用这条语句只是删除表中的全部数据,不是删除表,这种方式也叫做截断表,这种方式比使用delete删除数据的速度要快很多;

SQL> desc new_userinfo;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(6)
 USERNAME                                           VARCHAR2(20)
 PASSWORD                                           NUMBER(6)
 NEW_EMAIL                                          VARCHAR2(30)
 REGDATE                                            DATE

SQL> truncate table new_userinfo;

表被截断。

SQL> desc new_userinfo
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(6)
 USERNAME                                           VARCHAR2(20)
 PASSWORD                                           NUMBER(6)
 NEW_EMAIL                                          VARCHAR2(30)
 REGDATE                                            DATE

SQL>

只是删除表中的数据,而不是删除表;

 

2. 直接删除表:

语法:

  

DROP TABLE table_name;
SQL> desc new_userinfo
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(6)
 USERNAME                                           VARCHAR2(20)
 PASSWORD                                           NUMBER(6)
 NEW_EMAIL                                          VARCHAR2(30)
 REGDATE                                            DATE

SQL> drop table new_userinfo;

表已删除。

SQL> desc new_userinfo;
ERROR:
ORA-04043: 对象 new_userinfo 不存在


SQL>