欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle怎么查詢函數(shù) oracle查詢函數(shù)表

如何查找oracle中用戶自定義函數(shù)信息

可以用如下語(yǔ)句查看用戶自定義的資源,如函數(shù)、存儲(chǔ)過程:

為環(huán)江等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及環(huán)江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、環(huán)江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

SELECT?*?FROM??USER_PROCEDURES;

查到概況后根據(jù)對(duì)象名字可以查看其源碼:

SELECT?*?FROM?USER_SOURCE?WHERE?NAME?=?'COMPUTERFEE';

oracle中查找一個(gè)字符串中某個(gè)字符的位置是什么函數(shù)

查找位置的函數(shù)為instr函數(shù)。下標(biāo)以1開始,如果不存在則返回0。

舉例如下:

1、創(chuàng)建測(cè)試表,

create table test_instr(str varchar2(20));

2、插入測(cè)試數(shù)據(jù)

insert into test_instr values ('abc');

insert into test_instr values ('cdaf');

insert into test_instr values ('bbed');

3、查詢表的記錄,select t.*, rowid from test_instr t;

4、編寫sql,查找字母'a'在表中各記錄的位置;

select t.*, instr(str,'a') location from test_instr t,可以發(fā)現(xiàn),最后一條記錄,不存在該字符的話,則返回0。

oracle 如何查詢?

Oracle查詢用戶表空間:select * from user_all_tables 

Oracle查詢所有函數(shù)和儲(chǔ)存過程:select * from user_source

Oracle查詢所有用戶:select * from all_users.select * from dba_users

Oracle查看當(dāng)前用戶連接:select * from v$Session

Oracle查看當(dāng)前用戶權(quán)限:select * from session_privs

表空間含義:

表空間是數(shù)據(jù)庫(kù)的邏輯劃分,一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù)。所有的數(shù)據(jù)庫(kù)對(duì)象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。

Oracle數(shù)據(jù)庫(kù)中至少存在一個(gè)表空間,即SYSTEM的表空間。

Oracle通用函數(shù),分組函數(shù),子查詢

注意 )Oracle中的字符串是嚴(yán)格區(qū)分大小寫的 日期和字符只能在單引號(hào)中出現(xiàn)

)把列與列 列與字符連接在一起用 || 符號(hào)

)列的別名 緊跟列名 也可以在列名和別名之間加入關(guān)鍵字 AS 以便在別名中包含空格或特殊的字符并區(qū)分大小寫 使用雙引號(hào)

例子

SELECT??? last_name? ||? is a ? ||? job_id?? AS? Employee Details

FROM??? employees

where??? first_name? like? %s_ ;

通用函數(shù)

空值是無(wú)效的 未指定的 未知的或不可預(yù)知的值 空值不是空格或者 包含空值的數(shù)學(xué)表達(dá)式的值都為空值

這些函數(shù)適用于任何數(shù)據(jù)類型 同時(shí)也適用于空值

NVL (expr expr )

NVL (expr expr expr )

NULLIF (expr expr )

COALESCE (expr expr exprn)

( )NVL (expr expr ) expr 為NULL 返回expr 不為NULL 返回expr 注意兩者的類型要一致

( )NVL (expr expr expr ) expr 不為NULL 返回expr 為NULL 返回expr expr 和expr 類型不同的話 expr 會(huì)轉(zhuǎn)換為expr 的類型

( )NULLIF (expr expr ) 相等返回NULL 不等返回expr

( )COALESCE(expr expr exprn) 列表中第一個(gè)非空的表達(dá)式是函數(shù)的返回值 如果所有的表達(dá)式都是空值 最終將返回一個(gè)空值

條件表達(dá)式在SQL語(yǔ)句中使用IF THEN ELSE 邏輯 可以使用兩種方法:–CASE表達(dá)式??? CASE? expr? WHEN? parison_expr ? THEN? return_expr ??????????????????? [WHEN? parison_expr ? THEN? return_expr ???????????????????? WHEN? parison_exprn? THEN? return_exprn???????????????????? ELSE? else_expr]??? END

–DECODE函數(shù)??? DECODE ( col | expression ? search ? result ??????????????? [ search result ]??????????????? [ default] )

分組函數(shù)

分組函數(shù)作用于一組數(shù)據(jù) 并對(duì)一組數(shù)據(jù)返回一個(gè)值

組函數(shù)語(yǔ)法

SELECT [column ] group_function(column)

FROM table

[WHERE condition]

[GROUP BY column]

[ORDER BY column];

注意 在SELECT列表中所有未包含在組函數(shù)中的列都應(yīng)該包含在GROUP BY子句中

(所用包含于SELECT列表中 而未包含于組函數(shù)中的列都必須包含于GROUPBY子句中)

但包含在GROUP BY 子句中的列不必包含在SELECT列表中

且可以在在GROUP BY子句中包含多個(gè)列

不能在WHERE子句中使用組函數(shù) 但可以在HAVING子句中使用組函數(shù)

使用HAVING過濾分組

行已經(jīng)被分組

使用了組函數(shù)

滿足HAVING子句中條件的分組將被顯示

SELECT column group_function

FROM table

[WHERE condition]

[GROUP BY group_by_expression]

[HAVING group_condition]

[ORDER BY column];

子查詢

語(yǔ)法

SELECT select_list

FROM table

WHERE expr operator

(SELECT select_list

FROM table);

注意 子查詢(內(nèi)查詢) 在主查詢之前一次執(zhí)行完成

子查詢的結(jié)果被主查詢使用(外查詢)

子查詢要包含在括號(hào)內(nèi)

將子查詢放在比較條件的右側(cè)

除非進(jìn)行Top N 分析 否則不要在子查詢中使用ORDER BY子句

單行操作符對(duì)應(yīng)單行子查詢 多行操作符對(duì)應(yīng)多行子查詢

單行操作符operator ??????????????????????????????????????????????????? 多行操作符operator

=??? 等于??????????????????????????????????????????????????????????????????????????? IN???? 等于列表中的任何一個(gè)

大于??????????????????????????????????????????????????????????????????????????? ANY? 和子查詢返回的任意一個(gè)值比較

=? 大于等于??????????????????????????????????????????????????????????????????? ALL?? 和子查詢返回的所有值比較

小于??????????????????????????????????????????????????????????????????????????? EXISTS? 功能等價(jià)于IN

=? 小于等于

不等于

DECODE和CASE SELECT中除GROUP BY 子句以外的所有子句中 都可以使用單行子查詢

在子查詢中使用HAVING子句

SELECT select_list

FROM table

[GROUP BY group_by_expression]

[HAVING group_condition] expr operator

(SELECT select_list

FROM table);

在FROM子句中使用子查詢 例子

SELECT a last_name a salary a department_id b salavg

FROM employees a (SELECT department_id AVG(salary) salavg

FROM employees

GROUP BY department_id) b

WHERE a department_id = b department_id

AND?? a salary b salavg;

有兩個(gè)簡(jiǎn)單例子 以說(shuō)明 exists 和 in 的效率問題

) select * from T where exists(select from T where T a=T a) ;

T 數(shù)據(jù)量小而T 數(shù)據(jù)量非常大時(shí) T T 時(shí) ) 的查詢效率高

) select * from T where T a in (select T a from T ) ;

T 數(shù)據(jù)量非常大而T 數(shù)據(jù)量小時(shí) T T 時(shí) ) 的查詢效率高

exists 用法

請(qǐng)注意 )句中的有顏色字體的部分 理解其含義

其中 select from T where T a=T a 相當(dāng)于一個(gè)關(guān)聯(lián)表查詢 相當(dāng)于

select from T T ???? where T a=T a

但是 如果你當(dāng)當(dāng)執(zhí)行 ) 句括號(hào)里的語(yǔ)句 是會(huì)報(bào)語(yǔ)法錯(cuò)誤的 這也是使用exists需要注意的地方

exists(xxx) 就表示括號(hào)里的語(yǔ)句能不能查出記錄 它要查的記錄是否存在

因此 select 這里的 其實(shí)是無(wú)關(guān)緊要的 換成 * 也沒問題 它只在乎括號(hào)里的數(shù)據(jù)能不能查找出來(lái) 是否存在這樣的記錄 如果存在 這 ) 句的where 條件成立

in 的用法

繼續(xù)引用上面的例子

) select * from T where T a in (select T a from T )

這里的 in 后面括號(hào)里的語(yǔ)句搜索出來(lái)的字段的內(nèi)容一定要相對(duì)應(yīng) 一般來(lái)說(shuō) T 和T 這兩個(gè)表的a字段表達(dá)的意義應(yīng)該是一樣的 否則這樣查沒什么意義

打個(gè)比方 T T 表都有一個(gè)字段 表示工單號(hào) 但是T 表示工單號(hào)的字段名叫 ticketid T 則為 id 但是其表達(dá)的意義是一樣的 而且數(shù)據(jù)格式也是一樣的 這時(shí) 用 )的寫法就可以這樣

select * from T where T ticketid in (select T id from T )

EXISTS操作符

EXISTS 操作符檢查在子查詢中是否存在滿足條件的行

如果在子查詢中存在滿足條件的行

– 不在子查詢中繼續(xù)查找

– 條件返回TRUE

如果在子查詢中不存在滿足條件的行

– 條件返回FALSE

– 繼續(xù)在子查詢中查找

相關(guān)子查詢

相關(guān)子查詢按照一行接一行的順序執(zhí)行 主查詢的每一行都執(zhí)行一次子查詢 子查詢使用了主查詢中的列

SELECT? column column

FROM? table outer

WHERE columnk operator (SELECT? colum colum

FROM? table

WHERE expr= outer expr);

相關(guān)更新

使用相關(guān)子查詢依據(jù)一個(gè)表中的數(shù)據(jù)更新另一個(gè)表的數(shù)據(jù)

UPDATE? table alias

SET? column = (SELECT? expression

FROM? table ? alias

WHERE? lumn = lumn);

相關(guān)刪除

使用相關(guān)子查詢依據(jù)一個(gè)表中的數(shù)據(jù)刪除另一個(gè)表的數(shù)據(jù)

DELETE FROM? table alias

WHERE? column operator (SELECT? expression

FROM? table alias

WHERE lumn = lumn);

WITH子句

使用WITH子句 可以避免在SELECT語(yǔ)句中重復(fù)書寫相同的語(yǔ)句塊

WITH子句將該子句中的語(yǔ)句塊執(zhí)行一次 并存儲(chǔ)到用戶的臨時(shí)表空間中

使用WITH子句可以提高查詢效率

我們可以使用WITH? Clause來(lái)定義一個(gè)query?? block 然后在SELECT?? statement的其它地方使用這個(gè)query?? block 如果在一個(gè)很復(fù)雜的 Query 里 我們必須重復(fù)地使用某個(gè) subquery 那么使用WITH?? Clause可以降低Query的復(fù)雜度以及提高 performance 因?yàn)閃ITH?? Clause 所讀出的資料會(huì)暫存在User的temporary?? tablespace中

WITH子句應(yīng)用舉例

WITH

dept_costs AS (SELECT? d department_name SUM(e salary) AS dept_total

FROM? employees e departments d

WHERE? e department_id = d department_id

GROUP BY? d department_name)

avg_cost? AS (SELECT? SUM(dept_total)/COUNT(*) AS dept_avg

FROM? dept_costs)

SELECT? *

FROM? dept_costs

WHERE? dept_total (SELECT? dept_avg

FROM? avg_cost)

ORDER BY? department_name;

GROUP BY 擴(kuò)展

帶有ROLLUP和CUBE操作的GROUP BY子句

使用帶有ROLLUP和CUBE操作的GROUP BY子句產(chǎn)生多種分組結(jié)果

ROLLUP產(chǎn)生n + 種分組結(jié)果 其是對(duì)GROUP BY子句的擴(kuò)展

CUBE產(chǎn)生 的n次方種分組結(jié)果 其是對(duì)GROUP BY子句的擴(kuò)展

注 其中的n指的是group_by_expression的數(shù)目

ROLLUP操作符 ROLLUP產(chǎn)生n + 種分組結(jié)果 順序是從右向左

SELECT? [column ] group_function(column)

FROM? table

[WHERE condition]

[GROUP BY [ROLLUP] group_by_expression]

[HAVING having_expression]

[ORDER BY column];

CUBE操作符 CUBE會(huì)產(chǎn)生類似于笛卡爾集的分組結(jié)果

SELECT? [column ] group_function(column)

FROM? table

[WHERE condition]

[GROUP BY [CUBE] group_by_expression]

[HAVING having_expression]

[ORDER BY column];

GROUPING函數(shù) 能夠?qū)崿F(xiàn)更加直觀的分組結(jié)果顯示提示

SELECT? [column ] group_function(column) [GROUPING(group_by_expression)]

FROM? table

[WHERE condition]

[GROUP BY? [ROLLUP] [CUBE] group_by_expression]

[HAVING having_expression]

[ORDER BY column];

GROUPING函數(shù)可以和CUBE或ROLLUP結(jié)合使用

使用GROUPING函數(shù) 可以找到哪些列在該行中參加了分組

使用GROUPING函數(shù) 可以區(qū)分空值產(chǎn)生的原因

GROUPING函數(shù)返回 或

GROUPING SETS

GROUPING SETS是對(duì)GROUP BY子句的進(jìn)一步擴(kuò)充

使用GROUPING SETS可以實(shí)現(xiàn)在同一個(gè)查詢中定義多個(gè)分組集

Oracle 對(duì)GROUPING SETS子句指定的分組集進(jìn)行分組后用UNION ALL操作將各分組結(jié)果結(jié)合起來(lái)

Grouping set 的優(yōu)點(diǎn)

– 只進(jìn)行一次分組即可

– 不必書寫復(fù)雜的UNION語(yǔ)句

– GROUPING SETS中包含的分組項(xiàng)越多性能越好

以下例子實(shí)現(xiàn)了對(duì)department_id job_id分組 對(duì)job_id manager_id分組 最終形成兩個(gè)分組

SELECT? department_id job_id manager_id avg(salary)

FROM? employees

GROUP BY GROUPING SETS ((department_id job_id) (job_id manager_id));

復(fù)合列

復(fù)合列是被作為整體處理的一組列的集合

使用括號(hào)將若干列組成復(fù)合列在ROLLUP或CUBE中作為整體進(jìn)行操作

在ROLLUP或CUBE中 復(fù)合列可以避免產(chǎn)生不必要的分組結(jié)果

例如 GROUP BY ROLLUP( department_id (job_id manager_id)); //小括號(hào)實(shí)現(xiàn)復(fù)合列

連接分組集

連接分組集可以產(chǎn)生有用的對(duì)分組項(xiàng)的結(jié)合

將各分組集 ROLLUP 和CUBE用逗號(hào)連接 Oracle自動(dòng)在GROUP BY子句中將各分組集進(jìn)行連接

連接的結(jié)果是對(duì)各分組生成笛卡爾集

例如 GROUP BY GROUPING SETS(a b) GROUPING SETS(c d);

lishixinzhi/Article/program/Oracle/201311/18505

oracle 怎樣查看已經(jīng)存在的函數(shù),過程

工具sqlplus或者plsqldeveloper

方法一:sqlplus

①登錄用戶后,執(zhí)行下面語(yǔ)句查看當(dāng)前用戶有哪些存儲(chǔ)過程:

select ?name from user_source where ?type='PROCEDURE';

或者:

select object_name from user_procedures;

或者:

select object_name from user_objects where object_type='PROCEDURE' ;

②找到你所要查詢的存儲(chǔ)過程名字后,執(zhí)行下面操作,可以看到存錯(cuò)過程內(nèi)容:

select ?text from user_source where name ='xxxx';--(xxxx代表所要查詢的存儲(chǔ)過程名字)

------------------------------------------------

如果是函數(shù),類似的方法,只需要把PROCEDURE,換成FUNCTION即可

-----------------------------------------------

方法二:pl/sql developer

打開該工具后,在最左側(cè)可以看到如下截圖,選擇 My objects

然后選擇functions或者Procedures,找到想要查看的對(duì)象后,選中,鼠標(biāo)右鍵,彈出一個(gè)選項(xiàng)頁(yè),這里主要的幾個(gè)做一下介紹:

view:查看,不能編輯

edit:可以編輯

drop:刪除該存儲(chǔ)過程

test:執(zhí)行該存儲(chǔ)過程

名稱欄目:oracle怎么查詢函數(shù) oracle查詢函數(shù)表
文章起源:http://chinadenli.net/article32/hghdsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站標(biāo)簽優(yōu)化搜索引擎優(yōu)化外貿(mào)建站網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)