oracle sql分析練習

2021-09-08 12:44:02 字數 2558 閱讀 6809

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...