SQL语句(表的创建,复制,重命名,截断,删除,以及闪回技术)

1.表的创建

 

格式 :

CREATE  TABLE  表名称(

     字段1     数据类型     [DEFAULT  默认值],

     字段2     数据类型     [DEFAULT  默认值],

     字段3     数据类型     [DEFAULT  默认值],

                ...............

     字段n     数据类型     [DEFAULT  默认值]

);

现在来创建一张成员表,保存信息有:姓名,年龄,生日,个人简介。

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. CREATE TABLE member(  
  2.      name         VARCHAR2(50)     DEFAULT '无名氏',  
  3.      age          NUMBER(3) ,  
  4.      birthday     DATE             DEFAULT SYSDATE,  
  5.      content      CLOB  
  6. );  

创建后就可以向表中插入数据了,如果没有数据的插入的元素使用默认值。

 

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <span style="font-size:12px;">INSERT INTO member(name,age,birthday,content) VALUES ('张三',20,TO_DATE('1993-04-06','yyyy-mm-dd'),'一个好人');</span>  


2.表的复制

 

语法:

CREATE TABLE 复制表名称 AS 子查询

例如:复制一张只包含20雇员信息的表。

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno = 20;  


现在要求只复制emp表结构,不要复制数据,写一个永远满足不了的条件即可,应使用以下语句。

因为条件永远不会满足,所以没有数据显示。

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. CREATE TABLE empnull AS SELECT * FROM emp WHERE 1==2;  


 

3.表的重命名

 

比如把member表的名称重命名为student,就使用语句:RENAME member TO student;

 

 

4.截断表

 

  用delete方法删除表后并没有真正的释放掉表所占有的资源。

  例如:对于表person,我们执行语句:delete from person;

  再查找:select * from person;   会发现表不存在。

  但是如果再执行语句rollback;   进行回滚,然后再执行select * from person;

  就会发现person表又回来了。

  如果现在我们希望彻底释放一张表所占用的全部资源,就可以使用截断表的语法。

  语法为:TRUNCATE TABLE 表名称;

  这样执行此语句后就会彻底删除该表了。

 

5.表的删除

  删除一个表就是删除一个对象,要用语句DROP删除。

  语法为:DROP TABLE 表名称;

 

6.闪回技术

在oracle10g之后,为了防止用户的误删表操作,专门提供了回收站功能。用户所删除的表默认情况下会在回收

站保存。

而用户也可以通过回收站恢复此表。此技术称为闪回技术(FLASHBACK)

查看回收站用:show recyclebin;

这时候可以看到删除的表都在回收站中,可以用下面的语句恢复指定的表。

FLASHBACK TABLE 表名称 TO BEFORE DROP;

现在也可以直接删除回收站中的表,语法为:PURGE TABLE 表名称;

清空回收站语法:PURGE RECYCLEBIN;

现在想删除一个表,又不希望进入回收站之中,只需要在删除的时候加一个purge就行了。

比如删除person表,就执行语句:

DROP TABLE person PURGE;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值