久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Oracle函數集錦

瀏覽:7日期:2023-11-11 19:46:34

感于總有些網友提出一些非常基礎的問題,比如有沒有實現某某功能的函數啊,某某函數是做什么用的啊,格式是什么等等,同時也感受到自己對oracle函數認識的不足,于是集中月余時間專注于oracle函數,小有心得不敢私藏,發之與諸公共享。

本文并不準備介紹全部的oracle函數,當前情勢下,俺也還沒這個時間,需要學習的東西太多了,要把多數時間花在學習經常能用上的技術方面:),所以如果是準備深入了解所有oracle函數的朋友,還是去關注:Oracle SQL Reference官方文檔更靠譜一些。

本文更多將會介紹三思在日常中經常會用到的,或者雖然很少用到,但是感覺挺有意思的一些函數。分二類介紹,分別是:

著名函數篇-經常用到的函數

非著名函數篇-即雖然很少用到,但某些情況下卻很實用

注:N表示數字型,C表示字符型,D表示日期型,[]表示內中參數可被忽略,fmt表示格式。

單值函數在查詢中返回單個值,可被應用到select,where子句,start with以及connect by 子句和having子句。

(一).數值型函數(Number Functions)

數值型函數輸入數字型參數并返回數值型的值。多數該類函數的返回值支持38位小數點,諸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小數點。ACOS, ASIN, ATAN, and ATAN2支持30位小數點。

1、MOD(n1,n2) 返回n1除n2的余數,如果n2=0則返回n1的值。

例如:SELECT MOD(24,5) FROM DUAL;

2、ROUND(n1[,n2]) 返回四舍五入小數點右邊n2位后n1的值,n2缺省值為0,如果n2為負數就舍入到小數點左邊相應的位上(雖然oracle documents上提到n2的值必須為整數,事實上執行時此處的判斷并不嚴謹,即使n2為非整數,它也會自動將n2取整后做處理,但是我文檔中其它提到必須為整的地方需要特別注意,如果不為整執行時會報錯的)。

例如:SELECT ROUND(23.56),ROUND(23.56,1),ROUND(23.56,-1) FROM DUAL;

3、TRUNC(n1[,n2] 返回截尾到n2位小數的n1的值,n2缺省設置為0,當n2為缺省設置時會將n1截尾為整數,如果n2為負值,就截尾在小數點左邊相應的位上。

例如:SELECT TRUNC(23.56),TRUNC(23.56,1),TRUNC(23.56,-1) FROM DUAL;

(二).字符型函數返回字符值(Character Functions Returning Character Values)

該類函數返回與輸入類型相同的類型。

? 返回的CHAR類型值長度不超過2000字節;

? 返回的VCHAR2類型值長度不超過4000字節;

如果上述應返回的字符長度超出,oracle并不會報錯而是直接截斷至最大可支持長度返回。

? 返回的CLOB類型值長度不超過4G;

對于CLOB類型的函數,如果返回值長度超出,oracle不會返回任何錯誤而是直接拋出錯誤。

1、LOWER(c) 將指定字符串內字符變為小寫,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB類型

例如:SELECT LOWER('WhaT is tHis') FROM DUAL;

2、UPPER(c) 將指定字符串內字符變為大寫,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB類型

例如:SELECT UPPER('WhaT is tHis') FROM DUAL;

 3、LPAD(c1,n[,c2]) 返回指定長度=n的字符串,需要注意的有幾點:

? 如果n

? 如果n>c1.length and c2 is null,以空格從左向右補充字符長度至n并返回;

? 如果n>c1.length and c2 is not null,以指定字符c2從左向右補充c1長度至n并返回;

例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL;

最后大家再猜一猜,如果n<0,結果會怎么樣

4、RPAD(c1,n[,c2]) 返回指定長度=n的字符串,基本與上同,不過補充字符是從右向左方向正好與上相反;

例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL;

5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺無敵的形容方式搞暈頭了吧,這個地方還是看圖更明了一些。

看起來很復雜,理解起來很簡單:

? 如果沒有指定任何參數則oracle去除c1頭尾空格

例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL;

? 如果指定了c2參數,則oracle去掉c1頭尾c2(這個建議細致測試,有多種不同情形的喲)

例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL;

? 如果指定了leading參數則會去掉c1頭部c2

例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL;

? 如果指定了trailing參數則會去掉c1尾部c2

例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL;

? 如果指定了both參數則會去掉c1頭尾c2(跟不指定有區別嗎?沒區別!)

例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL;

注意:c2長度=1

6、LTRIM(c1[,c2]) 千萬表以為與上面那個長的像,功能也與上面的類似,本函數是從字符串c1左側截取掉與指定字符串c2相同的字符并返回。如果c2為空則默認截取空格。

例如:SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;

7、RTRIM(c1,c2)與上同,不過方向相反

例如:SELECT RTRIM('WWhhhhhaT is tHis w W','W w') FROM DUAL;

8、REPLACE(c1,c2[,c3]) 將c1字符串中的c2替換為c3,如果c3為空,則從c1中刪除所有c2。

例如:SELECT REPLACE('WWhhhhhaT is tHis w W','W','-') FROM DUAL;

9、SOUNDEX(c) 神奇的函數啊,該函數返回字符串參數的語音表示形式,對于比較一些讀音相同,但是拼寫不同的單詞非常有用。計算語音的算法如下:

? 保留字符串首字母,但刪除a、e、h、i、o、w、y。

? 將下表中的數字賦給相對應的字母:

1:b、f、p、v

2:c、g、k、q、s、x、z

3:d、t

4:l

5:m、n

6:R

? 如果字符串中存在擁有相同數字的2個以上(包含2個)的字母在一起(例如b和f),或者只有h或w,則刪除其他的,只保留1個;

? 只返回前4個字節,不夠用0填充

例如:SELECT SOUNDEX('dog'),soundex('boy') FROM DUAL;

10、SUBSTR(c1,n1[,n2]) 截取指定長度的字符串。稍不注意就可能充滿了陷阱的函數。

n1=開始長度;

n2=截取的字符串長度,如果為空,默認截取到字符串結尾;

? 如果n1=0 then n1=1

? 如果n1>0,則oracle從左向右確認起始位置截取

例如:SELECT SUBSTR('What is this',5,3) FROM DUAL;

? 如果n1<0,則oracle從右向左數確認起始位置

例如:SELECT SUBSTR('What is this',-5,3) FROM DUAL;

? 如果n1>c1.length則返回空

例如:SELECT SUBSTR('What is this',50,3) FROM DUAL;

然后再請你猜猜,如果n2<1,會如何返回值呢

11、TRANSLATE(c1,c2,c3) 就功能而言,此函數與replace有些相似。但需要注意的一點是,translate是絕對匹配替換,這點與replace函數具有非常大區別。什么是絕對匹配替換呢?簡單的說,是將字符串c1中按一定的格式c2替換為c3。如果文字形容仍然無法理解,我們通過幾具實例來說明:

例如:

SELECT TRANSLATE('What is this','','-') FROM DUAL;

SELECT TRANSLATE('What is this','-','') FROM DUAL;

結果都是空。來試試這個:

SELECT TRANSLATE('What is this',' ',' ') FROM DUAL;

再來看這個:

SELECT TRANSLATE('What is this','ait','-*') FROM DUAL;

是否明白了點呢?Replace函數理解比較簡單,它是將字符串中指定字符替換成其它字符,它的字符必須是連續的。而translate中,則是指定字符串c1中出現的c2,將c2中各個字符替換成c3中位置順序與其相同的c3中的字符。明白了?Replace是替換,而translate則像是過濾。

 (三).字符型函數返回數字值(Character Functions Returning Number Values)

本類函數支持所有的數據類型

1、INSTR(c1,c2[,n1[,n2]]) 返回c2在c1中位置

? c1:原字符串

? c2:要尋找的字符串

? n1:查詢起始位置,正值表示從左到右,負值表示從右到左 (大小表示位置,比如3表示左面第3處開始,-3表示右面第3處開始)。黑黑,如果為0的話,則返回的也是0

? n2:第幾個匹配項。大于0

例如:SELECT INSTR('abcdefg','e',-3) FROM DUAL;

2、LENGTH(c) 返回指定字符串的長度。如果

例如:SELECT LENGTH('A123中') FROM DUAL;

猜猜SELECT LENGTH('') FROM DUAL;的返回值是什么

(四).日期函數(Datetime Functions)

本類函數中,除months_between返回數值外,其它都將返回日期。

1、ADD_MONTHS() 返回指定日期月份+n之后的值,n可以為任何整數。

例如:SELECT ADD_MONTHS(sysdate,12),ADD_MONTHS(sysdate,-12) FROM DUAL;

2、CURRENT_DATE 返回當前session所在時區的默認時間

例如:

SQL> alter session set nls_date_format = 'mm-dd-yyyy' ;

SQL> select current_date from dual;

3、SYSDATE 功能與上相同,返回當前session所在時區的默認時間。但是需要注意的一點是,如果同時使用sysdate與current_date獲得的時間不一定相同,某些情況下current_date會比sysdate快一秒。經過與xyf_tck(兄臺的大作ORACLE的工作機制寫的很好,深入淺出)的短暫交流,我們認為current_date是將current_timestamp中毫秒四舍五入后的返回,雖然沒有找到文檔支持,但是想來應該八九不離十。同時,僅是某些情況下會有一秒的誤差,一般情況下并不會對你的操作造成影響,所以了解即可。

例如:SELECT SYSDATE,CURRENT_DATE FROM DUAL;

4、LAST_DAY(d) 返回指定時間所在月的最后一天

例如:SELECT last_day(SYSDATE) FROM DUAL;

5、NEXT_DAY(d,n) 返回指定日期后第一個n的日期,n為一周中的某一天。但是,需要注意的是n如果為字符的話,它的星期形式需要與當前session默認時區中的星期形式相同。

例如:三思用的中文nt,nls_language值為SIMPLIFIED CHINESE

SELECT NEXT_DAY(SYSDATE,5) FROM DUAL;

SELECT NEXT_DAY(SYSDATE,'星期四') FROM DUAL;

兩種方式都可以取到正確的返回,但是:

SELECT NEXT_DAY(SYSDATE,'Thursday') FROM DUAL;

則會執行出錯,提供你說周中的日無效,就是這個原因了。

6、MONTHS_BETWEEN(d1,d2) 返回d1與d2間的月份差,視d1,d2的值大小,結果可正可負,當然也有可能為0

例如:

SELECT months_between(SYSDATE, sysdate),

months_between(SYSDATE, add_months(sysdate, -1)),

months_between(SYSDATE, add_months(sysdate, 1))

FROM DUAL;

7、ROUND(d[,fmt]) 前面講數值型函數的時候介紹過ROUND,此處與上功能基本相似,不過此處操作的是日期。如果不指定fmt參數,則默認返回距離指定日期最近的日期。

例如:SELECT ROUND(SYSDATE,'HH24') FROM DUAL;

8、TRUNC(d[,fmt]) 與前面介紹的數值型TRUNC原理相同,不過此處也是操作的日期型。

例如:SELECT TRUNC(SYSDATE,'HH24') FROM DUAL;

(五).轉換函數(Conversion Functions)

轉換函數將指定字符從一種類型轉換為另一種,通常這類函數遵循如下慣例:函數名稱后面跟著待轉換類型以及輸出類型。

1、TO_CHAR() 本函數又可以分三小類,分別是

? 轉換字符->字符TO_CHAR(c):將nchar,nvarchar2,clob,nclob類型轉換為char類型;

例如:SELECT TO_CHAR('AABBCC') FROM DUAL;

? 轉換時間->字符TO_CHAR(d[,fmt]):將指定的時間(data,timestamp,timestamp with time zone)按照指定格式轉換為varchar2類型;

例如:SELECT TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

? 轉換數值->字符TO_CHAR(n[,fmt]):將指定數值n按照指定格式fmt轉換為varchar2類型并返回;

例如:SELECT TO_CHAR(-100, 'L99G999D99MI') FROM DUAL;

2、TO_DATE(c[,fmt[,nls]]) 將char,nchar,varchar2,nvarchar2轉換為日期類型,如果fmt參數不為空,則按照fmt中指定格式進行轉換。注意這里的fmt參數。如果ftm為'J'則表示按照公元制(Julian day)轉換,c則必須為大于0并小于5373484的正整數。

例如:

SELECT TO_DATE(2454336, 'J') FROM DUAL;

SELECT TO_DATE('2007-8-23 23:25:00', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

為什么公元制的話,c的值必須不大于5373484呢?因為Oracle的DATE類型的取值范圍是公元前4712年1月1日至公元9999年12月31日。看看下面這個語句:

SELECT TO_CHAR(TO_DATE('9999-12-31','yyyy-mm-dd'),'j') FROM DUAL;

3、TO_NUMBER(c[,fmt[,nls]]) 將char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式轉換為數值類型并返回。

例如:SELECT TO_NUMBER('-100.00', '9G999D99') FROM DUAL;

(六).其它輔助函數(Miscellaneous Single-Row Functions)

1、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一個增強型的if else,只不過它并不通過多行語句,而是在一個函數內實現if else的功能。

exp做為初始參數。s做為對比值,相同則返回r,如果s有多個,則持續遍歷所有s,直到某個條件為真為止,否則返回默認值def(如果指定了的話),如果沒有默認值,并且前面的對比也都沒有為真,則返回空。

毫無疑問,decode是個非常重要的函數,在實現行轉列等功能時都會用到,需要牢記和熟練使用。

例如:select decode('a2','a1','true1','a2','true2','default') from dual;

2、GREATEST(n1,n2,...n) 返回序列中的最大值

例如:SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL;

3、LEAST(n1,n2....n) 返回序列中的最小值

例如:SELECT LEAST(15,5,75,8) LEAST FROM DUAL;

4、NULLIF(c1,c2)

Nullif也是個很有意思的函數。邏輯等價于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END

例如:SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL;

5、NVL(c1,c2) 邏輯等價于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何類型。如果兩者類型不同,則oracle會自動將c2轉換為c1的類型。

例如:SELECT NVL(null, '12') FROM DUAL;

6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用過nvl2嗎?如果c1非空則返回c2,如果c1為空則返回c3

例如:select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual;

7、SYS_CONNECT_BY_PATH(col,c) 該函數只能應用于樹狀查詢。返回通過c1連接的從根到節點的路徑。該函數必須與connect by 子句共同使用。

例如:

create;table;tmp3( rootcol;varchar2(10), nodecol;varchar2(10) ); insert;into;tmp3;values;('','a001'); insert;into;tmp3;values;('','b001'); insert;into;tmp3;values;('a001','a002'); insert;into;tmp3;values;('a002','a004'); insert;into;tmp3;values;('a001','a003'); insert;into;tmp3;values;('a003','a005'); insert;into;tmp3;values;('a005','a008'); insert;into;tmp3;values;('b001','b003'); insert;into;tmp3;values;('b003','b005'); select;lpad(';',;level*10,'=');||'>'||;sys_connect_by_path(nodecol,'/') from;tmp3 start;with;rootcol;=;'a001' connect;by;prior;nodecol;=rootcol; 8、SYS_CONTEXT(c1,c2[,n]) 將指定命名空間c1的指定參數c2的值按照指定長度n截取后返回。

Oracle9i提供內置了一個命名空間USERENV,描述了當前session的各項信息,其擁有下列參數:

? CURRENT_SCHEMA:當前模式名;

? CURRENT_USER:當前用戶;

? IP_ADDRESS:當前客戶端IP地址;

? OS_USER:當前客戶端操作系統用戶;

等等數十項,更詳細的參數列還請大家直接參考Oracle Online Documents

例如:SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;

注:N表示數字型,C表示字符型,D表示日期型,[]表示內中參數可被忽略,fmt表示格式。

單值函數在查詢中返回單個值,可被應用到select,where子句,start with以及connect by 子句和having子句。

(一).數值型函數(Number Functions)

數值型函數輸入數字型參數并返回數值型的值。多數該類函數的返回值支持38位小數點,諸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小數點。ACOS, ASIN, ATAN, and ATAN2支持30位小數點。

1、ABS(n) 返回數字的絕對值

例如:SELECT ABS(-1000000.01) FROM DUAL;

2、COS(n) 返回n的余弦值

例如:SELECT COS(-2) FROM DUAL;

3、ACOS(n) 反余弦函數,n between -1 and 1,返回值between 0 and pi。

例如:SELECT ACOS(0.9) FROM DUAL;

4、BITAND(n1,n2) 位與運算,這個太有意思了,雖然沒想到可能用到哪里,詳細說明一下:

假設3,9做位與運算,3的二進制形式為:0011,9的二進制形式為:1001,則結果是0001,轉換成10進制數為1。

例如:SELECT BITAND(3,9) FROM DUAL;

5、CEIL(n) 返回大于或等于n的最小的整數值

例如:SELECT ceil(18.2) FROM DUAL;

考你一下,猜猜ceil(-18.2)的值會是什么呢?

6、FLOOR(n) 返回小于等于n的最大整數值

例如:SELECT FLOOR(2.2) FROM DUAL;

再猜猜floor(-2.2)的值會是什么呢

7、BIN_TO_NUM(n1,n2,....n) 二進制轉向十進制

例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

8、SIN(n) 返回n的正玄值,n為弧度。

例如:SELECT SIN(10) FROM DUAL;

9、SINH(n) 返回n的雙曲正玄值,n為弧度。

例如:SELECT SINH(10) FROM DUAL;

10、ASIN(n) 反正玄函數,n between -1 and 1,返回值between pi/2 and -pi/2。

例如:SELECT ASIN(0.8) FROM DUAL;

11、TAN(n) 返回n的正切值,n為弧度

例如:SELECT TAN(0.8) FROM DUAL;

12、TANH(n) 返回n的雙曲正切值,n為弧度

例如:SELECT TANH(0.8) FROM DUAL;

13、ATAN(n) 反正切函數,n表示弧度,返回值between pi/2 and -pi/2。

例如:SELECT ATAN(-444444.9999999) FROM DUAL;

14、EXP(n) 返回e的n次冪,e = 2.71828183 ...

例如:SELECT EXP(3) FROM DUAL;

15、LN(n) 返回n的自然對數,n>0

例如:SELECT LN(0.9) FROM DUAL;

16、LOG(n1,n2) 返回以n1為底n2的對數,n1 >0 and not 1 ,n2>0

例如:SELECT LOG(1.1,2.2) FROM DUAL;

17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以為任意數值,不過如果m是負數,則n必須為整數

例如:SELECT POWER(2.2,2.2) FROM DUAL;

18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.

例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

19、SQRT(n) 返回n的平方根,n為弧度。n>=0

例如:SELECT SQRT(0.1) FROM DUAL;

(二).字符型函數返回字符值(Character Functions Returning Character Values)

該類函數返回與輸入類型相同的類型。

? 返回的CHAR類型值長度不超過2000字節;

? 返回的VCHAR2類型值長度不超過4000字節;

如果上述應返回的字符長度超出,oracle并不會報錯而是直接截斷至最大可支持長度返回。

? 返回的CLOB類型值長度不超過4G;

對于CLOB類型的函數,如果返回值長度超出,oracle不會返回任何錯誤而是直接拋出錯誤。

1、CHR(N[ USING NCHAR_CS]) 返回指定數值在當前字符集中對應的字符

例如:SELECT CHR(95) FROM DUAL;

2、CONCAT(c1,c2) 連接字符串,等同于||

例如:SELECT concat('aa','bb') FROM DUAL;

3、INITCAP(c) 將字符串中單詞的第一個字母轉換為大寫,其它則轉換為小寫

例如:SELECT INITCAP('whaT is this') FROM DUAL;

4、NLS_INITCAP(c) 返回指定字符串,并將字符串中第一個字母變大寫,其它字母變小寫

例如:SELECT NLS_INITCAP('中華miNZHu') FROM DUAL;

它還具有一個參數:Nlsparam用來指定排序規則,可以忽略,默認狀態該參數為當前session的排序規則。

(三).字符型函數返回數字值(Character Functions Returning Number Values)

本類函數支持所有的數據類型

1、ASCII(c) 與chr函數的用途剛剛相反,本函數返回指定字符在當前字符集下對應的數值。

例如:SELECT ASCII('_') FROM DUAL;

(四).日期函數(Datetime Functions)

本類函數中,除months_between返回數值外,其它都將返回日期。

1、CURRENT_TIMESTAMP([n]) 返回當前session所在時區的日期和時間。n表示毫秒級的精度,不大于6

例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

2、LOCALTIMESTAMP([n]) 與上同,返回當前session所在時區的日期和時間。n表示毫秒級的精度,不大于6

例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

3、SYSTIMESTAMP([n]) 與上同,返回當前數據庫所在時區的日期和時間,n表示毫秒級的精度,>0 and <6

例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

4、DBTIMEZONE 返回數據庫的當前時區

例如:SELECT DBTIMEZONE FROM DUAL;

5、SESSIONTIMEZONE 返回當前session所在時區

例如:SELECT SESSIONTIMEZONE FROM DUAL;

6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 從指定時間提到指定日期列

例如:SELECT EXTRACT(year from sysdate) FROM DUAL;

7、TO_TIMESTAMP(c1[,fmt]) 將指定字符按指定格式轉換為timestamp格式。

例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

(五).轉換函數(Conversion Functions)

轉換函數將指定字符從一種類型轉換為另一種,通常這類函數遵循如下慣例:函數名稱后面跟著待轉換類型以及輸出類型。

1、BIN_TO_NUM(n1,n2...n) 將一組位向量轉換為等價的十進制形式。

例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

2、CAST(c as newtype) 將指定字串轉換為指定類型,基本只對字符類型有效,比如char,number,date,rowid等。此類轉換有一個專門的表列明了哪種類型可以轉換為哪種類型,此處就不作酹述。

例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

3、CHARTOROWID(c) 將字符串轉換為rowid類型

例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

4、ROWIDTOCHAR(rowid) 轉換rowid值為varchar2類型。返回串長度為18個字節。

例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

5、TO_MULTI_BYTE(c) 將指定字符轉換為全角并返回char類型字串

例如:SELECT TO_MULTI_BYTE('ABC abc 中華') FROM DUAL;

6、TO_SINGLE_BYTE(c) 將指定字符轉換為半角并返回char類型字串

例如:SELECT TO_SINGLE_BYTE('ABC abc中華') FROM DUAL;

(六).其它輔助函數(Miscellaneous Single-Row Functions)

1、COALESCE(n1,n2,....n) 返回序列中的第一個非空值

例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;

2、DUMP(exp[,fmt[,start[,length]]])

dump是個功能非常強悍的函數,對于深入了解oracle存儲的人而言相當有用。所以對于我們這些僅僅只是應用的人而言就不知道能將其應用于何處了。此處僅介紹用法,不對其功能做深入分析。

如上所示,dump擁有不少參數。其本質是以指定格式,返回指定長度的exp的內部表示形式的varchar2值。fmt含4種格式:8||10||16||17,分別表示8進制,10進制,16進制和單字符,默認為10進制。start參數表示開始位置,length表示以,分隔的字串數。

例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;

3、EMPTY_BLOB,EMPTY_CLOB 這兩個函數都是返回空lob類型,通常被用于insert和update等語句以初始化lob列,或者將其置為空。EMPTY表示LOB已經被初始化,只不過還沒有用來存儲數據。

4、NLS_CHARSET_NAME(n) 返回指定數值對應的字符集名稱。

例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

5、NLS_CHARSET_ID(c) 返回指定字符對應的字符集id。

例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一個NCHAR值的聲明寬度(以字符為單位).n1是該值以字節為單位的長度,n2是該值的字符集ID

例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

7、SYS_EXTRACT_UTC(timestamp) 返回標準通用時間即格林威治時間。

例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

8、SYS_TYPEID(object_type) 返回對象類型對應的id。

例如:這個這個,沒有建立過自定義對象,咋做示例?

9、UID 返回一個唯一標識當前數據庫用戶的整數。

例如:SELECT UID FROM DUAL;

10、USER 返回當前session用戶

例如:SELECT USER FROM DUAL;

11、USERENV(c) 該函數用來返回當前session的信息,據oracle文檔的說明,userenv是為了保持向下兼容的遺留函數。oracle公司推薦你使用sys_context函數調用USERENV命名空間來獲取相關信息,所以大家了解下就行了。

例如:SELECT USERENV('LANGUAGE') FROM DUAL;

12、VSIZE(c) 返回c的字節數。

例如:SELECT VSIZE('abc中華') FROM DUAL;

注:N表示數字型,C表示字符型,D表示日期型,[]表示內中參數可被忽略,fmt表示格式。

單值函數在查詢中返回單個值,可被應用到select,where子句,start with以及connect by 子句和having子句。

(一).數值型函數(Number Functions)

數值型函數輸入數字型參數并返回數值型的值。多數該類函數的返回值支持38位小數點,諸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小數點。ACOS, ASIN, ATAN, and ATAN2支持30位小數點。

1、ABS(n) 返回數字的絕對值

例如:SELECT ABS(-1000000.01) FROM DUAL;

2、COS(n) 返回n的余弦值

例如:SELECT COS(-2) FROM DUAL;

3、ACOS(n) 反余弦函數,n between -1 and 1,返回值between 0 and pi。

例如:SELECT ACOS(0.9) FROM DUAL;

4、BITAND(n1,n2) 位與運算,這個太有意思了,雖然沒想到可能用到哪里,詳細說明一下:

假設3,9做位與運算,3的二進制形式為:0011,9的二進制形式為:1001,則結果是0001,轉換成10進制數為1。

例如:SELECT BITAND(3,9) FROM DUAL;

5、CEIL(n) 返回大于或等于n的最小的整數值

例如:SELECT ceil(18.2) FROM DUAL;

考你一下,猜猜ceil(-18.2)的值會是什么呢

6、FLOOR(n) 返回小于等于n的最大整數值

例如:SELECT FLOOR(2.2) FROM DUAL;

再猜猜floor(-2.2)的值會是什么呢

7、BIN_TO_NUM(n1,n2,....n) 二進制轉向十進制

例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

8、SIN(n) 返回n的正玄值,n為弧度。

例如:SELECT SIN(10) FROM DUAL;

9、SINH(n) 返回n的雙曲正玄值,n為弧度。

例如:SELECT SINH(10) FROM DUAL;

10、ASIN(n) 反正玄函數,n between -1 and 1,返回值between pi/2 and -pi/2。

例如:SELECT ASIN(0.8) FROM DUAL;11、TAN(n) 返回n的正切值,n為弧度

例如:SELECT TAN(0.8) FROM DUAL;

12、TANH(n) 返回n的雙曲正切值,n為弧度

例如:SELECT TANH(0.8) FROM DUAL;

13、ATAN(n) 反正切函數,n表示弧度,返回值between pi/2 and -pi/2。

例如:SELECT ATAN(-444444.9999999) FROM DUAL;

14、EXP(n) 返回e的n次冪,e = 2.71828183 ...

例如:SELECT EXP(3) FROM DUAL;

15、LN(n) 返回n的自然對數,n>0

例如:SELECT LN(0.9) FROM DUAL;

16、LOG(n1,n2) 返回以n1為底n2的對數,n1 >0 and not 1 ,n2>0

例如:SELECT LOG(1.1,2.2) FROM DUAL;

17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以為任意數值,不過如果m是負數,則n必須為整數

例如:SELECT POWER(2.2,2.2) FROM DUAL;

18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.

例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

19、SQRT(n) 返回n的平方根,n為弧度。n>=0

例如:SELECT SQRT(0.1) FROM DUAL;

(二).字符型函數返回字符值(Character Functions Returning Character Values)

該類函數返回與輸入類型相同的類型。

? 返回的CHAR類型值長度不超過2000字節;

? 返回的VCHAR2類型值長度不超過4000字節;

如果上述應返回的字符長度超出,oracle并不會報錯而是直接截斷至最大可支持長度返回。

? 返回的CLOB類型值長度不超過4G;

對于CLOB類型的函數,如果返回值長度超出,oracle不會返回任何錯誤而是直接拋出錯誤。

1、CHR(N[ USING NCHAR_CS]) 返回指定數值在當前字符集中對應的字符

例如:SELECT CHR(95) FROM DUAL;

2、CONCAT(c1,c2) 連接字符串,等同于||

例如:SELECT concat('aa','bb') FROM DUAL;3、INITCAP(c) 將字符串中單詞的第一個字母轉換為大寫,其它則轉換為小寫

例如:SELECT INITCAP('whaT is this') FROM DUAL;

4、NLS_INITCAP(c) 返回指定字符串,并將字符串中第一個字母變大寫,其它字母變小寫

例如:SELECT NLS_INITCAP('中華miNZHu') FROM DUAL;

它還具有一個參數:Nlsparam用來指定排序規則,可以忽略,默認狀態該參數為當前session的排序規則。

(三).字符型函數返回數字值(Character Functions Returning Number Values)

本類函數支持所有的數據類型

1、ASCII(c) 與chr函數的用途剛剛相反,本函數返回指定字符在當前字符集下對應的數值。

例如:SELECT ASCII('_') FROM DUAL;

(四).日期函數(Datetime Functions)

本類函數中,除months_between返回數值外,其它都將返回日期。

1、CURRENT_TIMESTAMP([n]) 返回當前session所在時區的日期和時間。n表示毫秒級的精度,不大于6

例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

2、LOCALTIMESTAMP([n]) 與上同,返回當前session所在時區的日期和時間。n表示毫秒級的精度,不大于6

例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

3、SYSTIMESTAMP([n]) 與上同,返回當前數據庫所在時區的日期和時間,n表示毫秒級的精度,>0 and <6

例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

4、DBTIMEZONE 返回數據庫的當前時區

例如:SELECT DBTIMEZONE FROM DUAL;

5、SESSIONTIMEZONE 返回當前session所在時區

例如:SELECT SESSIONTIMEZONE FROM DUAL;

6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 從指定時間提到指定日期列

例如:SELECT EXTRACT(year from sysdate) FROM DUAL;

7、TO_TIMESTAMP(c1[,fmt]) 將指定字符按指定格式轉換為timestamp格式。

例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

(五).轉換函數(Conversion Functions)

轉換函數將指定字符從一種類型轉換為另一種,通常這類函數遵循如下慣例:函數名稱后面跟著待轉換類型以及輸出類型。

1、BIN_TO_NUM(n1,n2...n) 將一組位向量轉換為等價的十進制形式。

例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

2、CAST(c as newtype) 將指定字串轉換為指定類型,基本只對字符類型有效,比如char,number,date,rowid等。此類轉換有一個專門的表列明了哪種類型可以轉換為哪種類型,此處就不作酹述。例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

3、CHARTOROWID(c) 將字符串轉換為rowid類型

例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

4、ROWIDTOCHAR(rowid) 轉換rowid值為varchar2類型。返回串長度為18個字節。

例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

5、TO_MULTI_BYTE(c) 將指定字符轉換為全角并返回char類型字串

例如:SELECT TO_MULTI_BYTE('ABC abc 中華') FROM DUAL;

6、TO_SINGLE_BYTE(c) 將指定字符轉換為半角并返回char類型字串

例如:SELECT TO_SINGLE_BYTE('ABC abc中華') FROM DUAL;

  (六).其它輔助函數(Miscellaneous Single-Row Functions)

1、COALESCE(n1,n2,....n) 返回序列中的第一個非空值

例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;

2、DUMP(exp[,fmt[,start[,length]]])

dump是個功能非常強悍的函數,對于深入了解oracle存儲的人而言相當有用。所以對于我們這些僅僅只是應用的人而言就不知道能將其應用于何處了。此處僅介紹用法,不對其功能做深入分析。

如上所示,dump擁有不少參數。其本質是以指定格式,返回指定長度的exp的內部表示形式的varchar2值。fmt含4種格式:8||10||16||17,分別表示8進制,10進制,16進制和單字符,默認為10進制。start參數表示開始位置,length表示以,分隔的字串數。

例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;

3、EMPTY_BLOB,EMPTY_CLOB 這兩個函數都是返回空lob類型,通常被用于insert和update等語句以初始化lob列,或者將其置為空。EMPTY表示LOB已經被初始化,只不過還沒有用來存儲數據。

4、NLS_CHARSET_NAME(n) 返回指定數值對應的字符集名稱。

例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

5、NLS_CHARSET_ID(c) 返回指定字符對應的字符集id。

例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一個NCHAR值的聲明寬度(以字符為單位).n1是該值以字節為單位的長度,n2是該值的字符集ID

例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

7、SYS_EXTRACT_UTC(timestamp) 返回標準通用時間即格林威治時間。

例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

8、SYS_TYPEID(object_type) 返回對象類型對應的id。

例如:這個這個,沒有建立過自定義對象,咋做示例?

9、UID 返回一個唯一標識當前數據庫用戶的整數。

例如:SELECT UID FROM DUAL;

10、USER 返回當前session用戶

例如:SELECT USER FROM DUAL;

11、USERENV(c) 該函數用來返回當前session的信息,據oracle文檔的說明,userenv是為了保持向下兼容的遺留函數。oracle公司推薦你使用sys_context函數調用USERENV命名空間來獲取相關信息,所以大家了解下就行了。

例如:SELECT USERENV('LANGUAGE') FROM DUAL;

12、VSIZE(c) 返回c的字節數。

例如:SELECT VSIZE('abc中華') FROM DUAL;

標簽: Oracle 數據庫
相關文章:
主站蜘蛛池模板: 久在线视频 | 自拍偷拍亚洲视频 | av大片| 久久综合久久久 | 日韩av在线中文字幕 | 午夜视频网站 | 亚洲视频在线观看免费 | 国产高清在线精品一区二区三区 | 99亚洲视频| 欧美日本韩国一区二区 | 精品国产欧美一区二区三区成人 | 国产一区二区三区在线免费 | 一区二区三区久久 | 日韩精品一区二区三区中文在线 | 一区二区三区在线 | 国产视频一区二区 | 久久久国产精品视频 | 国产伊人久 | 国产电影一区二区 | 日日骚av | 国产精品久久久久久久久久东京 | 亚洲国产成人久久一区二区三区 | 一区二区日韩欧美 | 中文字幕久久久 | 激情久久av一区av二区av三区 | 天天干夜夜爽 | 国产一区二区三区久久 | www国产在线观看 | av中文字幕第一页 | 久久不卡| 欧美精品在线一区二区 | 成人涩涩日本国产一区 | 亚洲国产精品成人 | 国产午夜精品一区二区三区嫩草 | 中文字幕一区二区三区四区 | 成人一区二区在线 | 91福利视频导航 | 99爱视频 | 四虎动漫 | 国产乱码一区二区三区在线观看 | 午夜精品一区二区三区在线视频 | 国产99久久久久久免费看农村 | 国产伦精品一区二区 | 欧美一区二区三 | 久久精品综合 | 96自拍视频 | 欧美区亚洲区 | 国产精品一区二区三区四区 | 日韩91 | 欧美www.| 久久久久精 | 精品视频久久 | 日韩大尺度在线观看 | 国产日韩精品一区二区在线观看播放 | 欧洲一区二区三区 | 成人免费高清视频 | 亚洲视频在线免费观看 | 欧洲成人在线 | 精品国产精品国产偷麻豆 | 国产精品成人在线 | 超级乱淫片国语对白免费视频 | 久久精品国产亚卅av嘿嘿 | av免费网站 | 国产欧美精品一区二区三区四区 | 欧美精品一区二区三区四区 | 国产成人免费在线观看 | 日韩一区二区三区av | 欧美日韩在线精品 | 国产欧美在线观看 | av午夜电影| 日韩精品视频久久 | 亚洲三级在线观看 | 一级毛片在线播放 | 国产性色av| 国产综合精品一区二区三区 | 精品二区 | avmans最新导航地址 | 日韩av资源站 | 久久精品二区亚洲w码 | 欧美久久久久久久久久久 | 亚洲福利影院 | 日本在线观看www | 日本成人中文字幕 | 91精品一区二区三区久久久久久 | 亚洲国内精品 | 亚洲一区视频在线 | 成人国产精品视频 | 国产精品久久久久久中文字 | 91在线免费视频 | 成人精品福利视频 | 国产在线精品一区二区三区 | 欧美视频二区 | 亚洲成av人片一区二区三区 | 欧美自拍视频在线 | 在线免费一级片 | 中文字幕av在线 | 超碰在线看| 精品欧美黑人一区二区三区 | 中文字幕一区二区三区乱码在线 | 亚洲精品在线播放 | 特黄视频 | 亚洲免费电影一区 | 蜜桃一区二区 | 精品国产伦一区二区三区观看说明 | 欧美性视频网站 | 午夜精品久久久久久久男人的天堂 | 后人极品翘臀美女在线播放 | 欧美精品综合 | 在线欧美色 | 中文日韩av | 欧美一区二区精品 | 精品在线播放 | 日韩在线小视频 | 亚洲一区二区三区免费在线观看 | 日日干,天天干 | 综合av第一页 | hd国产人妖ts另类视频 | 亚洲精品国产setv | 一区网站| 日韩欧美一区二区视频 | 高清av在线| 91福利视频导航 | 播放毛片 | 久久99精品国产麻豆婷婷洗澡 | 黄色免费视频 | 亚洲 欧美 精品 | 国产在线中文字幕 | 色婷网| 亚洲精品a在线观看 | av国产精品| 久久高清 | 国产一区二区三区久久 | 99精品视频网 | 亚洲人人草 | 91精品一区二区三区久久久久 | 免费视频一区二区 | 天堂一区 | 日韩影院在线 | 热久久这里只有精品 | 午夜电影网站 | 国产美女视频一区 | 国产精品手机在线 | 精品国产精品三级精品av网址 | 国产精品99久久免费观看 | 日本久久精品一区 | 久久精品这里只有精品 | 欧美亚洲视频在线观看 | 天天干天天操 | 成人一区二区三区久久精品嫩草 | 一区久久| 久久精品国产99国产 | 一级片免费在线 | 天堂成人国产精品一区 | 午夜黄色av | 中文字幕在线观看免费视频 | 日韩毛片 | av一二三区 | 欧美高清视频一区 | 国产成人精品一区二区在线 | 99草草| 在线精品一区 | 国产精品亚欧美一区二区 | 欧美成亚洲 | 国产裸体永久免费视频网站 | 亚洲欧洲一区二区三区 | 91精品久久久久 | 国产日韩欧美 | 成人免费视频观看视频 | 国产精品成av人在线视午夜片 | 激情欧美日韩一区二区 | 日日操操| 中文一区| 亚洲精品成人 | 亚洲一区中文字幕 | 国产精品久久久久毛片软件 | 蜜臀91精品国产高清在线观看 | www.久久精品 | 欧美区视频 | 精品久久久久一区二区国产 | 日韩精品一区二 | 国产日韩一区二区三免费高清 | 日韩大片一区 | 一区二区三区不卡视频 | 亚洲女人天堂av | 免费成人小视频 | 久久欧美高清二区三区 | 91网站在线播放 | 国产精品久久免费观看spa | 成人看的羞羞视频免费观看 | 久久精品国产精品亚洲 | 中文字幕一区二区三区精彩视频 | 成人亚洲精品 | 羞羞视频在线观看视频 | 国产色网 | 欧美一区二区三区 | 亚洲成年片 | 国产成人精品久久二区二区 | 欧美日韩中文 | 午夜免费电影 | 亚洲www啪成人一区二区 | 91久久久精品视频 | 成人免费网站在线观看 | 成人免费一区二区三区视频网站 | 久久精品亚洲 | 日韩在线视频网站 | 国产精品二区三区 | 欧美喷潮久久久xxxxx | 亚洲欧美aⅴ | 久久国产精品一区二区 | 99精品国产高清一区二区麻豆 | 一级a性色生活片毛片 | 日韩在线播放一区 | 一区二区三区四区国产 | 国产欧美综合一区二区三区 | 在线播放亚洲 | 亚洲一区二区 | 在线观看国产精品一区二区 | 国产成人精品av | 国产毛片在线看 | 欧美久久视频 | 国产视频一区二区 | 在线观看视频一区二区 | 国产精品毛片久久久久久久 | 欧美日韩一区二区视频在线观看 | 天天爽夜夜爽夜夜爽精品视频 | 欧洲一区二区在线观看 | 亚洲一区二区中文字幕 | 一二三四区视频在线观看 | 国产精品久久久久国产a级 91福利网站在线观看 | 国内精品三级 | 国产精品99久久免费观看 | h色视频在线观看 | 中文字幕亚洲精品 | 成人国产电影 | 日日碰碰 | 国产不卡一二三区 | 日本高清视频在线播放 | 视频一区二区三区中文字幕 | 免费久久99精品国产婷婷六月 | 蜜桃免费一区二区三区 | 色欧美日韩 | 久久久久久亚洲 | 日韩一区二区黄色片 | 精品二区 | 91麻豆产精品久久久久久 | 色橹橹欧美在线观看视频高清 | www成人精品| 国产精选一区二区 | 黄色免费网址大全 | 国产精品久久久久一区二区三区 | 国产精品久久久久久久一区探花 | 国产www网站 | 在线欧美亚洲 | 国产成人久久精品一区二区三区 | 免费99精品国产自在在线 | 精品国产一区二区三区在线观看 | 天堂资源在线 | 国产大学生援交视频在线观看 | 黄色免费av | 韩国av一区二区 | 色综合99| 日韩一二三区视频 | 成人欧美一区二区三区黑人孕妇 | 天天操操 | 免费av在线网 | 国产在线精品一区二区 | 欧美日韩国产一区 | 日本在线观看 | 91亚洲一区 | 久久中文字幕一区 | 色综合久久久久 | 国产精品亚洲精品 | 成人高清 | 91亚洲一区| 欧美日韩国产一区二区三区 | 欧美在线一区二区三区 | 欧美激情一区二区三区 | 在线日韩欧美 | 一级毛片中国 | 国产精品三级在线 | 97人人干| 精品成人网 | 欧美一级小视频 | 福利视频网 | 在线中文字幕视频 | 视频精品一区 | 亚洲一区二区黄 | 夜夜艹| 国产亚洲精品久 | 成人精品电影 | 在线观看91 | 日本久久精品一区二区 | 亚洲成人av片 | 一级毛片免费观看 | 人人射人人 | 国产成人午夜高潮毛片 | 四虎黄色网 | 亚洲精品网址 | 在线观看免费黄色 | 久久久久久久久国产精品 | 久草天堂| 黄色毛片在线观看 | 日韩中文字幕免费在线 | 精品久久久久久久久久久久 | 91免费版在线观看 | 可以免费观看的av | 九九热在线视频 | 正在播放国产精品 | 国产一区二区av在线 | 一区二区视频网站 | 欧美一区二区大片 | 欧美一级免费看 | 久久综合91 | 精品三区 | 91久久精品| 夜夜艹日日艹 | 日日视频 | 午夜影院在线 | 狠狠色综合久久丁香婷婷 | 中出片 | 成人av小说 | 欧美一二三四成人免费视频 | 国产精品久久久久久久久久免费看 | 99中文字幕| 国产成人精品网站 | 国产精品久久久久久久久久东京 | 精品专区 | 色婷婷导航| 操片 | 日韩欧美在线一区 | 成人欧美一区二区三区黑人孕妇 | 人人干天天干 | 欧美一区二区三区免费观看视频 | 中文字幕一区二区三区乱码图片 | 在线观看亚洲一区二区三区 | 91操操 | 久久成人18免费网站 | 色婷婷基地 | 国产精品久久久久久亚洲调教 | 欧美一区二区在线看 | 国产亚洲一区二区三区在线观看 | 日韩第一页 | 99久久精品免费看国产四区 | 亚洲一区久久 | 国产99久久精品一区二区永久免费 | 国产激情影院 | 久久精品 | 亚洲成人精品在线观看 | 国产超碰人人爽人人做人人爱 | 日韩精品在线观看免费 | 久久精品日产高清版的功能介绍 | 欧美日韩亚洲成人 | 久久国产美女 | 欧美日韩一二区 | 性开放xxxhd视频 | 欧洲另类在线1 | 一区二区日韩精品 | 亚洲高清一区二区三区 | 国产精品一区二区不卡 | 免费看的毛片 | av免费网站在线观看 | 亚洲午夜精品在线观看 | 午夜成人免费影院 | 天天摸夜夜操 | 亚洲久草 | 日韩综合网 | 国产综合网站 | 专干老肥女人88av | 91亚洲国产 | 天堂精品 | 中文一区 | 久草视频在线播放 | 精品九九九 | 日韩高清成人 | 久久伊 | 久久久国产精品x99av | 国产精品视频一区二区三区不卡 | 亚洲精品二区三区 | 一区三区视频 | 亚洲综合在线一区 | 国产精品美女久久久久久久久久久 | 日韩av免费在线观看 | 一区二区精品在线 | 国产精品45p | 在线成人 | 伊人精品视频 | 在线观看国产高清视频 | 久草视频在线播放 | 中文字幕乱码亚洲精品一区 | 欧美成人免费在线视频 | 精品亚洲一区二区三区四区五区 | 亚洲精品在线国产 | 亚洲一区二区高清视频 | 欧美黄 片免费观看 | 97国产在线视频 | 亚洲网色 | 你懂的免费在线观看 | 91精品国产91久久久久久最新 | 麻豆毛片| 国产伦精品一区二区三区四区视频 | 亚洲国产精品久久久久久 | 国产 日韩 欧美 在线 | 国产成人精品一区一区一区 | 国产精品第一国产精品 | 日韩一区在线视频 | 亚洲欧美第一页 | 美日韩在线 | 羞羞视频网站在线免费观看 | 三级精品| 黄色永久网站 | 禁果av一区二区三区 | 91久久久久久久久久久久久久久久 | 在线观看成人小视频 | 亚洲精品电影在线观看 | 国产在线精品一区二区三区 | 久久99热精品免费观看牛牛 | 国产成人精品一区二区三区视频 | 精品久久久久久久久久久久 | 性欧美大战久久久久久久免费观看 | 亚洲日本乱码一区两区在线观看 | 精品国产91亚洲一区二区三区www | 亚洲a网 | www精品| 国产精品一区二区久久久久 | 精品视频在线观看一区二区三区 | av网站免费| 日本黄色大片免费 | 亚洲成人精品一区二区三区 | 国产精品伦理一区 | 欧美黑人一级爽快片淫片高清 | 不卡在线 | 国产一区二区三区精品久久久 | 欧美日韩亚洲国内综合网 | 亚洲一区二区中文字幕 | 国产做a爱片久久毛片 | 在线观看亚洲大片短视频 | 日韩午夜 | 国产精品爱久久久久久久 | 亚洲小视频网站 | 日本免费一区二区视频 | 国产一级片在线播放 | 北条麻妃国产九九九精品小说 | 欧美三级免费观看 | 日韩欧美一区二区三区免费观看 | porn在线| 日韩精品一区二区三区在线 | 久久久久久久久久久久福利 | 少妇激烈床戏视频 | 在线观看欧美成人 | 国产一区 | 一级日批片 | 久久av免费 | 精品亚洲一区二区三区四区五区 | 日韩久久久久 | 伊人网页 | 草草精品视频 | 一区二区三区在线播放 | 成人av网页 | 天天碰天天操 | 久久久久亚洲精品国产 | 国产精品香蕉在线观看 | 欧美国产日韩在线 | 久久久久久精 | 亚洲国产精品一区二区第一页 | 九九免费视频 | 国产精品欧美一区二区三区 | 久久久精品欧美 | 天堂资源 | 亚洲午夜精品一区二区三区 | 爱爱网址 | 久草免费在线 | 美女久久| 91污在线观看| 国产一区二区三区视频在线观看 | 亚洲电影中文字幕 | 成人羞羞在线观看网站 | 亚洲第一黄色 | 成人av影片在线观看 | 亚洲国产精品一区二区三区 | 日韩一区二区三区福利视频 | 99精品视频在线 | 日韩在线观看 | 亚洲自拍偷拍精品 | 色吟av | 国产大学生一区 | 亚洲一区二区在线 | 日韩精品一区二区三区在线观看 | 久久久精品| 国产亚洲二区 | 国产精品美女在线观看 | 久爱国产 | 奇米亚洲午夜久久精品 | 九九热精 | 精品国产一区探花在线观看 | 色丁香婷婷| 久热久热 | 欧美精品一区在线 | 成人av免费观看 | 亚洲午夜精品片久久www慈禧 | 毛片网站在线观看 | 国产综合精品一区二区三区 | 四虎成人永久 | 99精品欧美一区二区三区综合在线 | 久久久久久久久久一区二区 | 日韩成人免费av | 欧美福利电影在线观看 | 91精品久久久久久久久中文字幕 | www成人精品 | 一色视频 | 成人中文视频 | 91久久精品国产91久久性色tv | 久在线视频 | 国产视频网 | 日韩亚洲欧美综合 | 日本三级一区二区 | 一区二区视频网站 | 一级a毛片 | 国产精品婷婷午夜在线观看 | 国产网站在线播放 | 久久人体| 亚洲欧美日韩另类精品一区二区三区 | 这里只有精品视频 | 欧美韩一区二区 | 福利久久 | 亚洲成av人片在线观看无码 | 精品国产精品国产偷麻豆 | 日韩精品一区在线 | 91 在线观看| 国产无套丰满白嫩对白 | 91亚洲高清 | 欧美精产国品一二三区 | 自拍偷拍欧美 | 欧美日韩一区二区三区在线观看 | 97久久精品 | 九九久久久 | 国产成人影院 | 在线免费91 | 久草免费在线 | 久久精品久久久久电影 | 99re视频精品 | 最新超碰| 2019中文字幕在线观看 | 国产精品一卡二卡 | 午夜老湿影院 | 天天操天天草 | 午夜精品久久久久久久久久久久 | 亚洲一区二区在线 | 黄色网址大全在线观看 | 在线观看日韩 | 国产精品久久久久久久毛片 | 午夜亚洲福利 | 99精品欧美一区二区三区综合在线 | 日韩精品一二三 | 午夜亚洲福利 | 国产精品99一区二区三区 | 99热成人在线| 在线观看国产 | 国产精品看片 | 97成人精品视频在线观看 | 密桃av| 91在线视频| 成人午夜精品 | 欧美综合视频 | 99久久99久久精品 | 中文字幕一区二区三区在线视频 | 日韩欧美在线免费观看 | 国产精品18久久久久久首页狼 | 国产视频黄在线观看 | 日韩精品视频免费专区在线播放 | 日韩精品 电影一区 亚洲 | 另类中文字幕 | 成人免费视频网站在线观看 | 日韩一区二区在线观看 | 免费看国产片在线观看 | 亚洲一区在线日韩在线深爱 | 亚洲色域网| 国产日韩欧美在线 | 国产精品美女久久久久久久久久久 | 亚洲三级在线播放 | 欧美亚洲国产一区 | 天天综合网91 | 国产精品一区二区久久久久 | 噜噜噜视频在线观看 | 久久视频一区 | 香蕉久久av一区二区三区 | 在线观看中文字幕 | 国产在线一区二区三区 | 色吊丝2288sds中文字幕 | 亚洲日本韩国欧美 | 欧美成人免费视频 | 国产二区三区 | 亚洲精品粉嫩美女一区 | 久草成人 | 欧美精品免费在线观看 | 精品久久久久久亚洲精品 | 91视频网址 | 国产欧美在线观看 | 亚洲视频中文字幕 | 久久久久国产精品一区二区三区 | 精品二区 | 日韩免费网站 | 国产欧美综合一区二区三区 | 精品毛片| 国产精品18久久久久久久久久久久 | 夜本色 | 在线免费观看毛片 | 亚洲精品久久久狠狠狠爱 | 韩日在线视频 | 亚洲午夜在线 | 久久亚洲一区二区 | 亚洲精品乱码久久久久久不卡 | 国精产品一区二区三区 | 日本亚洲国产一区二区三区 | 国产精品免费视频一区 | 啵啵影院午夜男人免费视频 |