Create Table As

Create Table As  (CTAS)

Note: Redo only created when in ARCHIVE LOG mode
CREATE TABLE <table_name> AS
SELECT <column_name, column_name, ..., <column_name>
FROM <table_name>;
CREATE TABLE t AS
SELECT *
FROM all_tables;
### 使用 `CREATE TABLE AS` 创建表并复制数据 在 SQL 中,`CREATE TABLE AS` 是一个非常实用的命令,允许用户根据现有表的数据结构和内容创建新表。其基本语法如下: ```sql CREATE TABLE new_table_name AS SELECT * FROM existing_table_name; ``` 此命令会创建一个新表 `new_table_name`,并将 `existing_table_name` 表中的所有数据复制到新表中。 #### 示例 假设有一个名为 `t_key_event_file_student` 的表,并且该表中已经插入了三条数据。使用以下 SQL 语句可以创建一个新表 `t_key_event_file_student_100` 并复制数据: ```sql CREATE TABLE t_key_event_file_student_100 AS SELECT * FROM t_key_event_file_student; ``` 执行完上述语句后,可以通过查询新表来验证数据是否成功复制: ```sql SELECT * FROM t_key_event_file_student_100; ``` #### 注意事项 - **表结构复制不完整**:`CREATE TABLE AS` 命令只会复制原表的数据和基本的表结构,不会复制原表的约束(如主键、外键)、索引、注释以及序列等对象[^1]。 - **性能考虑**:如果原表包含大量数据,使用 `CREATE TABLE AS` 可能会导致较高的系统资源消耗,建议在低峰期执行此类操作。 - **仅复制表结构**:如果只需要复制表结构而不复制数据,可以在 `SELECT` 子句中添加 `WHERE FALSE` 条件,例如: ```sql CREATE TABLE new_table_name AS SELECT * FROM existing_table_name WHERE FALSE; ``` 或者使用 `LIMIT 0` 来实现相同的效果: ```sql CREATE TABLE new_table_name AS SELECT * FROM existing_table_name LIMIT 0; ``` 这种方法特别适用于需要快速创建空表的情况[^2]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值