oracle创建一个最简单的表,oracle创建简单的表

1)使用规范创建表:

create table test(

empno number(4)

sal number(7,2)

);

2)从子查询创建表:

创建表定义,并使用一条语句就可以给表填充行。所有查询都可用作表结构和行的来源。

CREATE TABLE [schema.] table as subquery;

所有查询都是返回行的二维集合;这个结果保存为新的表。使用子查询创建表的示例:

create table employees_copy as select * fromemployees;

employees_copy 完全是employees表的副本。它们的定义和包含的行完全相同。所有非空值和列的检查约束也适合于新的表,但所有主键,唯一键或者外键约束则不适用。

要创建一个没有行的表,可以使用排除所有行的where子句。

create table no_emps as select * fromemployees where 1=2;

在创建之后变更表定义:

添加列:alter tableemp add(job_id number);

修改列:alter tableemp modify(comm number(4,2) default 0.05);

删除列:alter tbaleemp drop column comm;

将列标记为未使用:alter table emp set unused column job_id;

重命令列:alter tableemp rename column hiredate to recruited;

将表标记为只读:alter table emp read only;

所有这些变更都是包含内置COMMIT的DDL命令。因此它们是不可逆的。

删除列是一个耗时的过程。并且删除列之后,必须重新构建各行来删除列的数据。所有可以使用set unused命令使这些列不存在。然后等系统方便的时候在

ALTER TABLE tablename drop unused columns;这样一次通过表就会删除所有未使用的列。

DROP命令实际上不影响表:它是影响数据字典中的表,这些表定义表,它们不是只读的。

truncate table命令:它能够删除表的所有行,同时保持表定义不变。

drop table:删除表定义   drop table  [schema.]tablename;

如果没有指定模式,这当前登录模式中的tablename的表就会被删除。

drop绝对不可逆。也有一些限制:如果会话有正在处理的事务,该事务包含表中的行,那么drop就会失败。也可能删除在为其他表而定义的外键约束中引用的表。首先必须删除这个表(或者这个约束)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值