oracle常见表,Oracle常见表操作

Oracle表常见操作如下。

列规范创建表

要创建标准的表,可以使用下面的语法:

CREATE TABLE [schema.] table

(column datatype [DEFAULT expression],……)

这里需要了解scheme指的是模式名称,模式可以简单理解为和用户相对应,一个用户对应一个模式,因此在省略scheme时指的是在当前用户模式,通常需要指定模式名称的场景是A用户需要操作B用户的表,这时还需要当前A用户有操作B用户表的权限才能生效。(可以作为了解内容)

例子:

CREATE TABLE GIGGLE.USER

(USERNO NUMBER(4),

USERNAME VARCHAR2(10),

AGE NUMBER(3),

REMARK VARCHAR2(255) DEFAULT 'common user');

这会在GIGGLE模式下创建一个USER表,表对应4列,其中REMARK有默认值。

这种创建表方式使用较多。

使用子查询创建表

上面的使用列规范创建的表是一个空表,数据还需要相应的INSERT语句;

使用子查询可以通过其他表来创建表,这种方式创建的表可以表结构和源表一样,也可以只选择源表中一部分列,其语法如下:

CREATE TABLE [scheme.] table AS  subquery;

简单示例:CREATE TABLE USER_COPY AS SELECT * FROM USER;

这条语句将会完全将USER表复制到USER_COPY中;通过这种方式创建的新表将继承源表中的非空(NOT NULL)和检查约束(CHECK),需要索引的主键约束(PRIMARY KEY),唯一约束(UNIQUE)和外键约束(FOREIGN KEY)将不被继承。

子查询中可以使用WHERE关键字指定限定条件,从而选择性的将源表数据插入新表;这里WHERE条件假如是不成立的条件,则新表中不会有源表任何数据,相当于只是复制了源表的表结构。例如:CREATE TABLE USER_COPY AS SELECT * FROM USER WHERE 1=2;

子查询SELECT关键字可以指定列,使新表中字段只是源表中的一部分;

表定义更改

添加列:ALTER TABLE USER ADD (USERID NUMBER);

修改列:ALTER TABLE USER (USERNO VARCHAR2(8));

删除列:ALTER TABLE DROP COLUMN REMARK;

重命名列: ALTER TABLE USER RENAME COLUMN REMARK INFORMATION;

删除表或删除表数据

删除表中数据:DELETE FROM TABLENAME [WHERE condition];

删除表:DROP TABLE TABLENAME;

TRUNCATE TABLE TABLENAME;

PS: 上述三种删除表数据的区别:

delete是按照where条件删除符合条件的数据,是DML语句,受事务控制,事务提交会才会生效;drop是DDL语句,会删除表和表中所有数据,不受事务控制;truncate功能上和不使用where条件的语句相同,但是速度比delete快,因为使用的系统和事务日志资源少。使用drop和truncate时候要慎重,因为不可回滚。

以上内容都是自己学习Oracle过程中的学习笔记,学习教材为OCP认证考试指南。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值