Oracle表概述

Oracle表的类型

heap table

数据以堆的方式管理

index organized tables

表按索引结构存储,强制要求行本身有某种物理顺序,数据要根据主键有序的存储

index clusters tables

cluster是指一个或多个表组成的组,这些表物理的存储在相同的数据库块上,有相同聚簇键值的所有行会相邻地物理存储;

hash clusters tables

这些表类似于聚簇表,但是不使用B树索引聚簇键来定位数据,散列聚簇将键散列到聚簇上,从而找到数据应该在哪个数据库块上;

partitioned tables

 

stored hash clustered table

有序散列聚簇表是oracle10g中新增的,它结合了散列聚簇表的某些方面,同时兼有IOT的一些方面;

nested table

 

temporary table

 

 

 

--建立一张表

CREATE TABLE emp

(empno NUMBER(4),--如果插入有小数,将会4舍5入

 ename VARCHAR2(10),

 hiredate DATE DEFAULT TRUNC(SYSDATE),

 sal NUMBER(7,2),

 comm NUMBER(7,2) DEFAULT 0.03

);

 

通过子查询创建表

--通过子查询创建表

CREATE TABLE emp_copyAS SELECT * FROM emp;

通过这种方式创建的表所有的非空约束和检查约束将存在,而主键,唯一键和外键约束将丢失;这是因为后面三种约束创建的同时需要索引;

还可以通过联合查询来创建新表

CREATE TABLE emp_deptAS SELECT

last_nameename,dapartment_name dname,ROUND(SYSDATE-hire_date) service

FROM employeesNATURAL JOIN departments ORDER BY dname,ename;

--只拷贝表结构,但是不插入原表中的数据

CREATE TABLE emp_strcAS SELECT * FROM employees WHERE 1=2;

 

改变表结构

--增加一列

ALTER TABLE empADD(job_id NUMBER);

--修改一列

ALTER TABLE empMODIFY (commission_pct NUMBER(4,2) DEFAULT 0.05);

--删除一列

ALTER TABLE emp DROPCOLUMN commission_pct

--使某一列失效

ALTER TABLE emp SETUNUSED COLUMN job_id;

--重命名列名

ALTER TABLE empRENAME COLUMN hire_date TO recruited;

--将某个表变为只读

ALTER TABLE emp READ ONLY;--DML操作会失败,但是删除表的操作依然 可以成功

--删除置为无效的列

ALTER TABLE tablenameDROP UNUSED COLUMNS;

--删除表

DROP TABLEtablename;--必须为空表,表没有依赖关系

--清空表的内容

TRUNCATE TABLEtablename;

 

创建和使用临时表

临时表对于所有的sessions都是可见的,但是其中的每一行都属于插入该行的session

--创建临时表

CREATE GLOBALTEMPORARY TABLE temp_tab_name

(COLUMN datatype,COLUMN datatype)

[ON COMMIT {DELETE |PRESERVE} ROWS];

 

在临时表上执行SQL操作要比在正式表上执行快,原因如下:

1、temporary tables are not segments inpermanent tablespaces;他们存在于每个session的PGA中;如果超出PGA的容量,会将数据转移到用户的临时表空间中,临时表空间的IO要快很多,原因是它不经过database buffer cache;它是通过会话服务器进程和磁盘之间进行的;

2、第二个块的原因是对于临时表的DML操作不会产生redo记录;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值