SQL语句SELECT INTO

本文详细介绍了SQL中的SELECT INTO语句,包括其基本语法、如何创建表、备份复制及归档记录等应用场景,并提供了多个实例演示如何使用此语句。

SELECT INTO 语句

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表和备份复件或者用于对记录进行存档。
SELECT INTO 语法
你可以把所有的列插入新表:

SELECT * INTO NEW_TABLE_NAME [IN EXTERNALDATABASE] FROM OLD_TABLENAME

或者只把希望的列插入新表:

SELECT COLUMN_NAME(S) INTO NEW_TABLE_NAME [IN EXTERNALDATABASE] FROM OLD_TABLENAME

SQL SELECT INTO 实例 - 制作备份复件
制作DUCK表的备份复件:

SELECT * INTO DUCK_BACKUP FROM DUCK

IN子句用于向另一个数据库中拷贝表:

SELECT * INTO DUCK IN 'BACKUP.mdb' FROM DUCK

如果我们希望拷贝某些域,可以在SELECT语句后列出这些域:

SELECT (NAME1,NAME2,NAME2,...) INTO DUCK_BACKUP FROM DUCK

SQL SELECT INTO 实例 - 带有 WHERE 子句
我们也可以添加WHERE子句。
把DUCK表中的IDENTIFIER和NAME提取出来汇成一张表

SELECT IDENTIFIER,NAME INTO DUCK_BACKUP FROM DUCK WHERE NAME='DUCKVO'

SQL SELECT INTO 实例 - 被连接的表
从一个以上的表中选取数据也是可以做到的。

SELECT DUCK.NAME CHICKEN.BIRTHDAY INTO DUCK_CHICKEN_BACKUP FROM DUCK INNER JOIN CHICKEN ON DUCK.IDENTIFIER=CHICKEN.IDENTIFIER

注意:如果在sql/plus或者PL/SQL执行这条语句,会报”ORA-00905:缺失关键字”错误,原因是PL/Sql与T-SQL的区别。

T-SQL中该句正常,但PL/SQL中解释是:

select..into is part of PL/SQL language which means you have to use it inside a PL/SQL block. You can not use it in a SQL statement outside of PL/SQL.

即不能单独作为一条sql语句执行,一般在PL/SQL程序块(block)中使用。

如果想在PL/SQL中实现该功能,可使用

Create table newTable as select * from ...

如:

create table NewTable as select * from OLDTable;

NewTable 除了没有键,其他的和OLDTable一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值