SQL应用及误区分析
上QQ阅读APP看书,第一时间看更新

t1

3.2 建表新增

SQL Server数据库与Oracle数据库中的建表新增语法不同。

SQL Server数据库中建表新增语法如以下代码所示。

        select * into table_a from table_b;

代码中各关键字的解释如下。

❑ select:关键字,指定要查询哪些列。

❑ into:关键字,指定要插入哪个表中。

❑ table_a:代表要新建的表。

❑ table_b:代表当前要查询的表。

Oracle数据库建表新增语法如以下代码所示。

        create table table_a as select * from table_b;

代码中各关键字的解释如下。

❑ create table:关键字,标识当前命令是新建表的命令。

❑ table_a:代表要新建的表。

❑ as:指定生成查询结果的语句。

❑ table_b:代表当前要查询的表。

建表新增将查询、建表和新增3个操作合并到了一个命令中,它将查询的结果集保存到一张新建的表中。在实际的编程中不会这么写,但是对于数据库管理员来说,这个操作非常有用,可以帮他快速地实现表结构的复制,也可以帮他很方便地对表中满足条件的数据进行备份。

接下来,通过一个例子来帮助读者掌握建表新增的用法。

例3-6:将EMP表中的数据插入名为EMP_BAK的新表中。

SQL Server数据库中的写法如图3-17所示。

图3-17

Oracle数据库中的写法如图3-18所示。

图3-18

有一点需要读者注意,建表新增会创建一张列属性一样的新表,也会把查询结果的记录插入新表中。但是,查询表的键、约束、索引、触发器等表的附属对象是不会自动创建到新表中的。无论是SQL Server数据库还是Oracle数据库都是这样处理的。