oracle 修改字段順序的兩種方法
一如果要修改字段順序,一般情況可以使用以下步驟:
--(1)備份目標表資料
create table 臨時表 as select * from 目標表;
--(2)drop 目標表
drop table 目標表;
--(3)再重新按照要求的字段順序建表;
create table 臨時表 (col1,................coln);
--(4)之後用select將資料從臨時表導回。
偽列rownum,連線操作符,別名,select list(select之後,from之前的部分)
select user_id,user_account||','||user_type aa
from tis_ft_user
where rownum<5;
select systimestamp - 7 from dual;
systimestamp這個函式返回的資料型別是timestamp with time zone.
the return type is timestamp with time zone.
systimestamp -7這個表示式
通常乙個表示式不能包含不同資料型別的值,那麼上面這個表示式發生隱式的資料轉換,將7轉成datetime型別,
資料型別優先順序,datetime和interval資料型別》binary_double>binary_float>number>character>所有其它的內建資料型別。
select * from e1 as of timestamp systimestamp - interval '6' minute
where id not in(select id from e1);
這個表示式是乙個函式減去乙個間隔常量
兩種資料型別進行運算
systimestamp - interval '6' minute
select * from tis_ft_recharge_record t
where
t.waybill_id is not null
and instr(t.audit_time,'2017-04-26')>0
and t.status='99';
where condition
乙個條件指定了乙個組合,這個組合是由乙個或多個表示式和邏輯操作符,並返回true,false,unknown值。
t.waybill is not null這是乙個null條件 格式是 expr is not null
instr(t.audit_time,'2017-04-26')>0這是乙個比較條件,而且前面是乙個函式表示式,後面是乙個常量表示式,由乙個比較條件構成乙個簡單比較條件。
格式是 expr1 >|<|=|<>|... expr2
t.status='99'這是乙個比較條件,等號兩邊都是乙個簡單表示式,左邊是乙個列,右邊是乙個字串。
三個條件用邏輯條件and結合起來構成乙個條件。
1=1總是計算為true
表結構
desc tmp_upstate_casekey
name null type
------------------- -------- ----------
tmp_upstate_casekey not null char(14)
tmp_num_status_id not null number(38)
updated_date not null date
需要生成的sql
insert into tmp_upstate_casekey values('tmp0000001', 1, sysdate);
儲存過程實現
create or replace procedure proc_casekey_upstate
ascasekey char(14);
begin
for i in 1..10000000 loop
casekey := 'tmp'||lpad(i,7,0); -- tmp0000001
insert into tmp_upstate_casekey values(casekey, 1, sysdate);
end loop;
commit;
end;
begin
proc_casekey_upstate();
end;
測試發現生成一千萬條資料用了14分鐘左右,效能還是可以了,如果先去掉tmp_num_status_id的外來鍵估計更快。
下面的方式速度更快,我測試插入一百萬條記錄十秒左右,當然了,這跟機器效能也有關係。
insert into tmp_upstate_casekey select 'tmp'||lpad(rownum,7,0),1,sysdate from dual connect by level <= 1000000;
Oracle SQL語句優化技術分析
操作符優化 in操作符 用in寫出來的sql的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。但是用in的sql效能總是比較低的,從oracle執行的步驟來分析用in的sql與不用in的sql有以下區別 oracle 試圖將其轉換成多個表的連線,如果轉換不成功則先執行in裡面的子查詢,再查...
IIS日誌分析練習
找到乙個被掛 的站點取日誌進行分析。分析過程 用d盾掃瞄整個站點的存在的可疑檔案,然後再日誌中對可疑檔案進行回溯。kindeditor檔案目錄下的後門第一次被訪問到是 202.131.82.144 最終這個 ip發現之前的操作時在 get請求其他後門檔案,響應碼均為 404 只有 kindedito...
分頁類分析 練習
file fyl.class.php 完美分頁類 fyl class fyl else if total 0 d 斜槓大寫d 非數字 斜槓小寫d 代表數字 else else this limit limit this setlimit 用於設定顯示分頁的資訊,可以進行連貫操作 param stri...