`

SQL 语句

 
阅读更多

 

复制表

       1、select into frominsert into from

 

          (创建Table2,并从Table1复制内容)

          SELECT field1,field2 INTO Table2 FROM Table1

 

          ( Table2已经存在,只是从Table1复制内容 )

          INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROM Table1

 

      2、create table as 

          (创建Table2,并从Table1复制内容)

            CREATE Table2 (field1,field2,...) AS SELECT (field1,field2,... ) FROM Table1

 

求:并集、交集、补集合

 

   ---------union、union all 并集------------------

     --union 会去掉重复数据

     select * from table1

     union / union all

     select * from table2

   ---------union、union all 并集-----------------

 

    ----------intersect 交集 ------------------

      select * from table1

      intersect

      select * from table2

    ----------intersect 交集 ------------------

 

 

   ----------Oracle 补集 minus ------------------

     select * from table1

     minus

     select * from table2

   ----------Oracle 补集 minus ------------------

   ----------SQLServer2005 补集 except ------------------

     select * from table1

     except

     select * from table2

   ----------SQLServer2005 补集 except ------------------

 

 

----------------------级联 update-------------------------------------------------------------------------------------------

SQLServer:

update A SET 字段1=B表字段表达式, 字段2=B表字段表达式   from B WHERE    逻辑表达式
例如:
    UPDATE  table_A t1 

    SET t1.name = t12.name  
    FROM table_B t2 
    INNER JOIN  table_A 
    ON (table_B.id = table_A.id);
    实际更新的操作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的

 

Oracle :

 

写法一:
UPDATE table_A t1 
SET t 1.name = (SELECT tt.name FROM table_B tt  WHERE tt.pid = t1.id)

 WHERE EXISTS (SELECT 1 FROM table_B t2 WHERE t2.pid = t1.id)

UPDATE table_1 a 
SET t1.name= (SELECT tt.name  FROM table_B tt WHERE tt.pid = t1.id)
WHERE t1.id=(SELECT t2.pid FROM table_B t2  WHERE t2.pid = t1.id)


写法二:
UPDATE table_A t1
 SET (t1.name,t1.dept) = (SELECT t2.name, t2.dept FROM table_B t2 WHERE t2.pid = t1.id) 
WHERE EXISTS (SELECT 1 FROM table_B t2 WHERE t2.pid = t1.id);



UPDATE table_A t1
SET (t1.name,t1.dept) = (SELECT t2.name, t2.dept FROM table_B t2 WHERE t2.pid = t1.id) 
WHERE t1.id=(SELECT t2.pid FROM table_B t2  WHERE t2.pid = t1.id)

 

 

积累中... ...

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics