`

oracle,sqlserver数据库在查询结果基础上创建新表

 
阅读更多
功能:将查询的结果放到一个新表中去,查询结果可以来源于一个表或多个表

SQL SERVER中使用SELECT INTO语句

按照使用场合可以分为以下几类:

1. 实现全表备份:如:SELECT * INOT t1 FROM titles

2. 备份表的一部分列(不写*而写出列的列表)或一部分行(加WHERE条件)

如: SELECT title_id,title,price INTO t2 FROM titles—部分列

   SELECT * INTO t2 FROM titles WHREE price>10 –部分行

          SELECT title_id,title,price INTO t2 FROM titles WHREE price>10 –部分行和部分列

3. 只复制表的结构:如:SELECT * INOT t1 FROM titles WHERE 1=2

4. 查询结果来源于多个表:如:

SELECT title_id,title,pub_name INTO t3

FROM titles t INNER JOIN publishers p

ON t.pub_id=p.pub_id

 

Oracle中使用CREATE TABLE AS SELECT 语句

实现的功能与SQL SERVER中基本相同,只是语法不同。例如:

CREATE TABLE dept_bak AS SELECT * FROM dept;

 

请注意:使用此种方法生成的新表中没有主键等约束,如果需要加,请另外创建。

 

此外,批量插入数据的语句在SQL SERVER Oracle中是相同的,都是INSERT INTO SELECT……,如:

INSERT INTO t1 SELECT * FROM titles

INSERT INTO dept_bak SELECT * FROM dept;

 

来源:http://www.cnblogs.com/lgzslf/archive/2008/11/25/1340323.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics