本文主要是介绍OCP学习:DDL和模式对象002,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
表
表的类型:
堆表 包含随机排列的可变长度的行。
索引组织的表 按索引键的顺序存储行。
索引群集 可以反规范化父子关系表,这样来自不同表的相关行就可以存储在一起。
哈希群集 要求随机分布行,这样可以打破依据条目序列的排序。
分区表 以单独的物理结构(分区)存储行,依据列的值分配行。
注意:表结构对SQL没有影响。对性能有影响。
使用列规范创建表:
语法:
CREATE TABLE [schema.]table [ORGANIZATION HEAP]
[column datatype [DEFAULT expression]]
[,column datatype [DEFAULT expression]];
举例:
-- Create table
-- create date :2018-01-18
-- authors :BlackHeart
create table HDM.CUX_BH_TEST_DATA(id number not null,l_name varchar2(200),l_code varchar2(200) not null,created_by NUMBER(15) not null,creation_date DATE not null,last_updated_by NUMBER(15) not null,last_update_date DATE not null
)
tablespace HDM_DATApctfree 10initrans 10maxtrans 255storage(initial 128Knext 128Kminextents 1maxextents unlimited);
注意:default子句无法通过子查询来生成默认值,只能指定字面值或者函数。
使用子查询创建表:
CREATE TABLE [schema.]table AS subquery;
更改表定义
1 添加列:
alter table epm add (job_id number);
2 修改列:
alter table epm modify (commission_pct number(4,2) default 0.05);
3 删除列:
alter table epm drop column commission_pct;
4 标记为未使用:
alter table epm set unused column job_id;
5 重命名列:
alter table epm rename column hire_date to recruited;
6 将表标记为只读:
alter table epm read only;
删除表
语法:
DROP TABLE [schema.]tablename;
举例:
drop table epm;
创建和使用临时表
语法:
CREATE GLOBAL TEMPORARY TABLE temp_tab_name
(column datatype [,column datatype])
[ON COMMIT {DELETE|PRESERVE} ROWS];
在临时表上执行的SQL命令速度远比针对永久表的命令快。
1 临时表不是永久表空间中的段。
2 针对临时表的DML不生成重做数据。
这篇关于OCP学习:DDL和模式对象002的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!