sql

一、快速创建一个表
    1、create talbe1 as select * from table2 where 1 = 2
        创建一个和表table2结构一样的表,不复制数据。
    2、create table1 as select * from table2 
        创建一个和table2结构一样的表,同时将table2的数据复制到table1中。
    3、create table1(column1,column2) as select column1,column from table2
        创建一个和table2指定列结构一样的表,指定了新表的列名。
       以上3中并不复制table2的约束关系。
二、快速插入数据
    1、insert into table1(column1,column2) values(value1,value2)
        通常用这种方式插入数据
    2、insert into table1(column1,column2) select column1,column2 from table2
        这种方式不仅可以快速插入数据,还可以插入常量。
三、项目中用到的sql语句
    1、insert into user_load_temp (select t.id,t.load_date,t.userid,t.load,t.hms,t.load from base_load t where t.userid = 9  )
    2、update user_load_temp  t set t.load_date = t.load_date + (364)*24*60*60   where t.load_date != 1356969600;
    3、update user_load_temp  t set t.load_date = t.load_date + (365+364)*24*60*60   where t.load_date = 1356969600;   
    4、insert into user_load (select (rownum + 35040*37),i.load_date,38,i.load_val*1.5,i.hms from (select t.*  from user_load_temp t order by t.load_date ,t.hms) i); 
    5、select count(*),t.userid,t.load_date,t.hms  from user_load t where t.load_date between 1388505600 and 1419955200 group by t.userid,t.load_date,t.hms having count(*)>1
    6、insert into zones_load(
                         select rownum ,j.load_date,j.hms,j.loadvlaue,1 from (select   i.load_date,i.hms,sum(i.LOAD_VAL) loadvlaue from 
 (select t.load_date,t.hms,t.load_val from  user_load t
     union 
   select h.load_date,h.hms,h.load_val from  community_load h) i group by i.load_date,i.hms order by i.load_date,i.hms)j
)

你可能感兴趣的:(sql)