技巧Oracle 10种创建表的高招(oracle10个创建表)

Oracle数据库中创建表是常见操作,对Oracle DBA而言,具备一定的技巧和方法才能更快更灵活的创建表。在此介绍Oracle 10种创建表的高招:

一、使用SELECT语句创建

通过SELECT子句的”AS”子句来为查询列设置列名,利用INTO语句将旧表复制到新表,示例如下:

“`SQL

SELECT * FROM old_table

INTO new_table (column1_name, column2_name, column3_name ..)


二、使用CREATE TABLE复制表

可以使用CREATE TABLE语句,先创建新表,然后使用INSERT语句插入SELECT子查询结果:

```SQL
CREATE TABLE new_table (column1_name datatype,
column2_name datatype,
column3_name datatype ..);

INSERT INTO new_table
SELECT column1_name, column2_name, column3_name ..
FROM old_table;

三、使用ALTER TABLE语句

可通过在旧表基础上使用ALTER TABLE语句,创建新表,添加新的列和新的索引,示例如下:

“`SQL

ALTER TABLE old_table

ADD column_new_name datatype;

CREATE INDEX new_index

ON old_table(column_new_name);


四、使用EXPORT和IMPORT 导入/导出表

使用EXPORT和IMPORT 导入/导出表时,可选择更改表名,来创建新表,如下:

```SQL
EXPORT TABLE=old_table
TO=/directory/tablespace_name.dmp
RENAME TABLE old_table TO new_table

“`SQL

IMPORT TABLE=new_table

FROM=/directory/tablespace_name.dmp


五、使用CREATE TABLE AS语句

使用CREATE TABLE AS语句创建表,CREATETABLE AS语句允许您复制表数据,从旧表创建新表,示例如下:

```SQL
CREATE TABLE new_table AS
SELECT * FROM old_table;

六、使用CREATE TABLE复制表结构

也可使用CREATE TABLE复制表结构,该语句将不复制表数据,仅复制表结构,示例如下:

“`SQL

CREATE TABLE new_table

AS

SELECT * FROM old_table

WHERE 1=2;


七、使用CREATE TABLE语句

使用CREATE TABLE语句创建表可以指令指定列名称,列类型,索引等信息,示例如下:

```SQL
CREATE TABLE new_table
(
column1_name datatype,
column2_name datatype,
column3_name datatype ..
) TABLESPACE tablespace_name;

八、使用CREATE GLOBAL TEMPORARY TABLE

利用CREATE GLOBAL TEMPORARY TABLE可以直接创建一个暂时表,并能让所有用户可以访问,示例如下:

“`SQL

CREATE GLOBAL TEMPORARY TABLE new_table

(

column1_name datatype,

column2_name datatype,

column3_name datatype ..

) ON COMMIT PRESERVE ROWS;


九、使用MULTISET UNION

MULTISET UNION是一种多表拼接,可以使用MULTISET UNION创建表,并且可以指令设定新表的列名,示例如下:

```SQL
CREATE TABLE new_table AS
SELECT * FROM
(SELECT column1_name, column2_name, column3_name .. FROM table_one
UNION
SELECT column1_name, column2_name, column3_name .. FROM table_two
..
)
(column1_name datatype, column2_name datatype, column3_name datatype ..);

十、使用分区表

创建一个分区表,也可以用来创建新表,示例如下:

“`SQL

CREATE TABLE new_table

(

column1_name datatype,

column2_name datatype,

column3_name datatype ..

)

PARTITION BY RANGE (column3_name)

(

PARTITION partition_name VALUES LESS THAN (value)

);


以上就是Oracle 10种创建表的高招,了解此类方法可以帮助Oracle DBA更快更高效的操作。

数据运维技术 » 技巧Oracle 10种创建表的高招(oracle10个创建表)