技巧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子查询结果:
```SQLCREATE 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 导入/导出表时,可选择更改表名,来创建新表,如下:
```SQLEXPORT TABLE=old_table
TO=/directory/tablespace_name.dmpRENAME TABLE old_table TO new_table
“`SQL
IMPORT TABLE=new_table
FROM=/directory/tablespace_name.dmp
五、使用CREATE TABLE AS语句
使用CREATE TABLE AS语句创建表,CREATETABLE AS语句允许您复制表数据,从旧表创建新表,示例如下:
```SQLCREATE 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语句创建表可以指令指定列名称,列类型,索引等信息,示例如下:
```SQLCREATE 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创建表,并且可以指令设定新表的列名,示例如下:
```SQLCREATE 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更快更高效的操作。