%type是用來宣告乙個變數和指定表的column一樣的資料型別
例子如下: 需要加.哦
v_empname emp.ename%type;這樣一來v_empname和emp.ename的型別一樣了
%rowtype用來宣告乙個和表中記錄一樣
例子v_emp emp%rowtype;
這樣一來v_emp擁有了emp表中每一列的屬性,沒有資料只有屬性,就是列名和列的型別
使用依舊是加.
如果看不懂我的,可以檢視以下的鏈結,有更加詳細的解釋
大神講解%type和%rowtype在現在count(1)是指搜尋第一列的數量
count(*)是指搜尋所有列資料個數
理論上第一種快一些,但是count早就優化了,其實使用這兩個差別不大(非古董級別的資料庫),一般都是先索引了吧。
嫌我說不清的點這裡
還有這裡
nvl是非空函式,如果表示式1是空,那就返回表示式2的值,如果都為null,那麼返回null,表示式1和表示式2必須為同乙個資料型別
另外它的進化版nvl2(表示式1,表示式2,表示式3)
如果表示式1為空,那麼返回表示式3的值,否則返回表示式2的值;有點像a>b?a:b
lpad( string, padded_length, [ pad_string ] )
string
準備被填充的字串;
padded_length
填充之後的字串長度,也就是該函式返回的字串長度,如果這個數量比原字串的長度要短,lpad函式將會把字串擷取成從左到右的n個字元;
pad_string
填充字串,是個可選引數,這個字串是要貼上到string的左邊,如果這個引數未寫,lpad函式將會在string的左邊貼上空格。
lpad('abcde',10,'x') lpad('abcde',10,'oq')
***xxabcde oqoqoabcde
與lpad函式對應的是rpad函式:rpad
(string,padded_length,[pad_string]) 從右填充
|| 是字串累加 相當於sqlserver 「+」
'good ' || 'morning!' ==》good morning!
如'%a%'就代表乙個字串只要包含字母a就符合
條件'%a'則代表乙個字串需要以字母a結尾才符合條件
'a%'就是以a開頭的字串了
like "%王",則表示前面可能有n個字元。但是最後乙個字元是"王"字的串。如:小王。
芙蓉王。等
基本語法是:
select … from tablename
start with 條件1
connect by 條件2
where 條件3;
例:select * from table
start with org_id = 『hbhqfwgwpy』
connect by prior org_id = parent_id; --prior org_id指的是前乙個節點
其中:條件1是根結點的限定語句,當然可以放寬限定條件,以取得多個根結點,實際就是多棵樹。
條件2是連線條件,其中用
prior表示上一條記錄
,比如
connect by
prior org_id = parent_id
;就是說
上一條記錄的org_id 是本條記錄的parent_id
,即本記錄的父親是上一條記錄。
條件3是過濾條件,用於對返回的所有記錄進行過濾。
具體詳細用法看這裡大神的講解
簡單用法看這裡
max 函式返回一列中的最大值。null 值不包括在計算中。
union 操作符用於合併兩個或多個 select 語句的結果集。
請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。
列出的資料如果有重複就只會輸出一次,如果要重複的輸出則使用union all操作符
oracle的commit就是提交資料(這裡是釋放鎖不是鎖表),在未提交前你前面的操作更新的都是記憶體,沒有更新到物理檔案中。
執行commit從使用者角度講就是更新到物理檔案了,事實上commit時還沒有寫date file,而是記錄了redo log file,要從記憶體寫到data物理檔案,需要觸發檢查點,由dbwr這個後台程序來寫,這裡內容有點多的,如果不深究的話你就理解成commit即為從記憶體更新到物理檔案。
鎖有很多種,一般我們關注的都是dml操作產生的,比如insert,delete,update,select...for update都會同時觸發表級鎖和行級鎖
insert以後commit之前是鎖表的狀態,其他事務無法對該錶進行操作。
儲存過程中用到的年,月,周的函式
儲存過程中用到的年,月,周的函式 2007 06 01 09 13 周 dateadd wk,datediff wk,0,getdate 1 dateadd wk,datediff wk,0,getdate 6 月 dateadd mm,datediff mm,0,getdate 0 dateadd...
IOS 開發中用到的數學函式
1 三角函式 double sin double 正弦 double cos double 余弦 double tan double 正切 2 反三角函式 double asin double 結果介於 pi 2,pi 2 double acos double 結果介於 0,pi double at...
GitBook部署過程中用到的一些指令
2 安裝gitbook 首先設定npm上網 npm config set proxy http user password proxy host proxy port注1 在配置時輸入的配置命令列都可以在c盤user目錄下的使用者名稱目錄中的.npmrc找到 用notepad開啟 注2 執行npm指...