久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

(大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL函数和操作符

發(fā)布時間:2024/1/18 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL函数和操作符 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、操作符

1.1 操作符優(yōu)先級

以下列表顯示了操作符優(yōu)先級的由低到高的順序。排列在同一行的操作符具有相同的優(yōu)先級。

操作符優(yōu)先級
:=1
||, OR, XOR2
&&, AND3
NOT4
BETWEEN, CASE, WHEN, THEN, ELSE5
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN6
7
&8
<<, >>9
-, +10
*, /, DIV, %, MOD11
^12
- (一元減號), ~ (一元比特反轉(zhuǎn))12
!13
BINARY, COLLATE14

注釋:假如 HIGH_NOT_PRECEDENCE SQL 模式被激活,則 NOT 的優(yōu)先級同 the ! 操作符相同。

1.2 圓括號

( ... )

使用括弧來規(guī)定表達(dá)式的運算順序,例如:

mysql> SELECT 1+2*3;-> 7 mysql> SELECT (1+2)*3;-> 9

1.3 比較函數(shù)和操作符

比較運算產(chǎn)生的結(jié)果為1(TRUE)、0 (FALSE)或 NULL。這些運算可用于數(shù)字和字符串。根據(jù)需要,字符串可自動轉(zhuǎn)換為數(shù)字,而數(shù)字也可自動轉(zhuǎn)換為字符串。

本節(jié)中的一些函數(shù) (如LEAST()和GREATEST()) 的所得值不包括 1 (TRUE)、 0 (FALSE)和 NULL。然而,其所得值乃是基于按照下述規(guī)則運行的比較運算:

MySQL按照以下規(guī)則進(jìn)行數(shù)值比較:

  • 若有一個或兩個參數(shù)為 NULL,除非NULL-safe <=> 等算符,則比較運算的結(jié)果為NULL。
  • 若同一個比較運算中的兩個參數(shù)都是字符串,則按照字符串進(jìn)行比較。
  • 若兩個參數(shù)均為整數(shù),則按照整數(shù)進(jìn)行比較。
  • 十六進(jìn)制值在不需要作為數(shù)字進(jìn)行比較時,則按照二進(jìn)制字符串進(jìn)行處理。
  • 假如參數(shù)中的一個為 TIMESTAMP 或 DATETIME 列,而其它參數(shù)均為常數(shù), 則在進(jìn)行比較前將常數(shù)轉(zhuǎn)為 timestamp。這樣做的目的是為了使ODBC的進(jìn)行更加順利。 注意,這不適合IN()中的參數(shù)!為了更加可靠,在進(jìn)行對比時通常使用完整的 datetime/date/time字符串。
  • 在其它情況下,參數(shù)作為浮點數(shù)進(jìn)行比較。

在默認(rèn)狀態(tài)下,字符串比較不區(qū)分大小寫,并使用現(xiàn)有字符集(默認(rèn)為cp1252 Latin1,同時對英語也適合)。

為了進(jìn)行比較,可使用CAST()函數(shù)將某個值轉(zhuǎn)為另外一種類型。 使用CONVERT()將字符串值轉(zhuǎn)為不同的字符集。

以下例子說明了比較運算中將字符串轉(zhuǎn)為數(shù)字的過程:

mysql> SELECT 1 > '6x';-> 0 mysql> SELECT 7 > '6x'; -> 1 mysql> SELECT 0 > 'x6'; -> 0 mysql> SELECT 0 = 'x6'; -> 1

注意,在將一個字符串列同一個數(shù)字進(jìn)行比較時, MySQL 不能使用列中的索引進(jìn)行快速查找。假如str_col 是一個編入索引的字符串列,則在以下語句中,索引不能執(zhí)行查找功能:

SELECT * FROM tbl_name WHERE str_col=1;

其原因是許多不同的字符串都可被轉(zhuǎn)換為數(shù)值 1: '1'、'1a'、 ……

  • =?等于:

    mysql> SELECT 1 = 0;-> 0 mysql> SELECT '0' = 0; -> 1 mysql> SELECT '0.0' = 0; -> 1 mysql> SELECT '0.01' = 0; -> 0 mysql> SELECT '.01' = 0.01; -> 1
  • <=>?NULL-safe equal.這個操作符和=操作符執(zhí)行相同的比較操作,不過在兩個操作碼均為NULL時,其所得值為1而不為NULL,而當(dāng)一個操作碼為NULL時,其所得值為0而不為NULL。

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL; -> 1, 1, 0 mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL; -> 1, NULL, NULL
  • <>?或?!=?不等于:

    mysql> SELECT '.01' <> '0.01';-> 1 mysql> SELECT .01 <> '0.01'; -> 0 mysql> SELECT 'zapp' <> 'zappp'; -> 1
  • <=?小于等于:

mysql> SELECT 0.1 <= 2;-> 1
  • <?小于:

    mysql> SELECT 2 < 2;-> 0
  • >=?大于等于:

    mysql> SELECT 2 >= 2;-> 1
  • >?大于:

    mysql> SELECT 2 > 2;-> 0
  • IS boolean_value?和?IS NOT boolean_value?根據(jù)一個布爾值來檢驗一個值,在這里,布爾值可以是TRUE、FALSE或UNKNOWN。

    mysql> SELECT 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN; -> 1, 1, 1 mysql> SELECT 1 IS NOT UNKNOWN, 0 IS NOT UNKNOWN, NULL IS NOT UNKNOWN; -> 1, 1, 0
  • IS NULL?和?IS NOT NULL?檢驗一個值是否為 NULL。

    mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL; -> 0, 0, 1 mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL; -> 1, 1, 0
  • expr BETWEEN min AND max?假如expr大于或等于 min 且expr 小于或等于max, 則BETWEEN 的返回值為1,或是0。若所有參數(shù)都是同一類型,則上述關(guān)系相當(dāng)于表達(dá)式 (min <= expr AND expr <= max)。其它類型的轉(zhuǎn)換根據(jù)本章開篇所述規(guī)律進(jìn)行,且適用于3種參數(shù)中任意一種。

    mysql> SELECT 1 BETWEEN 2 AND 3;-> 0 mysql> SELECT 'b' BETWEEN 'a' AND 'c'; -> 1 mysql> SELECT 2 BETWEEN 2 AND '3'; -> 1 mysql> SELECT 2 BETWEEN 2 AND 'x-3'; -> 0
  • expr NOT BETWEEN min AND max?這相當(dāng)于NOT(expr BETWEEN min AND max)。

  • COALESCE(value,...) 返回值為列表當(dāng)中的第一個非 NULL值,在沒有非NULL 值得情況下返回值為 NULL 。

    mysql> SELECT COALESCE(NULL,1);-> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
  • GREATEST(value1,value2,...)?當(dāng)有2或多個參數(shù)時,返回值為最大(最大值的)參數(shù)。比較參數(shù)所依據(jù)的規(guī)律同LEAST()相同。

    mysql> SELECT GREATEST(2,0); -> 2 mysql> SELECT GREATEST(34.0,3.0,5.0,767.0); -> 767.0 mysql> SELECT GREATEST('B','A','C'); -> 'C'

在沒有自變量為NULL的情況下,GREATEST()的返回值為NULL。

  • expr IN (value,...)?若expr 為IN列表中的任意一個值,則其返回值為 1 , 否則返回值為0。假如所有的值都是常數(shù),則其計算和分類根據(jù) expr 的類型進(jìn)行。這時,使用二分搜索來搜索信息。如IN值列表全部由常數(shù)組成,則意味著IN 的速度非常之快。如expr 是一個區(qū)分大小寫的字符串表達(dá)式,則字符串比較也按照區(qū)分大小寫的方式進(jìn)行。 mysql> SELECT 2 IN (0,3,5,'wefwf'); -> 0 mysql> SELECT 'wefwf' IN (0,3,5,'wefwf'); -> 1

IN 列表中所列值的個數(shù)僅受限于 max_allowed_packet 值。

為了同SQL 標(biāo)準(zhǔn)相一致,在左側(cè)表達(dá)式為NULL的情況下,或是表中找不到匹配項或是表中一個表達(dá)式為NULL 的情況下,IN的返回值均為NULL。

IN() 語構(gòu)也可用書寫某些類型的子查詢。

  • expr NOT IN (value,...)?這與NOT (expr IN (value,...))相同。

  • ISNULL(expr)?如expr 為NULL,那么ISNULL() 的返回值為 1,否則返回值為 0。

    mysql> SELECT ISNULL(1+1);-> 0 mysql> SELECT ISNULL(1/0); -> 1

使用= 的NULL 值對比通常是錯誤的。

  • INTERVAL(N,N1,N2,N3,...)?假如N < N1,則返回值為0;假如N < N2 等等,則返回值為1;假如N 為NULL,則返回值為 -1 。所有的參數(shù)均按照整數(shù)處理。為了這個函數(shù)的正確運行,必須滿足 N1 < N2 < N3 < ……< Nn 。其原因是使用了二分查找(極快速)。

    mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);-> 3 mysql> SELECT INTERVAL(10, 1, 10, 100, 1000); -> 2 mysql> SELECT INTERVAL(22, 23, 30, 44, 200); -> 0
  • LEAST(value1,value2,...)?在有兩個或多個參數(shù)的情況下, 返回值為最小 (最小值) 參數(shù)。用一下規(guī)則將自變量進(jìn)行對比: 假如返回值被用在一個 INTEGER 語境中,或是所有參數(shù)均為整數(shù)值,則將其作為整數(shù)值進(jìn)行比較。 假如返回值被用在一個 REAL語境中,或所有參數(shù)均為實值,則 將其作為實值進(jìn)行比較。 假如任意一個參數(shù)是一個區(qū)分大小寫的字符串,則將參數(shù)按照區(qū)分大小寫的字符串進(jìn)行比較。 在其它情況下,將參數(shù)作為區(qū)分大小寫的字符串進(jìn)行比較。 假如任意一個自變量為NULL,則 LEAST()的返回值為NULL 。

    mysql> SELECT LEAST(2,0); -> 0 mysql> SELECT LEAST(34.0,3.0,5.0,767.0); -> 3.0 mysql> SELECT LEAST('B','A','C'); -> 'A'

注意,上面的轉(zhuǎn)換規(guī)則在一些邊界情形中會產(chǎn)生一些奇特的結(jié)果:

mysql> SELECT CAST(LEAST(3600, 9223372036854775808.0) as SIGNED); -> -9223372036854775808

發(fā)生這種情況的原因是MySQL在整數(shù)語境中讀取9223372036854775808.0。整數(shù)表示法不利于保存數(shù)值,因此它包括一個帶符號整數(shù)。

1.4 邏輯操作符

在SQL中,所有邏輯 操作符的求值所得結(jié)果均為 TRUE、FALSE或 NULL (UNKNOWN)。在 MySQL中,它們體現(xiàn)為 1 (TRUE)、 0 (FALSE)和 NULL。其大多數(shù)都與不同的數(shù)據(jù)庫SQL通用,然而一些服務(wù)器對TRUE的返回值可能是任意一個非零值。

  • NOT !?邏輯 NOT。當(dāng)操作數(shù)為0 時,所得值為 1 ;當(dāng)操作數(shù)為非零值時,所得值為 0 ,而當(dāng)操作數(shù)為NOT NULL時,所得的返回值為 NULL。 mysql> SELECT NOT 10;-> 0 mysql> SELECT NOT 0;-> 1 mysql> SELECT NOT NULL; -> NULL mysql> SELECT ! (1+1); -> 0 mysql> SELECT ! 1+1; -> 1

最后一個例子產(chǎn)生的結(jié)果為 1,原因是表達(dá)式的計算方式和(!1)+1相同。

  • AND &&?邏輯AND。當(dāng)所有操作數(shù)均為非零值、并且不為NULL時,計算所得結(jié)果為 1 ,當(dāng)一個或多個操作數(shù)為0 時,所得結(jié)果為 0 ,其余情況返回值為 NULL 。

    mysql> SELECT 1 && 1;-> 1 mysql> SELECT 1 && 0; -> 0 mysql> SELECT 1 && NULL; -> NULL mysql> SELECT 0 && NULL; -> 0 mysql> SELECT NULL && 0; -> 0
  • OR或者||?邏輯 OR。當(dāng)兩個操作數(shù)均為非 NULL值時,如有任意一個操作數(shù)為非零值,則結(jié)果為1,否則結(jié)果為0。當(dāng)有一個操作數(shù)為NULL時,如另一個操作數(shù)為非零值,則結(jié)果為1,否則結(jié)果為 NULL 。假如兩個操作數(shù)均為 NULL,則所得結(jié)果為 NULL。

    mysql> SELECT 1 || 1;-> 1 mysql> SELECT 1 || 0; -> 1 mysql> SELECT 0 || 0; -> 0 mysql> SELECT 0 || NULL; -> NULL mysql> SELECT 1 || NULL; -> 1
  • XOR?邏輯XOR。當(dāng)任意一個操作數(shù)為 NULL時,返回值為NULL。對于非 NULL 的操作數(shù),假如一個奇數(shù)操作數(shù)為非零值,則計算所得結(jié)果為 1 ,否則為 0 。

    mysql> SELECT 1 XOR 1;-> 0 mysql> SELECT 1 XOR 0; -> 1 mysql> SELECT 1 XOR NULL; -> NULL mysql> SELECT 1 XOR 1 XOR 1; -> 1

a XOR b 的計算等同于 (a AND (NOT b)) OR ((NOT a)和 b)。

二、控制流程函數(shù)

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

在第一個方案的返回結(jié)果中, value=compare-value。而第二個方案的返回結(jié)果是第一種情況的真實結(jié)果。如果沒有匹配的結(jié)果值,則返回結(jié)果為ELSE后的結(jié)果,如果沒有ELSE 部分,則返回值為 NULL。

mysql> SELECT CASE 1 WHEN 1 THEN 'one'-> WHEN 2 THEN 'two' ELSE 'more' END; -> 'one' mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END; -> 'true' mysql> SELECT CASE BINARY 'B' -> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END; -> NULL

一個CASE表達(dá)式的默認(rèn)返回值類型是任何返回值的相容集合類型,但具體情況視其所在語境而定。如果用在字符串語境中,則返回結(jié)果味字符串。如果用在數(shù)字語境中,則返回結(jié)果為十進(jìn)制值、實值或整數(shù)值。

  • IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為expr2; 否則返回值則為 expr3。IF() 的返回值為數(shù)字值或字符串值,具體情況視其所在語境而定。 mysql> SELECT IF(1>2,2,3); -> 3 mysql> SELECT IF(1<2,'yes ','no'); -> 'yes' mysql> SELECT IF(STRCMP('test','test1'),'no','yes'); -> 'no'

如果expr2 或expr3中只有一個明確是 NULL,則IF() 函數(shù)的結(jié)果類型 為非NULL表達(dá)式的結(jié)果類型。

expr1 作為一個整數(shù)值進(jìn)行計算,就是說,假如你正在驗證浮點值或字符串值, 那么應(yīng)該使用比較運算進(jìn)行檢驗。

mysql> SELECT IF(0.1,1,0);-> 0 mysql> SELECT IF(0.1<>0,1,0); -> 1

在所示的第一個例子中,IF(0.1)的返回值為0,原因是 0.1 被轉(zhuǎn)化為整數(shù)值,從而引起一個對 IF(0)的檢驗。這或許不是你想要的情況。在第二個例子中,比較檢驗了原始浮點值,目的是為了了解是否其為非零值。比較結(jié)果使用整數(shù)。

IF() (這一點在其被儲存到臨時表時很重要 ) 的默認(rèn)返回值類型按照以下方式計算:

假如expr2 和expr3 都是字符串,且其中任何一個字符串區(qū)分大小寫,則返回結(jié)果是區(qū)分大小寫。

  • IFNULL(expr1,expr2) 假如expr1 不為 NULL,則 IFNULL() 的返回值為 expr1; 否則其返回值為 expr2。IFNULL()的返回值是數(shù)字或是字符串,具體情況取決于其所使用的語境。 mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'yes'); -> 'yes'

IFNULL(expr1,expr2)的默認(rèn)結(jié)果值為兩個表達(dá)式中更加“通用”的一個,順序為STRING、 REAL或 INTEGER。假設(shè)一個基于表達(dá)式的表的情況, 或MySQL必須在內(nèi)存儲器中儲存一個臨時表中IFNULL()的返回值:

CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;

在這個例子中,測試列的類型為 CHAR(4)。

  • NULLIF(expr1,expr2) 如果expr1 = expr2 成立,那么返回值為NULL,否則返回值為 expr1。這和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。 mysql> SELECT NULLIF(1,1);-> NULL mysql> SELECT NULLIF(1,2); -> 1

注意,如果參數(shù)不相等,則 MySQL 兩次求得的值為 expr1 。

三、字符串函數(shù)

假如結(jié)果的長度大于 max_allowed_packet 系統(tǒng)變量的最大值時,字符串值函數(shù)的返回值為NULL。

對于在字符串位置操作的函數(shù),第一個位置的編號為 1。

  • ASCII(str) 返回值為字符串str 的最左字符的數(shù)值。假如str為空字符串,則返回值為 0 。假如str 為NULL,則返回值為 NULL。 ASCII()用于帶有從 0到255的數(shù)值的字符。 mysql> SELECT ASCII('2');-> 50 mysql> SELECT ASCII(2); -> 50 mysql> SELECT ASCII('dx'); -> 100

見 ORD()函數(shù)。

  • BIN(N) 返回值為N的二進(jìn)制值的字符串表示,其中 N 為一個longlong (BIGINT) 數(shù)字。這等同于 CONV(N,10,2)。假如N 為NULL,則返回值為 NULL。

    mysql> SELECT BIN(12);-> '1100'
  • BIT_LENGTH(str) 返回值為二進(jìn)制的字符串str 長度。

    mysql> SELECT BIT_LENGTH('text');-> 32
  • CHAR(N,... [USING charset]) CHAR()將每個參數(shù)N理解為一個整數(shù),其返回值為一個包含這些整數(shù)的代碼值所給出的字符的字符串。NULL值被省略。

    mysql> SELECT CHAR(77,121,83,81,'76'); -> 'MySQL' mysql> SELECT CHAR(77,77.3,'77.3'); -> 'MMM'

大于 255的CHAR()參數(shù)被轉(zhuǎn)換為多結(jié)果字符。 例如,CHAR(256) 相當(dāng)于 CHAR(1,0), 而CHAR(256*256) 則相當(dāng)于 CHAR(1,0,0):

mysql> SELECT HEX(CHAR(1,0)), HEX(CHAR(256)); mysql> SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));

CHAR()的返回值為一個二進(jìn)制字符串。可選擇使用USING語句產(chǎn)生一個給出的字符集中的字符串:

mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8)); mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));

如果 USING已經(jīng)產(chǎn)生,而結(jié)果字符串不符合給出的字符集,則會發(fā)出警告。 同樣,如果嚴(yán)格的SQL模式被激活,則CHAR()的結(jié)果會成為 NULL。

  • CHAR_LENGTH(str) 返回值為字符串str 的長度,長度的單位為字符。一個多字節(jié)字符算作一個單字符。對于一個包含五個二字節(jié)字符集, LENGTH()返回值為 10, 而CHAR_LENGTH()的返回值為5。

  • CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同義詞。

  • COMPRESS(string_to_compress) 壓縮一個字符串。這個函數(shù)要求 MySQL已經(jīng)用一個諸如zlib的壓縮庫壓縮過。 否則,返回值始終是NULL。UNCOMPRESS() 可將壓縮過的字符串進(jìn)行解壓縮。

    mysql> SELECT LENGTH(COMPRESS(REPEAT('a',1000))); -> 21 mysql> SELECT LENGTH(COMPRESS('')); -> 0 mysql> SELECT LENGTH(COMPRESS('a')); -> 13 mysql> SELECT LENGTH(COMPRESS(REPEAT('a',16))); -> 15

壓縮后的字符串的內(nèi)容按照以下方式存儲: 空字符串按照空字符串存儲。 非空字符串未壓縮字符串的四字節(jié)長度進(jìn)行存儲(首先為低字節(jié)),后面是壓縮字符串。如果字符串以空格結(jié)尾,就會在后加一個"."號,以防止當(dāng)結(jié)果值是存儲在CHAR或VARCHAR類型的字段列時,出現(xiàn)自動把結(jié)尾空格去掉的現(xiàn)象。(不推薦使用 CHAR 或VARCHAR 來存儲壓縮字符串。最好使用一個 BLOB 列代替)。

  • CONCAT(str1,str2,...) 返回結(jié)果為連接參數(shù)產(chǎn)生的字符串。如有任何一個參數(shù)為NULL ,則返回值為 NULL。或許有一個或多個參數(shù)。 如果所有參數(shù)均為非二進(jìn)制字符串,則結(jié)果為非二進(jìn)制字符串。 如果自變量中含有任一二進(jìn)制字符串,則結(jié)果為一個二進(jìn)制字符串。一個數(shù)字參數(shù)被轉(zhuǎn)化為與之相等的二進(jìn)制字符串格式;若要避免這種情況,可使用顯式類型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

    mysql> SELECT CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> SELECT CONCAT('My', NULL, 'QL'); -> NULL mysql> SELECT CONCAT(14.3); -> '14.3'
  • CONCAT_WS(separator,str1,str2,...) CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一個參數(shù)是其它參數(shù)的分隔符。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其它參數(shù)。如果分隔符為 NULL,則結(jié)果為 NULL。函數(shù)會忽略任何分隔符參數(shù)后的 NULL 值。

    mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name'); -> 'First name,Second name,Last Name' mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name'); -> 'First name,Last Name'

CONCAT_WS()不會忽略任何空字符串。 (然而會忽略所有的 NULL)。

  • CONV(N,from_base,to_base) 不同數(shù)基間轉(zhuǎn)換數(shù)字。返回值為數(shù)字的N字符串表示,由from_base基轉(zhuǎn)化為 to_base 基。如有任意一個參數(shù)為NULL,則返回值為 NULL。自變量 N 被理解為一個整數(shù),但是可以被指定為一個整數(shù)或字符串。最小基數(shù)為 2 ,而最大基數(shù)則為 36。 If to_base 是一個負(fù)數(shù),則 N 被看作一個帶符號數(shù)。否則, N 被看作無符號數(shù)。 CONV() 的運行精確度為 64比特。

    mysql> SELECT CONV('a',16,2); -> '1010' mysql> SELECT CONV('6E',18,8); -> '172' mysql> SELECT CONV(-17,10,-18); -> '-H' mysql> SELECT CONV(10+'10'+'10'+0xa,10,10); -> '40'
  • ELT(N,str1,str2,str3,...) 若N = 1,則返回值為 str1 ,若N = 2,則返回值為 str2 ,以此類推。 若N 小于1或大于參數(shù)的數(shù)目,則返回值為 NULL 。 ELT() 是 FIELD()的補(bǔ)數(shù)。

    mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo'); -> 'ej' mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo'); -> 'foo'
  • EXPORT_SET(bits,on,off[,separator[,number_of_bits]]) 返回值為一個字符串,其中對于bits值中的每個位組,可以得到一個 on 字符串,而對于每個清零比特位,可以得到一個off 字符串。bits 中的比特值按照從右到左的順序接受檢驗 (由低位比特到高位比特)。字符串被分隔字符串分開(默認(rèn)為逗號‘,’),按照從左到右的順序被添加到結(jié)果中。number_of_bits 會給出被檢驗的二進(jìn)制位數(shù) (默認(rèn)為 64)。

    mysql> SELECT EXPORT_SET(5,'Y','N',',',4); -> 'Y,N,Y,N' mysql> SELECT EXPORT_SET(6,'1','0',',',10); -> '0,1,1,0,0,0,0,0,0,0'
  • FIELD(str,str1,str2,str3,...) 返回值為str1, str2, str3,……列表中的str 指數(shù)。在找不到str 的情況下,返回值為 0 。 如果所有對于FIELD() 的參數(shù)均為字符串,則所有參數(shù)均按照字符串進(jìn)行比較。如果所有的參數(shù)均為數(shù)字,則按照數(shù)字進(jìn)行比較。否則,參數(shù)按照雙倍進(jìn)行比較。 如果str 為NULL,則返回值為0 ,原因是NULL不能同任何值進(jìn)行同等比較。FIELD() 是ELT()的補(bǔ)數(shù)。

    mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 2 mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 0
  • FIND_IN_SET(str,strlist) 假如字符串str 在由N 子鏈組成的字符串列表strlist 中, 則返回值的范圍在 1 到 N 之間 。一個字符串列表就是一個由一些被‘,’符號分開的自鏈組成的字符串。如果第一個參數(shù)是一個常數(shù)字符串,而第二個是type SET列,則 FIND_IN_SET() 函數(shù)被優(yōu)化,使用比特計算。如果str不在strlist 或strlist 為空字符串,則返回值為 0 。如任意一個參數(shù)為NULL,則返回值為 NULL。 這個函數(shù)在第一個參數(shù)包含一個逗號(‘,’)時將無法正常運行。

    mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2
  • FORMAT(X,D) 將number X設(shè)置為格式 '#,###,###.##', 以四舍五入的方式保留到小數(shù)點后D位, 而返回結(jié)果為一個字符串。

  • HEX(N_or_S) 如果N_OR_S 是一個數(shù)字,則返回一個 十六進(jìn)制值 N 的字符串表示,在這里, N 是一個longlong (BIGINT)數(shù)。這相當(dāng)于 CONV(N,10,16)。 如果N_OR_S 是一個字符串,則返回值為一個N_OR_S的十六進(jìn)制字符串表示, 其中每個N_OR_S 里的每個字符被轉(zhuǎn)化為兩個十六進(jìn)制數(shù)字。

    mysql> SELECT HEX(255);-> 'FF' mysql> SELECT 0x616263; -> 'abc' mysql> SELECT HEX('abc'); -> 616263
  • INSERT(str,pos,len,newstr) 返回字符串 str, 其子字符串起始于 pos 位置和長期被字符串 newstr取代的len 字符。 如果pos 超過字符串長度,則返回值為原始字符串。 假如len的長度大于其它字符串的長度,則從位置pos開始替換。若任何一個參數(shù)為null,則返回值為NULL。

    mysql> SELECT INSERT('Quadratic', 3, 4, 'What'); -> 'QuWhattic' mysql> SELECT INSERT('Quadratic', -1, 4, 'What'); -> 'Quadratic' mysql> SELECT INSERT('Quadratic', 3, 100, 'What'); -> 'QuWhat'

這個函數(shù)支持多字節(jié)字元。

  • INSTR(str,substr) 返回字符串 str 中子字符串的第一個出現(xiàn)位置。這和LOCATE()的雙參數(shù)形式相同,除非參數(shù)的順序被顛倒。

    mysql> SELECT INSTR('foobarbar', 'bar'); -> 4 mysql> SELECT INSTR('xbar', 'foobar'); -> 0

    這個函數(shù)支持多字節(jié)字元,并且只有當(dāng)至少有一個參數(shù)是二進(jìn)制字符串時區(qū)分大小寫。

  • LCASE(str) LCASE() 是 LOWER()的同義詞。

  • LEFT(str,len) 返回從字符串str 開始的len 最左字符。

    mysql> SELECT LEFT('foobarbar', 5); -> 'fooba'
  • LENGTH(str) 返回值為字符串str 的長度,單位為字節(jié)。一個多字節(jié)字符算作多字節(jié)。這意味著 對于一個包含5個2字節(jié)字符的字符串, LENGTH() 的返回值為 10, 而 CHAR_LENGTH()的返回值則為5。

    mysql> SELECT LENGTH('text');-> 4
  • LOAD_FILE(file_name) 讀取文件并將這一文件按照字符串的格式返回。 文件的位置必須在服務(wù)器上,你必須為文件制定路徑全名,而且你還必須擁有FILE 特許權(quán)。文件必須可讀取,文件容量必須小于 max_allowed_packet字節(jié)。 若文件不存在,或因不滿足上述條件而不能被讀取, 則函數(shù)返回值為 NULL。

    mysql> UPDATE tbl_nameSET blob_column=LOAD_FILE('/tmp/picture')WHERE id=1;
  • LOCATE(substr,str) , LOCATE(substr,str,pos) 第一個語法返回字符串 str中子字符串substr的第一個出現(xiàn)位置。第二個語法返回字符串 str中子字符串substr的第一個出現(xiàn)位置, 起始位置在pos。如若substr 不在str中,則返回值為0。

    mysql> SELECT LOCATE('bar', 'foobarbar'); -> 4 mysql> SELECT LOCATE('xbar', 'foobar'); -> 0 mysql> SELECT LOCATE('bar', 'foobarbar',5); -> 7

這個函數(shù)支持多字節(jié)字元,并且只有當(dāng)至少有一個參數(shù)是二進(jìn)制字符串時區(qū)分大小寫。

  • LOWER(str) 返回字符串 str 以及所有根據(jù)最新的字符集映射表變?yōu)樾懽帜傅淖址?(默認(rèn)為 cp1252 Latin1)。 mysql> SELECT LOWER('QUADRATICALLY');-> 'quadratically'

這個函數(shù)支持多字節(jié)字元。

  • LPAD(str,len,padstr) 返回字符串 str, 其左邊由字符串padstr 填補(bǔ)到len 字符長度。假如str 的長度大于len, 則返回值被縮短至 len 字符。

    mysql> SELECT LPAD('hi',4,'??'); -> '??hi' mysql> SELECT LPAD('hi',1,'??'); -> 'h'
  • LTRIM(str) 返回字符串 str ,其引導(dǎo)空格字符被刪除。

    mysql> SELECT LTRIM(' barbar');-> 'barbar'

這個函數(shù)支持多字節(jié)字元。

  • MAKE_SET(bits,str1,str2,...) 返回一個設(shè)定值 (一個包含被‘,’號分開的字字符串的字符串) ,由在bits 組中具有相應(yīng)的比特的字符串組成。str1 對應(yīng)比特 0, str2 對應(yīng)比特1,以此類推。str1, str2, ...中的 NULL值不會被添加到結(jié)果中。

    mysql> SELECT MAKE_SET(1,'a','b','c'); -> 'a' mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world'); -> 'hello,world' mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world'); -> 'hello' mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
  • MID(str,pos,len) MID(str,pos,len) 是 SUBSTRING(str,pos,len)的同義詞。

  • OCT(N) 返回一個 N的八進(jìn)制值的字符串表示,其中 N 是一個longlong (BIGINT)數(shù)。這等同于CONV(N,10,8)。若N 為 NULL ,則返回值為NULL。

    mysql> SELECT OCT(12);-> '14'
  • OCTET_LENGTH(str) OCTET_LENGTH() 是 LENGTH()的同義詞。

  • ORD(str) 若字符串str 的最左字符是一個多字節(jié)字符,則返回該字符的代碼, 代碼的計算通過使用以下公式計算其組成字節(jié)的數(shù)值而得出: (1st byte code) (2nd byte code × 256) (3rd byte code × 2562) ... 假如最左字符不是一個多字節(jié)字符,那么 ORD()和函數(shù)ASCII()返回相同的值。

    mysql> SELECT ORD('2');-> 50
  • POSITION(substr IN str) POSITION(substr IN str)是 LOCATE(substr,str)同義詞。

  • QUOTE(str) 引證一個字符串,由此產(chǎn)生一個在SQL語句中可用作完全轉(zhuǎn)義數(shù)據(jù)值的結(jié)果。 返回的字符串由單引號標(biāo)注,每例都帶有單引號 (‘'’)、 反斜線符號 (‘\’)、 ASCII NUL以及前面有反斜線符號的Control-Z 。如果自變量的值為NULL, 則返回不帶單引號的單詞 “NULL”。

    mysql> SELECT QUOTE('Don\'t!');-> 'Don\'t!' mysql> SELECT QUOTE(NULL); -> NULL
  • REPEAT(str,count) 返回一個由重復(fù)的字符串str 組成的字符串,字符串str的數(shù)目等于count 。 若 count <= 0,則返回一個空字符串。若str 或 count 為 NULL,則返回 NULL 。

    mysql> SELECT REPEAT('MySQL', 3); -> 'MySQLMySQLMySQL'
  • REPLACE(str,from_str,to_str) 返回字符串str 以及所有被字符串to_str替代的字符串from_str 。

    mysql> SELECT REPLACE('www.shiyanlou.com', 'w', 'Ww'); -> 'WwWwWw.shiyanlou.com'

這個函數(shù)支持多字節(jié)字元。

  • REVERSE(str) 返回字符串 str ,順序和字符順序相反。

    mysql> SELECT REVERSE('abc');-> 'cba'

    這個函數(shù)支持多字節(jié)字元。

  • RIGHT(str,len) 從字符串str 開始,返回最右len 字符。

    mysql> SELECT RIGHT('foobarbar', 4); -> 'rbar'

這個函數(shù)支持多字節(jié)字元。

  • RPAD(str,len,padstr) 返回字符串str, 其右邊被字符串 padstr填補(bǔ)至len 字符長度。假如字符串str 的長度大于 len,則返回值被縮短到與 len 字符相同長度。 mysql> SELECT RPAD('hi',5,'?'); -> 'hi???' mysql> SELECT RPAD('hi',1,'?'); -> 'h'

這個函數(shù)支持多字節(jié)字元。

  • RTRIM(str) 返回字符串 str ,結(jié)尾空格字符被刪去。 mysql> SELECT RTRIM('barbar ');-> 'barbar'

這個函數(shù)支持多字節(jié)字元。

  • SOUNDEX(str) 從str返回一個soundex字符串。 兩個具有幾乎同樣探測的字符串應(yīng)該具有同樣的 soundex 字符串。一個標(biāo)準(zhǔn)的soundex 字符串的長度為4個字符,然而SOUNDEX() 函數(shù)會返回一個人以長度的字符串。 可使用結(jié)果中的SUBSTRING() 來得到一個標(biāo)準(zhǔn) soundex 字符串。在str中,會忽略所有未按照字母順序排列的字符。 所有不在A-Z范圍之內(nèi)的國際字母符號被視為元音字母。 mysql> SELECT SOUNDEX('Hello');-> 'H400' mysql> SELECT SOUNDEX('Quadratically'); -> 'Q36324'

注意:這個函數(shù)執(zhí)行原始的Soundex算法,而非更加流行的加強(qiáng)版本(如D. Knuth所述)。其區(qū)別在于原始版本首先會刪去元音,其次是重復(fù),而加強(qiáng)版則首先刪去重復(fù),而后刪去元音。

  • expr1 SOUNDS LIKE expr2 這相當(dāng)于SOUNDEX(expr1) = SOUNDEX(expr2)。

  • SPACE(N) 返回一個由N 間隔符號組成的字符串。

    mysql> SELECT SPACE(6);-> ' '
  • SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len) 不帶有l(wèi)en 參數(shù)的格式從字符串str返回一個子字符串,起始于位置 pos。帶有l(wèi)en參數(shù)的格式從字符串str返回一個長度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式為標(biāo)準(zhǔn) SQL 語法。也可能對pos使用一個負(fù)值。假若這樣,則子字符串的位置起始于字符串結(jié)尾的pos 字符,而不是字符串的開頭位置。在以下格式的函數(shù)中可以對pos 使用一個負(fù)值。

    mysql> SELECT SUBSTRING('Quadratically',5); -> 'ratically' mysql> SELECT SUBSTRING('foobarbar' FROM 4); -> 'barbar' mysql> SELECT SUBSTRING('Quadratically',5,6); -> 'ratica' mysql> SELECT SUBSTRING('Sakila', -3); -> 'ila' mysql> SELECT SUBSTRING('Sakila', -5, 3); -> 'aki' mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2); -> 'ki'

這個函數(shù)支持多字節(jié)字元。

注意,如果對len使用的是一個小于1的值,則結(jié)果始終為空字符串。

SUBSTR()是 SUBSTRING()的同義詞。

  • SUBSTRING_INDEX(str,delim,count) 在定界符 delim 以及count 出現(xiàn)前,從字符串str返回自字符串。若count為正值,則返回最終定界符(從左邊開始)左邊的一切內(nèi)容。若count為負(fù)值,則返回定界符(從右邊開始)右邊的一切內(nèi)容。 mysql> SELECT SUBSTRING_INDEX('www.shiyanlou.com', '.', 2); -> 'www.shiyanlou' mysql> SELECT SUBSTRING_INDEX('www.shiyanlou.com', '.', -2); -> 'shiyanlou.com'

這個函數(shù)支持多字節(jié)字元。

  • TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str) 返回字符串 str , 其中所有remstr 前綴和/或后綴都已被刪除。若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設(shè)為BOTH 。 remstr 為可選項,在未指定情況下,可刪除空格。

    mysql> SELECT TRIM(' bar ');-> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); -> 'bar' mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -> 'barx'

    這個函數(shù)支持多字節(jié)字元。

  • UCASE(str) UCASE()是UPPER()的同義詞。

  • UNCOMPRESS(string_to_uncompress) 對經(jīng)COMPRESS()函數(shù)壓縮后的字符串進(jìn)行解壓縮。若參數(shù)為壓縮值,則結(jié)果為 NULL。這個函數(shù)要求 MySQL 已被諸如zlib 之類的壓縮庫編譯過。否則, 返回值將始終是 NULL。

    mysql> SELECT UNCOMPRESS(COMPRESS('any string'));-> 'any string' mysql> SELECT UNCOMPRESS('any string'); -> NULL
  • UNCOMPRESSED_LENGTH(compressed_string) 返回壓縮字符串壓縮前的長度。

    mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30))); -> 30
  • UNHEX(str) 執(zhí)行從HEX(str)的反向操作。就是說,它將參數(shù)中的每一對十六進(jìn)制數(shù)字理解為一個數(shù)字,并將其轉(zhuǎn)化為該數(shù)字代表的字符。結(jié)果字符以二進(jìn)制字符串的形式返回。

    mysql> SELECT UNHEX('4D7953514C');-> 'MySQL' mysql> SELECT 0x4D7953514C; -> 'MySQL' mysql> SELECT UNHEX(HEX('string')); -> 'string' mysql> SELECT HEX(UNHEX('1267')); -> '1267'
  • UPPER(str) 返回字符串str, 以及根據(jù)最新字符集映射轉(zhuǎn)化為大寫字母的字符 (默認(rèn)為cp1252 Latin1).

    mysql> SELECT UPPER('Hej');-> 'HEJ'

該函數(shù)支持多字節(jié)字元

  • STRCMP(expr1,expr2) 若所有的字符串均相同,則返回STRCMP(),若根據(jù)當(dāng)前分類次序,第一個參數(shù)小于第二個,則返回 -1,其它情況返回 1 。 mysql> SELECT STRCMP('text', 'text2'); -> -1 mysql> SELECT STRCMP('text2', 'text'); -> 1 mysql> SELECT STRCMP('text', 'text'); -> 0

在執(zhí)行比較時,STRCMP() 使用當(dāng)前字符集。這使得默認(rèn)的比較區(qū)分大小寫,當(dāng)操作數(shù)中的一個或兩個都是二進(jìn)制字符串時除外。

四、數(shù)值函數(shù)

4.1 算數(shù)操作符

  • +?加號:

    mysql> SELECT 3+5;-> 8
  • -?減號:

    mysql> SELECT 3-5;-> -2
  • -?一元減號。更換參數(shù)符號。

    mysql> SELECT - 2;-> -2

注意:若該 操作符同一個BIGINT同時使用,則返回值也是一個BIGINT。這意味著你應(yīng)當(dāng)盡量避免對可能產(chǎn)生–263的整數(shù)使用 –。

  • *?乘號: mysql> SELECT 3*5;-> 15 mysql> SELECT 18014398509481984*18014398509481984.0;-> 324518553658426726783156020576256.0 mysql> SELECT 18014398509481984*18014398509481984;-> 0

最后一個表達(dá)式的結(jié)果是不正確的。原因是整數(shù)相乘的結(jié)果超過了BIGINT 計算的 64比特范圍。

  • /?除號: mysql> SELECT 3/5;-> 0.60

被零除的結(jié)果為 NULL:

mysql> SELECT 102/(1-1);-> NULL

只有當(dāng)執(zhí)行的語境中,其結(jié)果要被轉(zhuǎn)化為一個整數(shù)時 ,除法才會和 BIGINT 算法一起使用。

  • DIV?整數(shù)除法。 類似于 FLOOR(),然而使用BIGINT 算法也是可靠的。 mysql> SELECT 5 DIV 2;-> 2

4.2 數(shù)學(xué)函數(shù)

若發(fā)生錯誤,所有數(shù)學(xué)函數(shù)會返回 NULL 。

  • ABS(X) 返回X 的絕對值。 mysql> SELECT ABS(2);-> 2 mysql> SELECT ABS(-32); -> 32

該函數(shù)支持使用BIGINT值。

  • ACOS(X) 返回X 反余弦, 即, 余弦是X的值。若X 不在-1到 1的范圍之內(nèi),則返回 NULL 。

    mysql> SELECT ACOS(1);-> 0 mysql> SELECT ACOS(1.0001); -> NULL mysql> SELECT ACOS(0); -> 1.5707963267949
  • ASIN(X) 返回X 的反正弦,即,正弦為X 的值。若X 若X 不在-1到 1的范圍之內(nèi),則返回 NULL 。

    mysql> SELECT ASIN(0.2);-> 0.20135792079033 mysql> SELECT ASIN('foo');
  • ATAN(X) 返回X 的反正切,即,正切為X 的值。

    mysql> SELECT ATAN(2);-> 1.1071487177941 mysql> SELECT ATAN(-2); -> -1.1071487177941
  • ATAN(Y,X) , ATAN2(Y,X) 返回兩個變量X 及Y的反正切。 它類似于 Y 或 X的反正切計算, 除非兩個參數(shù)的符號均用于確定結(jié)果所在象限。

    mysql> SELECT ATAN(-2,2);-> -0.78539816339745 mysql> SELECT ATAN2(PI(),0); -> 1.5707963267949
  • CEILING(X) CEIL(X) 返回不小于X 的最小整數(shù)值。

    mysql> SELECT CEILING(1.23);-> 2 mysql> SELECT CEIL(-1.23); -> -1

這兩個函數(shù)的意義相同。注意返回值會被轉(zhuǎn)化為一個BIGINT。

  • COS(X) 返回X 的余弦,其中X在弧度上已知。

    mysql> SELECT COS(PI());-> -1
  • COT(X) 返回X 的余切。

    mysql> SELECT COT(12);-> -1.5726734063977 mysql> SELECT COT(0); -> NULL
  • CRC32(expr) 計算循環(huán)冗余碼校驗值并返回一個 32比特?zé)o符號值。若參數(shù)為NULL ,則結(jié)果為 NULL。該參數(shù)應(yīng)為一個字符串,而且在不是字符串的情況下會被作為字符串處理(若有可能)。

    mysql> SELECT CRC32('MySQL');-> 3259397556 mysql> SELECT CRC32('mysql'); -> 2501908538
  • DEGREES(X) 返回參數(shù) X, 該參數(shù)由弧度被轉(zhuǎn)化為度。

    mysql> SELECT DEGREES(PI());-> 180 mysql> SELECT DEGREES(PI() / 2); -> 90
  • EXP(X) 返回e的X乘方后的值(自然對數(shù)的底)。

    mysql> SELECT EXP(2);-> 7.3890560989307 mysql> SELECT EXP(-2); -> 0.13533528323661 mysql> SELECT EXP(0); -> 1
  • FLOOR(X) 返回不大于X的最大整數(shù)值 。

    mysql> SELECT FLOOR(1.23);-> 1 mysql> SELECT FLOOR(-1.23); -> -2

注意,返回值會被轉(zhuǎn)化為一個 BIGINT。

  • FORMAT(X,D) 將數(shù)字X 的格式寫成'#,###,###.##'格式, 即保留小數(shù)點后 D位,而第D位的保留方式為四舍五入,然后將結(jié)果以字符串的形式返回。

  • LN(X) 返回X 的自然對數(shù),即, X 相對于基數(shù)e 的對數(shù)。

    mysql> SELECT LN(2);-> 0.69314718055995 mysql> SELECT LN(-2); -> NULL

這個函數(shù)同LOG(X)具有相同意義。

  • LOG(X) LOG(B,X) 若用一個參數(shù)調(diào)用,這個函數(shù)就會返回X 的自然對數(shù)。 mysql> SELECT LOG(2);-> 0.69314718055995 mysql> SELECT LOG(-2); -> NULL

若用兩個參數(shù)進(jìn)行調(diào)用,這個函數(shù)會返回X 對于任意基數(shù)B 的對數(shù)。

mysql> SELECT LOG(2,65536);-> 16 mysql> SELECT LOG(10,100); -> 2

LOG(B,X) 就相當(dāng)于 LOG(X) / LOG(B)。

  • LOG2(X) 返回X 的基數(shù)為2的對數(shù)。 mysql> SELECT LOG2(65536);-> 16 mysql> SELECT LOG2(-100); -> NULL

對于查出存儲一個數(shù)字需要多少個比特,LOG2()非常有效。這個函數(shù)相當(dāng)于表達(dá)式 LOG(X) / LOG(2)。

  • LOG10(X) 返回X的基數(shù)為10的對數(shù)。 mysql> SELECT LOG10(2);-> 0.30102999566398 mysql> SELECT LOG10(100); -> 2 mysql> SELECT LOG10(-100); -> NULL

LOG10(X)相當(dāng)于LOG(10,X)。

  • MOD(N,M) , N % M N MOD M 模操作。返回N 被 M除后的余數(shù)。 mysql> SELECT MOD(234, 10);-> 4 mysql> SELECT 253 % 7; -> 1 mysql> SELECT MOD(29,9); -> 2 mysql> SELECT 29 MOD 9; -> 2

這個函數(shù)支持使用BIGINT 值。

MOD() 對于帶有小數(shù)部分的數(shù)值也起作用, 它返回除法運算后的精確余數(shù):

mysql> SELECT MOD(34.5,3);-> 1.5
  • PI() 返回 ? (pi)的值。默認(rèn)的顯示小數(shù)位數(shù)是7位,然而 MySQL內(nèi)部會使用完全雙精度值。

    mysql> SELECT PI();-> 3.141593 mysql> SELECT PI()+0.000000000000000000; -> 3.141592653589793116
  • POW(X,Y) , POWER(X,Y) 返回X 的Y乘方的結(jié)果值。

    mysql> SELECT POW(2,2);-> 4 mysql> SELECT POW(2,-2); -> 0.25
  • RADIANS(X) 返回由度轉(zhuǎn)化為弧度的參數(shù) X, (注意 ? 弧度等于180度)。

    mysql> SELECT RADIANS(90);-> 1.5707963267949
  • RAND() RAND(N) 返回一個隨機(jī)浮點值 v ,范圍在 0 到1 之間 (即, 其范圍為 0 ≤ v ≤ 1.0)。若已指定一個整數(shù)參數(shù) N ,則它被用作種子值,用來產(chǎn)生重復(fù)序列。

    mysql> SELECT RAND();-> 0.9233482386203 mysql> SELECT RAND(20); -> 0.15888261251047 mysql> SELECT RAND(20); -> 0.15888261251047 mysql> SELECT RAND(); -> 0.63553050033332 mysql> SELECT RAND(); -> 0.70100469486881 mysql> SELECT RAND(20); -> 0.15888261251047

若要在i ≤ R ≤ j 這個范圍得到一個隨機(jī)整數(shù)R ,需要用到表達(dá)式 FLOOR(i + RAND() * (j – i + 1))。例如, 若要在7 到 12 的范圍(包括7和12)內(nèi)得到一個隨機(jī)整數(shù), 可使用以下語句:

SELECT FLOOR(7 + (RAND() * 6));

在ORDER BY語句中,不能使用一個帶有RAND()值的列,原因是 ORDER BY 會計算列的多重時間。然而,可按照如下的隨機(jī)順序檢索數(shù)據(jù)行:

mysql> SELECT * FROM tbl_name ORDER BY RAND();

ORDER BY RAND()同 LIMIT 的結(jié)合從一組列中選擇隨機(jī)樣本很有用:

mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d-> ORDER BY RAND() LIMIT 1000;

注意,在WHERE語句中,WHERE每執(zhí)行一次, RAND()就會被再計算一次。

RAND()的作用不是作為一個精確的隨機(jī)發(fā)生器,而是一種用來發(fā)生在同樣的 MySQL版本的平臺之間的可移動ad hoc隨機(jī)數(shù)的快速方式。

  • ROUND(X) ROUND(X,D) 返回參數(shù)X, 其值接近于最近似的整數(shù)。在有兩個參數(shù)的情況下,返回 X ,其值保留到小數(shù)點后D位,而第D位的保留方式為四舍五入。若要接保留X值小數(shù)點左邊的D 位,可將 D 設(shè)為負(fù)值。 mysql> SELECT ROUND(-1.23);-> -1 mysql> SELECT ROUND(-1.58); -> -2 mysql> SELECT ROUND(1.58); -> 2 mysql> SELECT ROUND(1.298, 1); -> 1.3 mysql> SELECT ROUND(1.298, 0); -> 1 mysql> SELECT ROUND(23.298, -1); -> 20

返回值的類型同 第一個自變量相同(假設(shè)它是一個整數(shù)、雙精度數(shù)或小數(shù))。這意味著對于一個整數(shù)參數(shù),結(jié)果也是一個整數(shù)(無小數(shù)部分)。

當(dāng)?shù)谝粋€參數(shù)是十進(jìn)制常數(shù)時,對于準(zhǔn)確值參數(shù),ROUND() 使用精密數(shù)學(xué)題庫:

對于準(zhǔn)確值數(shù)字, ROUND() 使用“四舍五入” 或“舍入成最接近的數(shù)” 的規(guī)則:對于一個分?jǐn)?shù)部分為 .5或大于 .5的值,正數(shù)則上舍入到鄰近的整數(shù)值, 負(fù)數(shù)則下舍入臨近的整數(shù)值。(換言之, 其舍入的方向是數(shù)軸上遠(yuǎn)離零的方向)。對于一個分?jǐn)?shù)部分小于.5 的值,正數(shù)則下舍入下一個整數(shù)值,負(fù)數(shù)則下舍入鄰近的整數(shù)值,而正數(shù)則上舍入鄰近的整數(shù)值。 對于近似值數(shù)字,其結(jié)果根據(jù)C 庫而定。在很多系統(tǒng)中,這意味著 ROUND()的使用遵循“舍入成最接近的偶數(shù)”的規(guī)則: 一個帶有任何小數(shù)部分的值會被舍入成最接近的偶數(shù)整數(shù)。 以下舉例說明舍入法對于精確值和近似值的不同之處:

mysql> SELECT ROUND(2.5), ROUND(25E-1);

SIGN(X) 返回參數(shù)作為-1、 0或1的符號,該符號取決于X 的值為負(fù)、零或正。

mysql> SELECT SIGN(-32);-> -1 mysql> SELECT SIGN(0); -> 0 mysql> SELECT SIGN(234); -> 1

SIN(X) 返回X 正弦,其中 X 在弧度中被給定。

mysql> SELECT SIN(PI());-> 1.2246063538224e-16 mysql> SELECT ROUND(SIN(PI())); -> 0
  • SQRT(X) 返回非負(fù)數(shù)X 的二次方根。

    mysql> SELECT SQRT(4);-> 2 mysql> SELECT SQRT(20); -> 4.4721359549996 mysql> SELECT SQRT(-16); -> NULL
  • TAN(X) 返回X 的正切,其中X 在弧度中被給定。

    mysql> SELECT TAN(PI());-> -1.2246063538224e-16 mysql> SELECT TAN(PI()+1); -> 1.5574077246549
  • TRUNCATE(X,D) 返回被舍去至小數(shù)點后D位的數(shù)字X。若D 的值為 0, 則結(jié)果不帶有小數(shù)點或不帶有小數(shù)部分。可以將D設(shè)為負(fù)數(shù),若要截去(歸零) X小數(shù)點左起第D位開始后面所有低位的值.

    mysql> SELECT TRUNCATE(1.223,1);-> 1.2 mysql> SELECT TRUNCATE(1.999,1); -> 1.9 mysql> SELECT TRUNCATE(1.999,0); -> 1 mysql> SELECT TRUNCATE(-1.999,1); -> -1.9 mysql> SELECT TRUNCATE(122,-2); -> 100 mysql> SELECT TRUNCATE(10.28*100,0); -> 1028

所有數(shù)字的舍入方向都接近于零。

五、日期和時間函數(shù)

  • ADDDATE(date,INTERVAL expr type) ADDDATE(expr,days) 當(dāng)被第二個參數(shù)的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同義詞。相關(guān)函數(shù)SUBDATE() 則是DATE_SUB()的同義詞。 mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY); -> '1998-02-02' mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY); -> '1998-02-02'

若 days 參數(shù)只是整數(shù)值,則 MySQL 5.1將其作為天數(shù)值添加至 expr。

mysql> SELECT ADDDATE('1998-01-02', 31); -> '1998-02-02'
  • ADDTIME(expr,expr2) ADDTIME()將 expr2添加至expr 然后返回結(jié)果。 expr 是一個時間或時間日期表達(dá)式,而expr2 是一個時間表達(dá)式。

    mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999',-> '1 1:1:1.000002'); -> '1998-01-02 01:01:01.000001' mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998'); -> '03:00:01.999997'
  • CONVERT_TZ(dt,from_tz,to_tz) CONVERT_TZ() 將時間日期值dt 從from_tz 給出的時區(qū)轉(zhuǎn)到to_tz給出的時區(qū),然后返回結(jié)果值。 在從若from_tz 到UTC的轉(zhuǎn)化過程中,該值超出 TIMESTAMP 類型的被支持范圍,那么轉(zhuǎn)化不會發(fā)生。

    mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET'); -> '2004-01-01 13:00:00' mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00'); -> '2004-01-01 22:00:00'

注釋:若要使用諸如 'MET'或 'Europe/Moscow'之類的指定時間區(qū),首先要設(shè)置正確的時區(qū)表。

  • CURDATE() 將當(dāng)前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語境中而定。

    mysql> SELECT CURDATE();-> '1997-12-15' mysql> SELECT CURDATE() + 0; -> 19971215
  • CURRENT_DATE CURRENT_DATE() CURRENT_DATE和CURRENT_DATE()是的同義詞.

  • CURTIME() 將當(dāng)前時間以'HH:MM:SS'或 HHMMSS 的格式返回, 具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語境中而定。

    mysql> SELECT CURTIME();-> '23:50:26' mysql> SELECT CURTIME() + 0; -> 235026
  • CURRENT_TIME, CURRENT_TIME() CURRENT_TIME 和CURRENT_TIME() 是CURTIME()的同義詞。

  • CURRENT_TIMESTAMP, CURRENT_TIMESTAMP() CURRENT_TIMESTAMP和 CURRENT_TIMESTAMP()是NOW()的同義詞。

  • DATE(expr) 提取日期或時間日期表達(dá)式expr中的日期部分。

    mysql> SELECT DATE('2014-10-29 01:02:03');-> '2014-10-29'
  • DATEDIFF(expr,expr2) DATEDIFF() 返回起始時間 expr和結(jié)束時間expr2之間的天數(shù)。Expr和expr2 為日期或 date-and-time 表達(dá)式。計算中只用到這些值的日期部分。

    mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); -> 1 mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31'); -> -31
  • DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type) 這些函數(shù)執(zhí)行日期運算。 date 是一個 DATETIME 或DATE值,用來指定起始時間。 expr 是一個表達(dá)式,用來指定從起始日期添加或減去的時間間隔值。 Expr是一個字符串;對于負(fù)值的時間間隔,它可以以一個 ‘-’開頭。 type 為關(guān)鍵詞,它指示了表達(dá)式被解釋的方式。

關(guān)鍵詞INTERVA及 type 分類符均不區(qū)分大小寫。

以下表顯示了type 和expr 參數(shù)的關(guān)系:

MySQL 允許任何expr 格式中的標(biāo)點分隔符。表中所顯示的是建議的 分隔符。若 date 參數(shù)是一個 DATE 值,而你的計算只會包括 YEAR、MONTH和DAY部分(即, 沒有時間部分), 其結(jié)果是一個DATE 值。否則,結(jié)果將是一個 DATETIME值。

若位于另一端的表達(dá)式是一個日期或日期時間值 , 則INTERVAL expr type只允許在 + 操作符的兩端。對于 –操作符, INTERVAL expr type 只允許在其右端,原因是從一個時間間隔中提取一個日期或日期時間值是毫無意義的。 (見下面的例子)。

mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;-> '1998-01-01 00:00:00' mysql> SELECT INTERVAL 1 DAY + '1997-12-31'; -> '1998-01-01' mysql> SELECT '1998-01-01' - INTERVAL 1 SECOND; -> '1997-12-31 23:59:59' mysql> SELECT DATE_ADD('1997-12-31 23:59:59', -> INTERVAL 1 SECOND); -> '1998-01-01 00:00:00' mysql> SELECT DATE_ADD('1997-12-31 23:59:59', -> INTERVAL 1 DAY); -> '1998-01-01 23:59:59' mysql> SELECT DATE_ADD('1997-12-31 23:59:59', -> INTERVAL '1:1' MINUTE_SECOND); -> '1998-01-01 00:01:00' mysql> SELECT DATE_SUB('1998-01-01 00:00:00', -> INTERVAL '1 1:1:1' DAY_SECOND); -> '1997-12-30 22:58:59' mysql> SELECT DATE_ADD('1998-01-01 00:00:00', -> INTERVAL '-1 10' DAY_HOUR); -> '1997-12-30 14:00:00' mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY); -> '1997-12-02' mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002', -> INTERVAL '1.999999' SECOND_MICROSECOND); -> '1993-01-01 00:00:01.000001'

若你指定了一個過于短的時間間隔值 (不包括type 關(guān)鍵詞所預(yù)期的所有時間間隔部分), MySQL 假定你已經(jīng)省去了時間間隔值的最左部分。 例如,你指定了一種類型的DAY_SECOND, expr 的值預(yù)期應(yīng)當(dāng)具有天、 小時、分鐘和秒部分。若你指定了一個類似 '1:10'的值, MySQL 假定天和小時部分不存在,那么這個值代表分和秒。換言之, '1:10' DAY_SECOND 被解釋為相當(dāng)于 '1:10' MINUTE_SECOND。這相當(dāng)于 MySQL將TIME 值解釋為所耗費的時間而不是日時的解釋方式。

假如你對一個日期值添加或減去一些含有時間部分的內(nèi)容,則結(jié)果自動轉(zhuǎn)化為一個日期時間值:

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY); -> '1999-01-02' mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR); -> '1999-01-01 01:00:00'

假如你使用了格式嚴(yán)重錯誤的日期,則結(jié)果為 NULL。假如你添加了 MONTH、YEAR_MONTH或YEAR ,而結(jié)果日期中有一天的日期大于添加的月份的日期最大限度,則這個日期自動被調(diào)整為添加月份的最大日期:

mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH); -> '1998-02-28'
  • DATE_FORMAT(date,format) 根據(jù)format 字符串安排date 值的格式。 以下說明符可用在 format 字符串中:

所有其它字符都被復(fù)制到結(jié)果中,無需作出解釋。

注意, ‘%’字符要求在格式指定符之前。

月份和日期說明符的范圍從零開始,原因是 MySQL允許存儲諸如 '2004-00-00'的不完全日期.

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); -> 'Saturday October 1997' mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s'); -> '22:23:00' mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b %j'); -> '4th 97 Sat 04 10 Oct 277' mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S %w'); -> '22 22 10 10:23:00 PM 22:23:00 00 6' mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V'); -> '1998 52'
  • DAY(date) DAY() 和DAYOFMONTH()的意義相同。

  • DAYNAME(date) 返回date 對應(yīng)的工作日名稱。

    mysql> SELECT DAYNAME('1998-02-05');-> '周四'
  • DAYOFMONTH(date) 返回date 對應(yīng)的該月日期,范圍是從 1到31。

    mysql> SELECT DAYOFMONTH('1998-02-03');-> 3
  • DAYOFWEEK(date) 返回date (1 = 周日, 2 = 周一, ..., 7 = 周六)對應(yīng)的工作日索引。這些索引值符合 ODBC標(biāo)準(zhǔn)。

    mysql> SELECT DAYOFWEEK('1998-02-03');-> 3
  • DAYOFYEAR(date) 返回date 對應(yīng)的一年中的天數(shù),范圍是從 1到366。

    mysql> SELECT DAYOFYEAR('1998-02-03');-> 34
  • EXTRACT(type FROM date) EXTRACT()函數(shù)所使用的時間間隔類型說明符同 DATE_ADD()或DATE_SUB()的相同,但它從日期中提取其部分,而不是執(zhí)行日期運算。

    mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');-> 1999 mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03'); -> 199907 mysql> SELECT EXTRACT(DAY_MINUTE FROM '1999-07-02 01:02:03'); -> 20102 mysql> SELECT EXTRACT(MICROSECOND -> FROM '2003-01-02 10:30:00.00123'); -> 123
  • FROM_DAYS(N) 給定一個天數(shù) N, 返回一個DATE值。

    mysql> SELECT FROM_DAYS(729669);-> '1997-10-07'

使用 FROM_DAYS()處理古老日期時,務(wù)必謹(jǐn)慎。他不用于處理陽歷出現(xiàn)前的日期(1582)

  • FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format) 返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的unix_timestamp參數(shù)表示,具體格式取決于該函數(shù)是否用在字符串中或是數(shù)字語境中。 若format 已經(jīng)給出,則結(jié)果的格式是根據(jù)format 字符串而定。 format 可以包含同DATE_FORMAT() 函數(shù)輸入項列表中相同的說明符。

    mysql> SELECT FROM_UNIXTIME(875996580);-> '1997-10-04 22:23:00' mysql> SELECT FROM_UNIXTIME(875996580) + 0; -> 19971004222300 mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), -> '%Y %D %M %h:%i:%s %x'); -> '2003 6th August 06:22:58 2003'
  • GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL') 返回一個格式字符串。這個函數(shù)在同DATE_FORMAT() 及STR_TO_DATE()函數(shù)結(jié)合時很有用。 第一個參數(shù)的3個可能值和第二個參數(shù)的5個可能值產(chǎn)生 15 個可能格式字符串 (對于使用的說明符,請參見DATE_FORMAT()函數(shù)說明表 )。

ISO 格式為ISO 9075, 而非ISO 8601.

也可以使用TIMESTAMP, 這時GET_FORMAT()的返回值和DATETIME相同。

mysql> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR')); -> '03.10.2003' mysql> SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA')); -> '2003-10-31'
  • HOUR(time) 返回time 對應(yīng)的小時數(shù)。對于日時值的返回值范圍是從 0 到 23 。 mysql> SELECT HOUR('10:05:03');-> 10

然而, TIME 值的范圍實際上非常大, 所以HOUR可以返回大于23的值。

mysql> SELECT HOUR('272:59:59');-> 272
  • LAST_DAY(date) 獲取一個日期或日期時間值,返回該月最后一天對應(yīng)的值。若參數(shù)無效,則返回NULL。

    mysql> SELECT LAST_DAY('2003-02-05');-> '2003-02-28' mysql> SELECT LAST_DAY('2004-02-05'); -> '2004-02-29' mysql> SELECT LAST_DAY('2004-01-01 01:01:01'); -> '2004-01-31' mysql> SELECT LAST_DAY('2003-03-32'); -> NULL
  • LOCALTIME, LOCALTIME() LOCALTIME 及 LOCALTIME()和NOW()具有相同意義。

  • LOCALTIMESTAMP, LOCALTIMESTAMP() LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意義。

  • MAKEDATE(year,dayofyear) 給出年份值和一年中的天數(shù)值,返回一個日期。dayofyear 必須大于 0 ,否則結(jié)果為 NULL。

    mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32); -> '2001-01-31', '2001-02-01' mysql> SELECT MAKEDATE(2001,365), MAKEDATE(2004,365); -> '2001-12-31', '2004-12-30' mysql> SELECT MAKEDATE(2001,0); -> NULL
  • MAKETIME(hour,minute,second) 返回由hour、 minute和second 參數(shù)計算得出的時間值。

    mysql> SELECT MAKETIME(12,15,30); -> '12:15:30'
  • MICROSECOND(expr) 從時間或日期時間表達(dá)式expr返回微秒值,其數(shù)字范圍從 0到 999999。

    mysql> SELECT MICROSECOND('12:00:00.123456');-> 123456 mysql> SELECT MICROSECOND('1997-12-31 23:59:59.000010'); -> 10
  • MINUTE(time) 返回 time 對應(yīng)的分鐘數(shù),范圍是從 0 到 59。

    mysql> SELECT MINUTE('98-02-03 10:05:03');-> 5
  • MONTH(date) 返回date 對應(yīng)的月份,范圍時從 1 到 12。

    mysql> SELECT MONTH('1998-02-03');-> 2
  • MONTHNAME(date) 返回date 對應(yīng)月份的全名。

    mysql> SELECT MONTHNAME('1998-02-05');-> 'February '
  • NOW() 返回當(dāng)前日期和時間值,其格式為 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具體格式取決于該函數(shù)是否用在字符串中或數(shù)字語境中。

    mysql> SELECT NOW();-> '1997-12-15 23:50:26' mysql> SELECT NOW() + 0; -> 19971215235026

在一個存儲程序或觸發(fā)器內(nèi), NOW() 返回一個常數(shù)時間,該常數(shù)指示了該程序或觸發(fā)語句開始執(zhí)行的時間。這同SYSDATE()的運行有所不同。

  • PERIOD_ADD(P,N) 添加 N 個月至周期P (格式為YYMM 或YYYYMM),返回值的格式為 YYYYMM。注意周期參數(shù) P 不是日期值。

    mysql> SELECT PERIOD_ADD(9801,2);-> 199803
  • PERIOD_DIFF(P1,P2) 返回周期P1和 P2 之間的月份數(shù)。P1 和P2 的格式應(yīng)該為YYMM或YYYYMM。注意周期參數(shù) P1和P2 不是日期值。

    mysql> SELECT PERIOD_DIFF(9802,199703);-> 11
  • QUARTER(date) 返回date 對應(yīng)的一年中的季度值,范圍是從 1到 4。

    mysql> SELECT QUARTER('98-04-01');-> 2
  • SECOND(time) 返回time 對應(yīng)的秒數(shù), 范圍是從 0到59。

    mysql> SELECT SECOND('10:05:03');-> 3
  • SEC_TO_TIME(seconds) 返回被轉(zhuǎn)化為小時、 分鐘和秒數(shù)的seconds參數(shù)值, 其格式為 'HH:MM:SS' 或HHMMSS,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語境中而定。

    mysql> SELECT SEC_TO_TIME(2378);-> '00:39:38' mysql> SELECT SEC_TO_TIME(2378) + 0; -> 3938
  • STR_TO_DATE(str,format) 這是DATE_FORMAT() 函數(shù)的倒轉(zhuǎn)。它獲取一個字符串 str 和一個格式字符串format。若格式字符串包含日期和時間部分,則 STR_TO_DATE()返回一個 DATETIME 值, 若該字符串只包含日期部分或時間部分,則返回一個 DATE 或TIME值。 str所包含的日期、時間或日期時間值應(yīng)該在format指示的格式中被給定。對于可用在format中的說明符,請參見DATE_FORMAT() 函數(shù)說明表。 所有其它的字符被逐字獲取,因此不會被解釋。若 str 包含一個非法日期、時間或日期時間值,則 STR_TO_DATE()返回NULL。同時,一個非法值會引起警告。 對日期值部分的范圍檢查在11.3.1節(jié),“DATETIME、DATE和TIMESTAMP類型”有詳細(xì)說明。其意義是,例如, 只要具體日期部分的范圍時從 1到 31之間,則允許一個日期中的具體日期部分大于一個月中天數(shù)值。并且,允許“零”日期或帶有0值部分的日期。

    mysql> SELECT STR_TO_DATE('00/00/0000', '%m/%d/%Y'); -> '0000-00-00' mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y'); -> '2004-04-31'
  • SUBDATE(date,INTERVAL expr type) SUBDATE(expr,days) 當(dāng)被第二個參數(shù)的 INTERVAL型式調(diào)用時, SUBDATE()和DATE_SUB()的意義相同。

    mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY); -> '1997-12-02' mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY); -> '1997-12-02'

第二個形式允許對days使用整數(shù)值。在這些情況下,它被算作由日期或日期時間表達(dá)式 expr中提取的天數(shù)。

mysql> SELECT SUBDATE('1998-01-02 12:00:00', 31); -> '1997-12-02 12:00:00'

注意不能使用格式 "%X%V" 來將一個 year-week 字符串轉(zhuǎn)化為一個日期,原因是當(dāng)一個星期跨越一個月份界限時,一個年和星期的組合不能標(biāo)示一個唯一的年和月份。若要將year-week轉(zhuǎn)化為一個日期,則也應(yīng)指定具體工作日:

mysql> select str_to_date('200442 Monday', '%X%V %W'); -> 2004-10-18
  • SUBTIME(expr,expr2) SUBTIME()從expr 中提取expr2 ,然后返回結(jié)果。expr 是一個時間或日期時間表達(dá)式,而xpr2 是一個時間表達(dá)式。

    mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002'); -> '1997-12-30 22:58:58.999997' mysql> SELECT SUBTIME('01:00:00.999999', '02:00:00.999998'); -> '-00:59:59.999999'
  • SYSDATE() 返回當(dāng)前日期和時間值,格式為'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS, 具體格式根據(jù)函數(shù)是否用在字符串或數(shù)字語境而定。 在一個存儲程序或觸發(fā)器中, SYSDATE()返回其執(zhí)行的時間, 而非存儲或觸發(fā)語句開始執(zhí)行的時間。這個NOW()的運作有所不同。

  • TIME(expr) 提取一個時間或日期時間表達(dá)式的時間部分,并將其以字符串形式返回。

    mysql> SELECT TIME('2003-12-31 01:02:03');-> '01:02:03' mysql> SELECT TIME('2003-12-31 01:02:03.000123'); -> '01:02:03.000123'
  • TIMEDIFF(expr,expr2) TIMEDIFF() 返回起始時間 expr 和結(jié)束時間expr2 之間的時間。 expr 和expr2 為時間或 date-and-time 表達(dá)式,兩個的類型必須一樣。

    mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',-> '2000:01:01 00:00:00.000001');-> '-00:00:00.000001' mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001', -> '1997-12-30 01:01:01.000002'); -> '46:58:57.999999'
  • TIMESTAMP(expr) , TIMESTAMP(expr,expr2) 對于一個單參數(shù),該函數(shù)將日期或日期時間表達(dá)式 expr 作為日期時間值返回.對于兩個參數(shù), 它將時間表達(dá)式 expr2 添加到日期或日期時間表達(dá)式 expr 中,將theresult作為日期時間值返回。

    mysql> SELECT TIMESTAMP('2003-12-31');-> '2003-12-31 00:00:00' mysql> SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00'); -> '2004-01-01 00:00:00'
  • TIMESTAMPADD(interval,intexpr,datetime_expr) 將整型表達(dá)式int_expr 添加到日期或日期時間表達(dá)式 datetime_expr中。 int_expr 的單位被時間間隔參數(shù)給定,該參數(shù)必須是以下值的其中一個: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。 可使用所顯示的關(guān)鍵詞指定Interval值,或使用SQL_TSI前綴。例如, DAY或SQL_TSI_DAY 都是正確的。

    mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02'); -> '2003-01-02 00:01:00' mysql> SELECT TIMESTAMPADD(WEEK,1,'2003-01-02'); -> '2003-01-09'
  • TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 返回日期或日期時間表達(dá)式datetime_expr1 和datetime_expr2the 之間的整數(shù)差。其結(jié)果的單位由interval 參數(shù)給出。interval 的法定值同TIMESTAMPADD()函數(shù)說明中所列出的相同。

    mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01'); -> 3 mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01'); -> -1
  • TIME_FORMAT(time,format) 其使用和 DATE_FORMAT()函數(shù)相同, 然而format 字符串可能僅會包含處理小時、分鐘和秒的格式說明符。其它說明符產(chǎn)生一個NULL值或0。 若time value包含一個大于23的小時部分,則 %H 和 %k 小時格式說明符會產(chǎn)生一個大于0..23的通常范圍的值。另一個小時格式說明符產(chǎn)生小時值模數(shù)12。

    mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l'); -> '100 100 04 04 4'
  • TIME_TO_SEC(time) 返回已轉(zhuǎn)化為秒的time參數(shù)。

    mysql> SELECT TIME_TO_SEC('22:23:00');-> 80580 mysql> SELECT TIME_TO_SEC('00:39:38'); -> 2378
  • TO_DAYS(date) 給定一個日期date, 返回一個天數(shù) (從年份0開始的天數(shù) )。

    mysql> SELECT TO_DAYS(950501);-> 728779 mysql> SELECT TO_DAYS('1997-10-07'); -> 729669

TO_DAYS() 不用于陽歷出現(xiàn)(1582)前的值,原因是當(dāng)日歷改變時,遺失的日期不會被考慮在內(nèi)。

  • UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date) 若無參數(shù)調(diào)用,則返回一個Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒數(shù)) 作為無符號整數(shù)。若用date 來調(diào)用UNIX_TIMESTAMP(),它會將參數(shù)值以'1970-01-01 00:00:00' GMT后的秒數(shù)的形式返回。date 可以是一個DATE 字符串、一個 DATETIME字符串、一個 TIMESTAMP或一個當(dāng)?shù)貢r間的YYMMDD 或YYYMMDD格式的數(shù)字。 mysql> SELECT UNIX_TIMESTAMP();-> 882226357 mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00'); -> 875996580

當(dāng) UNIX_TIMESTAMP被用在 TIMESTAMP列時, 函數(shù)直接返回內(nèi)部時戳值, 而不進(jìn)行任何隱含的 “string-to-Unix-timestamp”轉(zhuǎn)化。假如你向UNIX_TIMESTAMP()傳遞一個溢出日期,它會返回 0,但請注意只有基本范圍檢查會被履行 (年份從1970 到 2037, 月份從01到12,日期從 01 到31)。

  • UTC_DATE, UTC_DATE() 返回當(dāng)前 UTC日期值,其格式為 'YYYY-MM-DD' 或 YYYYMMDD,具體格式取決于函數(shù)是否用在字符串或數(shù)字語境中。

    mysql> SELECT UTC_DATE(), UTC_DATE() + 0; -> '2014-10-29', 20141029
  • UTC_TIME, UTC_TIME() 返回當(dāng)前 UTC 值,其格式為 'HH:MM:SS' 或HHMMSS,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語境而定。

    mysql> SELECT UTC_TIME(), UTC_TIME() + 0; -> '18:07:53', 180753
  • UTC_TIMESTAMP, UTC_TIMESTAMP() 返回當(dāng)前UTC日期及時間值,格式為 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語境而定。

    mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0; -> '2003-08-14 18:08:04', 20030814180804
  • WEEK(date[,mode]) 該函數(shù)返回date 對應(yīng)的星期數(shù)。WEEK() 的雙參數(shù)形式允許你指定該星期是否起始于周日或周一, 以及返回值的范圍是否為從0 到53 或從1 到53。若 mode參數(shù)被省略,則使用default_week_format系統(tǒng)自變量的值。請參見5.3.3節(jié),“服務(wù)器系統(tǒng)變量”。

以下表說明了mode 參數(shù)的工作過程:

mysql> SELECT WEEK('1998-02-20');-> 7 mysql> SELECT WEEK('1998-02-20',0); -> 7 mysql> SELECT WEEK('1998-02-20',1); -> 8 mysql> SELECT WEEK('1998-12-31',1); -> 53

注意,假如有一個日期位于前一年的最后一周, 若你不使用2、3、6或7作為mode 參數(shù)選擇,則MySQL返回 0:

mysql> SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0); -> 2000, 0

有人或許會提出意見,認(rèn)為 MySQL 對于WEEK() 函數(shù)應(yīng)該返回 52 ,原因是給定的日期實際上發(fā)生在1999年的第52周。我們決定返回0作為代替的原因是我們希望該函數(shù)能返回“給定年份的星期數(shù)”。這使得WEEK() 函數(shù)在同其它從日期中抽取日期部分的函數(shù)結(jié)合時的使用更加可靠。

假如你更希望所計算的關(guān)于年份的結(jié)果包括給定日期所在周的第一天,則應(yīng)使用 0、2、5或 7 作為mode參數(shù)選擇。

mysql> SELECT WEEK('2000-01-01',2); -> 52

作為選擇,可使用 YEARWEEK()函數(shù):

mysql> SELECT YEARWEEK('2000-01-01');-> 199952 mysql> SELECT MID(YEARWEEK('2000-01-01'),5,2); -> '52'
  • WEEKDAY(date) 返回date (0 = 周一, 1 = 周二, ... 6 = 周日)對應(yīng)的工作日索引 weekday index for

    mysql> SELECT WEEKDAY('1998-02-03 22:23:00');-> 1 mysql> SELECT WEEKDAY('1997-11-05'); -> 2
  • WEEKOFYEAR(date) 將該日期的陽歷周以數(shù)字形式返回,范圍是從1到53。它是一個兼容度函數(shù),相當(dāng)于WEEK(date,3)。

    mysql> SELECT WEEKOFYEAR('1998-02-20');-> 8
  • YEAR(date) 返回date 對應(yīng)的年份,范圍是從1000到9999。

    mysql> SELECT YEAR('98-02-03');-> 1998
  • YEARWEEK(date), YEARWEEK(date,start) 返回一個日期對應(yīng)的年或周。start參數(shù)的工作同 start參數(shù)對 WEEK()的工作相同。結(jié)果中的年份可以和該年的第一周和最后一周對應(yīng)的日期參數(shù)有所不同。

    mysql> SELECT YEARWEEK('1987-01-01');-> 198653

注意,周數(shù)和WEEK()函數(shù)隊可選參數(shù)0或 1可能會返回的(0) w有所不同,原因是此時 WEEK() 返回給定年份的語境中的周。

六、全文搜索功能

MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])

MySQL支持全文索引和搜索功能。MySQL中的全文索引類型FULLTEXT的索引。 FULLTEXT 索引僅可用于 MyISAM 表;他們可以從CHAR、 VARCHAR或TEXT列中作為CREATE TABLE語句的一部分被創(chuàng)建,或是隨后使用ALTER TABLE 或 CREATE INDEX被添加。對于較大的數(shù)據(jù)集,將你的資料輸入一個沒有FULLTEXT索引的表中,然后創(chuàng)建索引, 其速度比把資料輸入現(xiàn)有FULLTEXT索引的速度更為快。

mysql> CREATE TABLE articles (-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,-> title VARCHAR(200),-> body TEXT,-> FULLTEXT (title,body) -> ); mysql> INSERT INTO articles (title,body) VALUES-> ('MySQL Tutorial','DBMS stands for DataBase ...'),-> ('How To Use MySQL Well','After you went through a ...'), -> ('Optimizing MySQL','In this tutorial we will show ...'), -> ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'), -> ('MySQL vs. YourSQL','In the following database comparison ...'), -> ('MySQL Security','When configured properly, MySQL ...'); mysql> SELECT * FROM articles-> WHERE MATCH (title,body) AGAINST ('database'); mysql> SELECT id, MATCH (title,body) AGAINST ('Tutorial')-> FROM articles; mysql> SELECT id, body, MATCH (title,body) AGAINST-> ('Security implications of running MySQL as root') AS score-> FROM articles WHERE MATCH (title,body) AGAINST-> ('Security implications of running MySQL as root'); mysql> SELECT * FROM articles-> WHERE MATCH (title,body) AGAINST ('MySQL');

七、Cast函數(shù)和操作符

  • BINARY BINARY操作符將后面的字符串拋給一個二進(jìn)制字符串。這是一種簡單的方式來促使逐字節(jié)而不是逐字符的進(jìn)行列比較。這使得比較區(qū)分大小寫,即使該列不被定義為 BINARY或 BLOB。BINARY也會產(chǎn)生結(jié)尾空白,從而更加顯眼。 mysql> SELECT 'a' = 'A';-> 1 mysql> SELECT BINARY 'a' = 'A'; -> 0 mysql> SELECT 'a' = 'a '; -> 1 mysql> SELECT BINARY 'a' = 'a '; -> 0

BINARY影響整個比較;它可以在任何操作數(shù)前被給定,而產(chǎn)生相同的結(jié)果。

BINARY str 是CAST(str AS BINARY)的縮略形式。

注意,在一些語境中,假如你將一個編入索引的列派給BINARY, MySQL 將不能有效使用這個索引。

假如你想要將一個 BLOB值或其它二進(jìn)制字符串進(jìn)行區(qū)分大小寫的比較,你可利用二進(jìn)制字符串沒有字符集這一事實實現(xiàn)這個目的,這樣就不會有文書夾的概念。為執(zhí)行一個區(qū)分大小寫的比較,可使用 CONVERT()函數(shù)將一個字符串值轉(zhuǎn)化為一個不區(qū)分大小寫的字符集。其結(jié)果為一個非二進(jìn)制字符串,因此 LIKE 操作也不會區(qū)分大小寫:

SELECT 'A' LIKE CONVERT(blob_col USING latin1) FROM tbl_name;

若要使用一個不同的字符集, 替換其在上述語句中的latin1名。

CONVERT()一般可用于比較出現(xiàn)在不同字符集中的字符串。

CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name) CAST()和CONVERT() 函數(shù)可用來獲取一個類型的值,并產(chǎn)生另一個類型的值。

這個類型可以是以下值其中的一個:

BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [INTEGER] TIME UNSIGNED [INTEGER] BINARY 產(chǎn)生一個二進(jìn)制字符串。

假如給定了隨意長度N,則 BINARY[N] 使 cast使用該參數(shù)的不多于 N 個字節(jié)。同樣的, CHAR[N]會使 cast 使用該參數(shù)的不多于N 個字符。

CAST() and CONVERT(... USING ...) 是標(biāo)準(zhǔn) SQL語法。CONVERT()的非USING 格式是ofis ODBC語法。

帶有USING的CONVERT() 被用來在不同的字符集之間轉(zhuǎn)化數(shù)據(jù)。在 MySQL中, 自動譯碼名和相應(yīng)的字符集名稱相同。例如。 這個語句將服務(wù)器的默認(rèn)字符集中的字符串 'abc'轉(zhuǎn)化為utf8字符集中相應(yīng)的字符串:

SELECT CONVERT('abc' USING utf8);

當(dāng)你想要在一個CREATE ... SELECT 語句中創(chuàng)建一個特殊類型的列,則cast函數(shù)會很有用:

CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);

該函數(shù)也用于ENUM 列按詞法順序的排序。通常ENUM列的排序在使用內(nèi)部數(shù)值時發(fā)生。將這些值按照詞法順序派給 CHAR 結(jié)果:

SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);

CAST(str AS BINARY)和BINARY str相同。 CAST(expr AS CHAR) 將表達(dá)式視為一個帶有默認(rèn)字符集的字符串。

若用于一個諸如 CONCAT('Date: ',CAST(NOW() AS DATE))這樣的比較復(fù)雜的表達(dá)式的一部分,CAST()也會改變結(jié)果。

你不應(yīng)在不同的格式中使用 CAST() 來析取數(shù)據(jù),但可以使用諸如LEFT() 或 EXTRACT() 的樣的字符串函數(shù)來代替。

若要在數(shù)值語境中將一個字符串派給一個數(shù)值, 通常情況下,除了將字符串值作為數(shù)字使用外,你不需要做任何事:

mysql> SELECT 1+'1';-> 2

若要在一個字符串語境中使用一個數(shù)字,該數(shù)字會被自動轉(zhuǎn)化為一個BINARY 字符串。

mysql> SELECT CONCAT('hello you ',2); -> 'hello you 2'

MySQL 支持帶符號和無符號的64比特值的運算。若你正在使用數(shù)字操作符 (如 +) 而其中一個操作數(shù)為無符號整數(shù),則結(jié)果為無符號。可使用SIGNED 和UNSIGNED cast 操作符來覆蓋它。將運算分別派給帶符號或無符號64比特整數(shù)。

mysql> SELECT CAST(1-2 AS UNSIGNED)-> 18446744073709551615 mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED); -> -1

注意,假如任意一個操作數(shù)為一個浮點值,則結(jié)果為一個浮點值, 且不會受到上述規(guī)則影響 (關(guān)于這一點, DECIMAL 列值被視為浮點值)。

mysql> SELECT CAST(1 AS UNSIGNED) - 2.0;-> -1.0

若你在一個算術(shù)運算中使用了一個字符串,它會被轉(zhuǎn)化為一個浮點數(shù)。

八、其他函數(shù)

8.1 位函數(shù)

對于比特運算,MySQL 使用 BIGINT (64比特) 算法,因此這些操作符的最大范圍是 64 比特。

  • | Bitwise OR: mysql> SELECT 29 | 15;-> 31

其結(jié)果為一個64比特?zé)o符號整數(shù)。

  • & Bitwise AND: mysql> SELECT 29 & 15;-> 13

其結(jié)果為一個64比特?zé)o符號整數(shù)。

  • ^ Bitwise XOR: mysql> SELECT 1 ^ 1;-> 0 mysql> SELECT 1 ^ 0;-> 1 mysql> SELECT 11 ^ 3;-> 8

結(jié)果為一個64比特?zé)o符號整數(shù)。

  • << 把一個longlong (BIGINT)數(shù)左移兩位。 mysql> SELECT 1 << 2;-> 4

其結(jié)果為一個64比特?zé)o符號整數(shù)。

  • > 把一個longlong (BIGINT)數(shù)右移兩位。

    mysql> SELECT 4 >> 2;-> 1

其結(jié)果為一個64比特?zé)o符號整數(shù)。

  • ~ 反轉(zhuǎn)所有比特。 mysql> SELECT 5 & ~1;-> 4

其結(jié)果為一個64比特?zé)o符號整數(shù)。

  • BIT_COUNT(N) 返回參數(shù)N 中所設(shè)置的比特數(shù) mysql> SELECT BIT_COUNT(29);-> 4

8.2 加密函數(shù)

本節(jié)介紹了加密和加密值。若你想要儲存一些由可能包含任意字節(jié)值的加密函數(shù)返回的結(jié)果,使用BLOB列而不是 CHAR 或VARCHAR 列,從而避免由于結(jié)尾空格的刪除而改變一些數(shù)據(jù)值的潛在問題。

  • AES_ENCRYPT(str,key_str) , AES_DECRYPT(crypt_str,key_str) 這些函數(shù)允許使用官方AES進(jìn)行加密和數(shù)據(jù)加密 (高級加密標(biāo)準(zhǔn) ) 算法, 即以前人們所熟知的 “Rijndael”。 保密關(guān)鍵字的長度為128比特,不過你可以通過改變源而將其延長到 256 比特。我們選擇了 128比特的原因是它的速度要快得多,且對于大多數(shù)用途而言這個保密程度已經(jīng)夠用。 輸入?yún)?shù)可以為任何長度。若任何一個參數(shù)為NULL,則函數(shù)的結(jié)果也是NULL。 因為 AES 是塊級算法,使用填充將不均衡長度字符串編碼,這樣結(jié)果字符串的長度的算法為 16 * (trunc(string_length / 16) + 1)。 若 AES_DECRYPT()檢測到無效數(shù)據(jù)或不正確填充,它會返回 NULL。然而,若輸入的資料或密碼無效時, AES_DECRYPT()有可能返回一個非 NULL 值 (可能為無用信息 )。

  • AES_ENCRYPT()和AES_DECRYPT() 可以被看作MySQL中普遍通用的密碼最安全的加密函數(shù)。

  • DECODE(crypt_str,pass_str) 使用 pass_str 作為密碼,解密加密字符串 crypt_str, crypt_str 應(yīng)該是由ENCODE()返回的字符串。

  • ENCODE(str,pass_str) 使用pass_str 作為密碼,解密 str 。 使用DECODE()解密結(jié)果。 結(jié)果是一個和str長度相同的二進(jìn)制字符串。若你想要將其保留在一個列中,可使用 BLOB 列類型。

  • DES_DECRYPT(crypt_str[,key_str]) 使用DES_ENCRYPT()加密一個字符串。若出現(xiàn)錯誤,這個函數(shù)會返回 NULL。 注意,這個函數(shù)只有當(dāng)MySQL在SSL 的支持下配置完畢時才會運作。 假如沒有給定 key_str 參數(shù), DES_DECRYPT() 會首先檢查加密字符串的第一個字節(jié), 從而確定用來加密原始字符串的DES密碼關(guān)鍵字?jǐn)?shù)字,之后從DES關(guān)鍵字文件中讀取關(guān)鍵字從而解密信息。為使其運行,用戶必須享有 SUPER 特權(quán)。可以選擇--des-key-file服務(wù)器指定關(guān)鍵字文件。 假如你向這個函數(shù)傳遞一個key_str 參數(shù),該字符串被用作解密信息的關(guān)鍵字。 若 crypt_str 參數(shù)看起來不是一個加密字符串, MySQL 會返回給定的 crypt_str。

  • DES_ENCRYPT(str[,(key_num|key_str)]) 用Triple-DES 算法給出的關(guān)鍵字加密字符串。若出現(xiàn)錯誤,這個函數(shù)會返回NULL。 注意,這個函數(shù)只有當(dāng)MySQL 在SSL的支持下配置完畢后才會運行。請參見5.8.7節(jié),“使用安全連接”. 使用的加密關(guān)鍵字的選擇基于第二個到 DES_ENCRYPT()的參數(shù),假如給定:

選擇--des-key-file服務(wù)器指定關(guān)鍵字文件。

返回字符串是一個二進(jìn)制字符串,其中第一個字符為 CHAR(128 | key_num)。

加上 128使得識別加密關(guān)鍵字更加容易。若你使用一個字符串關(guān)鍵字,則 key_num 為127。

結(jié)果的字符串長度為 new_len = orig_len + (8-(orig_len % 8))+1。

DES關(guān)鍵字文件中的每一行都具有如下格式:

key_num des_key_str

每個key_num 必須是一個從0到0范圍內(nèi)的數(shù)字。文件中行的排列順序是任意的。 des_key_str 是用來加密信息的字符串。在數(shù)字和關(guān)鍵字之間應(yīng)該至少有一個空格。若你未指定任何到DES_ENCRYPT()的關(guān)鍵字參數(shù),則第一個關(guān)鍵字為默認(rèn)的使用關(guān)鍵字。

使用FLUSH DES_KEY_FILE語句,你可以讓 MySQL從關(guān)鍵字文件讀取新的關(guān)鍵字值。這要求你享有 RELOAD特權(quán)。

擁有一套默認(rèn)關(guān)鍵字的一個好處就是它向應(yīng)用程序提供了一個檢驗加密列值的方式,而無須向最終用戶提供解密這些值的權(quán)力。

mysql> SELECT customer_address FROM customer_table> WHERE crypted_credit_card = DES_ENCRYPT('credit_card_number');
  • ENCRYPT(str[,salt]) 使用Unix crypt() 系統(tǒng)調(diào)用加密 str。 salt 參數(shù)應(yīng)為一個至少包含2個字符的字符串。若沒有給出 salt 參數(shù),則使用任意值。 mysql> SELECT ENCRYPT('hello');-> 'VxuFAJXVARROc'

至少在一些系統(tǒng)中,ENCRYPT()除了str的前八位字符之外會忽略所有內(nèi)容。這個行為由下劃線的crypt() 系統(tǒng)調(diào)用的執(zhí)行所決定。

假如crypt()在你的系統(tǒng)中不可用(正如在 Windows系統(tǒng)), ENCRYPT() 則會始終返回NULL。鑒于這個原因,我們向你推薦使用 MD5() 或SHA1() 來代替,因為這兩個函數(shù)適合所有的平臺。

  • MD5(str) 為字符串算出一個 MD5 128比特檢查和。該值以32位十六進(jìn)制數(shù)字的二進(jìn)制字符串的形式返回, 若參數(shù)為 NULL 則會返回 NULL。例如,返回值可被用作散列關(guān)鍵字。 mysql> SELECT MD5('testing');-> 'ae2b1fca515949e5d54fb22b8ed95575'

這是"RSA Data Security, Inc. MD5 Message-Digest Algorithm."

  • OLD_PASSWORD(str) 當(dāng)PASSWORD()的執(zhí)行變?yōu)楦纳瓢踩詴r,OLD_PASSWORD()會被添加到 MySQL。

  • PASSWORD(str) 從原文密碼str 計算并返回密碼字符串,當(dāng)參數(shù)為 NULL 時返回 NULL。這個函數(shù)用于用戶授權(quán)表的Password列中的加密MySQL密碼存儲

    mysql> SELECT PASSWORD('badpwd');-> '7f84554057dd964b'

PASSWORD() 加密是單向的 (不可逆 )。

PASSWORD() 執(zhí)行密碼加密與Unix 密碼被加密的方式不同。請參見ENCRYPT()。

注釋: PASSWORD()函數(shù)在MySQL服務(wù)器中的鑒定系統(tǒng)使用;你不應(yīng)將它用在你個人的應(yīng)用程序中。為達(dá)到同樣目的,可使用 MD5()或SHA1() 代替。

  • SHA1(str) SHA(str) 為字符串算出一個 SHA1 160比特檢查和,如RFC 3174 (安全散列算法 )中所述。該值被作為40位十六進(jìn)制數(shù)字返回,而當(dāng)參數(shù)為NULL 時則返回 NULL。這個函數(shù)的一個可能的用處就在于其作為散列關(guān)鍵字。你也可以將其作為存儲密碼的密碼安全函數(shù)使用。 mysql> SELECT SHA1('abc');-> 'a9993e364706816aba3e25717850c26c9cd0d89d'

SHA1()可以被視為一個密碼更加安全的函數(shù),相當(dāng)于 MD5()。 SHA() 和SHA1()具有相同的意義。

8.3 信息函數(shù)

  • BENCHMARK(count,expr) BENCHMARK() 函數(shù)重復(fù)count 次執(zhí)行表達(dá)式 expr 。 它可以被用于計算 MySQL 處理表達(dá)式的速度。結(jié)果值通常為 0。另一種用處來自 mysql客戶端內(nèi)部,能夠報告問詢執(zhí)行的次數(shù): mysql> SELECT BENCHMARK(1000000,ENCODE('hello','goodbye'));

此處報告的時間是客戶端上的共用時間,而不是服務(wù)器端上的CPU時間。建議執(zhí)行多遍BENCHMARK(),并解釋與服務(wù)器機(jī)器負(fù)荷程度有關(guān)的結(jié)果。

  • CHARSET(str) 返回字符串自變量的字符集。

    mysql> SELECT CHARSET('abc');-> 'latin1' mysql> SELECT CHARSET(CONVERT('abc' USING utf8)); -> 'utf8' mysql> SELECT CHARSET(USER()); -> 'utf8'
  • COERCIBILITY(str) 返回字符串自變量的整序可壓縮性值。

    mysql> SELECT COERCIBILITY('abc' COLLATE latin1_swedish_ci);-> 0 mysql> SELECT COERCIBILITY(USER()); -> 3 mysql> SELECT COERCIBILITY('abc'); -> 4

    返回值具有如下意義:

下方值得優(yōu)先級較高。

  • COLLATION(str) 返回惠字符串參數(shù)的排序方式。

    mysql> SELECT COLLATION('abc');-> 'latin1_swedish_ci' mysql> SELECT COLLATION(_utf8'abc'); -> 'utf8_general_ci'
  • CONNECTION_ID() 返回對于連接的連接ID (線程ID)。每個連接都有各自的唯一 ID。

    mysql> SELECT CONNECTION_ID();-> 23786
  • CURRENT_USER, CURRENT_USER() 返回當(dāng)前話路被驗證的用戶名和主機(jī)名組合。這個值符合確定你的存取權(quán)限的MySQL 賬戶。在被指定SQL SECURITY DEFINER特征的存儲程序內(nèi), CURRENT_USER() 返回程序的創(chuàng)建者。 CURRENT_USER()的值可以和USER()的值有所不同。

    mysql> SELECT USER(); mysql> SELECT * FROM mysql.user; mysql> SELECT CURRENT_USER();
  • DATABASE() 返回使用 utf8 字符集的默認(rèn)(當(dāng)前)數(shù)據(jù)庫名。在存儲程序里,默認(rèn)數(shù)據(jù)庫是同該程序向關(guān)聯(lián)的數(shù)據(jù)庫,但并不一定與調(diào)用語境的默認(rèn)數(shù)據(jù)庫相同。

    mysql> SELECT DATABASE();-> 'test'

若沒有默認(rèn)數(shù)據(jù)庫, DATABASE()返回 NULL。

  • FOUND_ROWS() A SELECT語句可能包括一個 LIMIT 子句,用來限制服務(wù)器返回客戶端的行數(shù)。在有些情況下,需要不用再次運行該語句而得知在沒有LIMIT 時到底該語句返回了多少行。為了知道這個行數(shù), 包括在SELECT 語句中選擇 SQL_CALC_FOUND_ROWS ,隨后調(diào)用 FOUND_ROWS() : mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name-> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();

第二個 SELECT返回一個數(shù)字,指示了在沒有LIMIT子句的情況下,第一個SELECT返回了多少行 (若上述的 SELECT語句不包括 SQL_CALC_FOUND_ROWS 選項,則使用LIMIT 和不使用時,FOUND_ROWS() 可能會返回不同的結(jié)果)。

通過 FOUND_ROWS()的有效行數(shù)是瞬時的,并且不用于越過SELECT SQL_CALC_FOUND_ROWS語句后面的語句。若你需要稍候參閱這個值,那么將其保存:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM ... ; mysql> SET @rows = FOUND_ROWS();

假如你正在使用 SELECT SQL_CALC_FOUND_ROWS, MySQL 必須計算出在全部結(jié)果集合中有所少行。然而, 這比不用LIMIT而再次運行問詢要快,原因是結(jié)果集合不需要被送至客戶端。

SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 在當(dāng)你希望限制一個問詢返回的行數(shù)時很有用,同時還能不需要再次運行問詢而確定全部結(jié)果集合中的行數(shù)。一個例子就是提供頁式顯示的Web腳本,該顯示包含顯示搜索結(jié)果其它部分的頁的連接。使用FOUND_ROWS() 使你確定剩下的結(jié)果需要多少其它的頁。

SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 的應(yīng)用對于UNION 問詢比對于簡單SELECT 語句更為復(fù)雜,原因是在UNION 中,LIMIT 可能會出現(xiàn)在多個位置。它可能適用于UNION中的個人 SELECT語句,或是總體上 到UNION 結(jié)果的全程。

SQL_CALC_FOUND_ROWS對于 UNION的意向是它應(yīng)該不需要全程LIMIT而返回應(yīng)返回的行數(shù)。SQL_CALC_FOUND_ROWS 和UNION 一同使用的條件是:

SQL_CALC_FOUND_ROWS 關(guān)鍵詞必須出現(xiàn)在UNION的第一個 SELECT中。 FOUND_ROWS()的值只有在使用 UNION ALL時才是精確的。若使用不帶ALL的UNION,則會發(fā)生兩次刪除, 而 FOUND_ROWS() 的指只需近似的。 假若UNION 中沒有出現(xiàn) LIMIT ,則SQL_CALC_FOUND_ROWS 被忽略,返回臨時表中的創(chuàng)建的用來處理UNION的行數(shù)。

  • LAST_INSERT_ID() LAST_INSERT_ID(expr) 自動返回最后一個INSERT或 UPDATE 問詢?yōu)?AUTO_INCREMENT列設(shè)置的第一個發(fā)生的值。 mysql> SELECT LAST_INSERT_ID();-> 195

產(chǎn)生的ID每次連接后保存在服務(wù)器中。這意味著函數(shù)向一個給定客戶端返回的值是該客戶端產(chǎn)生對影響AUTO_INCREMENT列的最新語句第一個 AUTO_INCREMENT值的。這個值不能被其它客戶端影響,即使它們產(chǎn)生它們自己的 AUTO_INCREMENT值。這個行為保證了你能夠找回自己的 ID 而不用擔(dān)心其它客戶端的活動,而且不需要加鎖或處理。

  • ROW_COUNT() ROW_COUNT()返回被前面語句升級的、插入的或刪除的行數(shù)。 這個行數(shù)和 mysql 客戶端顯示的行數(shù)及 mysql_affected_rows() C API 函數(shù)返回的值相同。

    mysql> SELECT ROW_COUNT();
  • SCHEMA() 這個函數(shù)和 DATABASE()具有相同的意義。

  • SESSION_USER() SESSION_USER()和 USER()具有相同的意義。

  • SYSTEM_USER() SYSTEM_USER()合 USER()具有相同的意義。

  • USER() 返回當(dāng)前 MySQL用戶名和機(jī)主名

  • VERSION() 返回指示 MySQL 服務(wù)器版本的字符串。這個字符串使用 utf8 字符集。

    mysql> SELECT VERSION();

注意,假如你的版本字符串以-log結(jié)尾,這說明登錄已被激活。

8.4 其他函數(shù)

  • DEFAULT(col_name) 返回一個表列的默認(rèn)值。若該列沒有默認(rèn)值則會產(chǎn)生錯誤。
  • FORMAT(X,D) 將數(shù)字X 的格式寫為'#,###,###.##',以四舍五入的方式保留小數(shù)點后 D 位, 并將結(jié)果以字符串的形式返回。若 D 為 0, 則返回結(jié)果不帶有小數(shù)點,或不含小數(shù)部分。

    mysql> SELECT FORMAT(12332.123456, 4); -> '12,332.1235' mysql> SELECT FORMAT(12332.1,4); -> '12,332.1000' mysql> SELECT FORMAT(12332.2,0); -> '12,332'
  • GET_LOCK(str,timeout) 設(shè)法使用字符串str 給定的名字得到一個鎖, 超時為timeout 秒。若成功得到鎖,則返回 1,若操作超時則返回0 (例如,由于另一個客戶端已提前封鎖了這個名字 ),若發(fā)生錯誤則返回NULL (諸如缺乏記憶或線程mysqladmin kill 被斷開 )。假如你有一個用GET_LOCK()得到的鎖,當(dāng)你執(zhí)行RELEASE_LOCK()或你的連接斷開(正常或非正常)時,這個鎖就會解除。 這個函數(shù)可用于執(zhí)行應(yīng)用程序鎖或模擬記錄鎖定。名稱被鎖定在服務(wù)器范圍內(nèi)。假如一個名字已經(jīng)被一個客戶端封鎖, GET_LOCK() 會封鎖來自另一個客戶端申請封鎖同一個名字的任何請求。這使對一個封鎖名達(dá)成協(xié)議的客戶端使用這個名字合作執(zhí)行建議鎖。然而要知道它也允許不在一組合作客戶端中的一個客戶端封鎖名字,不論是服役的還是非故意的,這樣阻止任何合作中的客戶端封鎖這個名字。一個減少這種情況發(fā)生的辦法就是使用數(shù)據(jù)庫特定的或應(yīng)用程序特定的封鎖名。例如, 使用db_name.str或 app_name.str 形式的封鎖名。

    mysql> SELECT GET_LOCK('lock1',10); -> 1 mysql> SELECT IS_FREE_LOCK('lock2'); -> 1 mysql> SELECT GET_LOCK('lock2',10); -> 1 mysql> SELECT RELEASE_LOCK('lock2'); -> 1 mysql> SELECT RELEASE_LOCK('lock1'); -> NULL

注意,第二個 RELEASE_LOCK()調(diào)用返回 NULL ,原因是鎖'lock1' 杯第二個GET_LOCK()調(diào)用解開。

  • INET_ATON(expr) 給出一個作為字符串的網(wǎng)絡(luò)地址的點地址表示,返回一個代表該地址數(shù)值的整數(shù)。地址可以是4或8比特地址。 mysql> SELECT INET_ATON('209.207.224.40');-> 3520061480

產(chǎn)生的數(shù)字總是按照網(wǎng)絡(luò)字節(jié)順序。如上面的例子,數(shù)字按照 209×2563 + 207×2562 + 224×256 + 40 進(jìn)行計算。

INET_ATON() 也能理解短格式 IP 地址:

mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1'); -> 2130706433, 2130706433

注釋: 在存儲由INET_ATON() 產(chǎn)生的值時,推薦你使用 INT UNSIGNED 列。假如你使用 (帶符號) INT列, 則相應(yīng)的第一個八位組大于127的IP 地址值會被截至 2147483647 (即, INET_ATON('127.255.255.255') 所返回的值)。

  • INET_NTOA(expr) 給定一個數(shù)字網(wǎng)絡(luò)地址 (4 或 8 比特),返回作為字符串的該地址的電地址表示。

    mysql> SELECT INET_NTOA(3520061480);-> '209.207.224.40'
  • IS_FREE_LOCK(str) 檢查名為str的鎖是否可以使用 (換言之,沒有被封鎖)。若鎖可以使用,則返回 1 (沒有人在用這個鎖), 若這個鎖正在被使用,則返回0 ,出現(xiàn)錯誤則返回 NULL (諸如不正確的參數(shù) )。

  • IS_USED_LOCK(str) 檢查名為str的鎖是否正在被使用(換言之,被封鎖)。若被封鎖,則返回使用該鎖的客戶端的連接標(biāo)識符。否則返回 NULL。

  • MASTER_POS_WAIT(log_name,log_pos[,timeout]) 該函數(shù)對于控制主從同步很有用處。它會持續(xù)封鎖,直到從設(shè)備閱讀和應(yīng)用主機(jī)記錄中所有補(bǔ)充資料到指定的位置。返回值是其為到達(dá)指定位置而必須等待的記錄事件的數(shù)目。若從設(shè)備SQL線程沒有被啟動、從設(shè)備主機(jī)信息尚未初始化、參數(shù)不正確或出現(xiàn)任何錯誤,則該函數(shù)返回 NULL。若超時時間被超過,則返回-1。若在MASTER_POS_WAIT() 等待期間,從設(shè)備SQL線程中止,則該函數(shù)返回 NULL。若從設(shè)備由指定位置通過,則函數(shù)會立即返回結(jié)果。

假如已經(jīng)指定了一個超時時間值,當(dāng) 超時時間 秒數(shù)經(jīng)過后MASTER_POS_WAIT()會停止等待。超時時間 必須大于 0;一個為零或為負(fù)值的 超時時間 表示沒有超時時間。

  • NAME_CONST(name,value) 返回給定值。 當(dāng)用來產(chǎn)生一個結(jié)果集合列時, NAME_CONST()促使該列使用給定名稱。 mysql> SELECT NAME_CONST('myname', 14);

這個函數(shù)被添加進(jìn) MySQL 5.0.12。它只做內(nèi)部使用。

  • RELEASE_LOCK(str) 解開被GET_LOCK()獲取的,用字符串str 所命名的鎖。若鎖被解開,則返回 1,若改線程尚未創(chuàng)建鎖,則返回0 (此時鎖沒有被解開 ), 若命名的鎖不存在,則返回 NULL。若該鎖從未被對GET_LOCK()的調(diào)用獲取,或鎖已經(jīng)被提前解開,則該鎖不存在。

  • SLEEP(duration) 睡眠(暫停) 時間為duration 參數(shù)給定的秒數(shù),然后返回 0。若 SLEEP() 被中斷,它會返回 1。 duration 或許或包括一個給定的以微秒為單位的分?jǐn)?shù)部分。

  • UUID() 返回一個通用唯一標(biāo)識符(UUID) ,其產(chǎn)生的根據(jù)是《DCE 1.1: 遠(yuǎn)程過程調(diào)用》 (附錄A) CAE (公共應(yīng)用軟件環(huán)境) 的說明,該作品于1997年10月由 The Open Group 出版 (文件編號 C706,?http://www.opengroup.org/public/pubs/catalog/c706.htm). UUID被設(shè)計成一個在時間和空間上都獨一無二的數(shù)字。2個對UUID() 的調(diào)用應(yīng)產(chǎn)生2個不同的值,即使這些調(diào)用的執(zhí)行是在兩個互不相連的單獨電腦上進(jìn)行。 UUID 是一個由5位十六進(jìn)制數(shù)的字符串表示的128比特數(shù)字 ,其格式為 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee : 前3個數(shù)字從一個時間戳產(chǎn)生。 第4 個數(shù)字保持暫時唯一性,以防時間戳值失去單一性 (例如, 由于經(jīng)濟(jì)時)。 第5個數(shù)字是一個 IEEE 802 節(jié)點號,它提供空間唯一性。若后者不可用,則用一個隨機(jī)數(shù)字替換。 (例如, 由于主機(jī)沒有以太網(wǎng)卡,或我們不知道怎樣在你的操作系統(tǒng)上找到界面的機(jī)器地址 )。假若這樣,空間唯一性就不能得到保證。盡管如此,一個沖突的發(fā)生機(jī)率還是非常低的。 目前,一個界面的 MAC 地址盡被FreeBSD 和 Linux考慮到。在其它操作系統(tǒng)中, MySQL使用隨機(jī)產(chǎn)生的 48比特數(shù)字。

    mysql> SELECT UUID();-> '6ccd780c-baba-1026-9564-0040f4311e29'

注意, UUID() 不支持復(fù)制功能。

  • VALUES(col_name) 在一個INSERT … ON DUPLICATE KEY UPDATE …語句中,你可以在UPDATE 子句中使用 VALUES(col_name)函數(shù),用來訪問來自該語句的INSERT 部分的列值。換言之,UPDATE 子句中的 VALUES(col_name) 訪問需要被插入的col_name 的值,并不會發(fā)生重復(fù)鍵沖突。這個函數(shù)在多行插入中特別有用。 VALUES()函數(shù)只在INSERT ... UPDATE 語句中有意義,而在其它情況下只會返回 NULL。

轉(zhuǎn)載于:https://www.cnblogs.com/yangxiao99/p/4728459.html

總結(jié)

以上是生活随笔為你收集整理的(大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL函数和操作符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

大肉大捧一进一出视频出来呀 | 国产成人午夜福利在线播放 | 天堂久久天堂av色综合 | 久久久亚洲欧洲日产国码αv | 国产精品久久久久久久9999 | 99久久久国产精品无码免费 | 亚洲日韩精品欧美一区二区 | 久久国内精品自在自线 | 日本精品人妻无码77777 天堂一区人妻无码 | 在教室伦流澡到高潮hnp视频 | 久久精品人人做人人综合试看 | 久久 国产 尿 小便 嘘嘘 | 无码av免费一区二区三区试看 | 国产偷自视频区视频 | 国产香蕉尹人综合在线观看 | 免费看少妇作爱视频 | 无人区乱码一区二区三区 | 亚洲国产午夜精品理论片 | 美女扒开屁股让男人桶 | 日韩精品乱码av一区二区 | 装睡被陌生人摸出水好爽 | 亚洲综合精品香蕉久久网 | 51国偷自产一区二区三区 | 亚洲国产一区二区三区在线观看 | 国产亚洲精品久久久久久国模美 | 国产成人综合色在线观看网站 | 色婷婷综合激情综在线播放 | 中国女人内谢69xxxxxa片 | 婷婷六月久久综合丁香 | 丝袜人妻一区二区三区 | 亚洲七七久久桃花影院 | 国产成人精品一区二区在线小狼 | 久久国产精品偷任你爽任你 | 天下第一社区视频www日本 | 国产精品久久福利网站 | 性啪啪chinese东北女人 | 国产区女主播在线观看 | 亚洲成熟女人毛毛耸耸多 | 人人妻人人澡人人爽欧美一区 | 日本又色又爽又黄的a片18禁 | 东京热一精品无码av | 久久成人a毛片免费观看网站 | 亚洲国产成人a精品不卡在线 | 性开放的女人aaa片 | 国产激情艳情在线看视频 | 四虎影视成人永久免费观看视频 | 波多野结衣乳巨码无在线观看 | 清纯唯美经典一区二区 | 亚洲日韩中文字幕在线播放 | 老子影院午夜精品无码 | 丰满人妻翻云覆雨呻吟视频 | 国产亚洲精品久久久久久久久动漫 | 国产精品丝袜黑色高跟鞋 | 激情内射亚州一区二区三区爱妻 | 亚洲天堂2017无码 | 激情人妻另类人妻伦 | 国产乱人无码伦av在线a | 亚洲精品久久久久avwww潮水 | 国产亚洲精品久久久久久久久动漫 | 亚洲色www成人永久网址 | 99久久精品无码一区二区毛片 | 国产凸凹视频一区二区 | 久久99热只有频精品8 | 日韩精品无码一区二区中文字幕 | 高清国产亚洲精品自在久久 | 扒开双腿吃奶呻吟做受视频 | 欧美 日韩 亚洲 在线 | 欧美人与禽猛交狂配 | 又大又紧又粉嫩18p少妇 | 国产乱人偷精品人妻a片 | 国产精品怡红院永久免费 | 东京热一精品无码av | 亚洲国产精品无码久久久久高潮 | 久久午夜夜伦鲁鲁片无码免费 | 欧美日韩一区二区三区自拍 | 狠狠色欧美亚洲狠狠色www | 亚洲色在线无码国产精品不卡 | 国产美女极度色诱视频www | 国产成人无码av在线影院 | 欧美35页视频在线观看 | 性史性农村dvd毛片 | 东京热无码av男人的天堂 | 国产精品18久久久久久麻辣 | 国产av剧情md精品麻豆 | 夜精品a片一区二区三区无码白浆 | 欧美日韩一区二区三区自拍 | 国内揄拍国内精品少妇国语 | 欧美日韩综合一区二区三区 | 国产凸凹视频一区二区 | 日日天干夜夜狠狠爱 | 欧洲精品码一区二区三区免费看 | 久久99国产综合精品 | 日本一本二本三区免费 | 国产亚洲人成a在线v网站 | 装睡被陌生人摸出水好爽 | 亚洲乱亚洲乱妇50p | 午夜丰满少妇性开放视频 | 激情五月综合色婷婷一区二区 | 性欧美疯狂xxxxbbbb | 成人无码影片精品久久久 | 午夜精品一区二区三区的区别 | 久久精品中文字幕大胸 | 亚洲小说春色综合另类 | 综合人妻久久一区二区精品 | 国产猛烈高潮尖叫视频免费 | 国产成人精品久久亚洲高清不卡 | 男人扒开女人内裤强吻桶进去 | 精品无码成人片一区二区98 | 精品久久久久久亚洲精品 | 国产成人精品优优av | 日韩av无码一区二区三区不卡 | 亚洲大尺度无码无码专区 | 国产成人精品无码播放 | 99久久精品无码一区二区毛片 | 澳门永久av免费网站 | 免费国产成人高清在线观看网站 | 人妻aⅴ无码一区二区三区 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲高清偷拍一区二区三区 | 水蜜桃av无码 | 国产精品亚洲一区二区三区喷水 | 午夜精品久久久久久久久 | 亚洲综合精品香蕉久久网 | 白嫩日本少妇做爰 | 日本一区二区三区免费高清 | 丰满人妻一区二区三区免费视频 | 国产内射爽爽大片视频社区在线 | 亚洲国产av美女网站 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 精品亚洲韩国一区二区三区 | 亚洲精品国产精品乱码视色 | 牲欲强的熟妇农村老妇女视频 | 青青青爽视频在线观看 | 玩弄少妇高潮ⅹxxxyw | 亚洲中文字幕在线无码一区二区 | 国产av人人夜夜澡人人爽麻豆 | 青草视频在线播放 | 又大又黄又粗又爽的免费视频 | 高清无码午夜福利视频 | 精品一区二区三区无码免费视频 | 久久99精品国产麻豆蜜芽 | 国产女主播喷水视频在线观看 | 扒开双腿吃奶呻吟做受视频 | 国产舌乚八伦偷品w中 | 日产精品高潮呻吟av久久 | 国产真人无遮挡作爱免费视频 | 伊人久久大香线蕉亚洲 | 亚洲国产精品久久久久久 | 5858s亚洲色大成网站www | 久久人人97超碰a片精品 | 国产成人一区二区三区别 | 亚洲爆乳无码专区 | 樱花草在线播放免费中文 | 欧美 日韩 人妻 高清 中文 | 午夜理论片yy44880影院 | 高清不卡一区二区三区 | 精品午夜福利在线观看 | 精品夜夜澡人妻无码av蜜桃 | 中文字幕无码av激情不卡 | 丰满人妻翻云覆雨呻吟视频 | 国产亚洲欧美在线专区 | 成人片黄网站色大片免费观看 | 国产真实伦对白全集 | 无码人妻少妇伦在线电影 | 麻豆md0077饥渴少妇 | 宝宝好涨水快流出来免费视频 | 亚洲高清偷拍一区二区三区 | 亚洲一区二区三区国产精华液 | 亚洲区欧美区综合区自拍区 | 国内精品一区二区三区不卡 | 国产精品久久久久久亚洲影视内衣 | 熟妇女人妻丰满少妇中文字幕 | 在线 国产 欧美 亚洲 天堂 | 国产亚洲日韩欧美另类第八页 | 亚洲a无码综合a国产av中文 | 一二三四在线观看免费视频 | 精品一区二区不卡无码av | 日产国产精品亚洲系列 | 欧美人与禽zoz0性伦交 | 女高中生第一次破苞av | 亚洲啪av永久无码精品放毛片 | 国产成人无码a区在线观看视频app | 久久综合狠狠综合久久综合88 | 狠狠亚洲超碰狼人久久 | 国产精品久久久久无码av色戒 | 性欧美牲交xxxxx视频 | 中文字幕 人妻熟女 | 呦交小u女精品视频 | 亚洲综合色区中文字幕 | 国产三级精品三级男人的天堂 | 秋霞特色aa大片 | 国产精品久久精品三级 | 久久久久久av无码免费看大片 | 亚洲无人区一区二区三区 | 国内精品人妻无码久久久影院 | 女人被男人躁得好爽免费视频 | 国模大胆一区二区三区 | 色婷婷香蕉在线一区二区 | 无码毛片视频一区二区本码 | 麻豆国产人妻欲求不满谁演的 | 久久亚洲中文字幕无码 | 国产av无码专区亚洲a∨毛片 | 久久这里只有精品视频9 | 亚洲区小说区激情区图片区 | 一二三四社区在线中文视频 | 亚洲爆乳无码专区 | 日韩少妇白浆无码系列 | 日本一卡二卡不卡视频查询 | √天堂资源地址中文在线 | 精品国精品国产自在久国产87 | 欧洲精品码一区二区三区免费看 | 中文字幕无码免费久久9一区9 | 久久人人爽人人爽人人片av高清 | 乱人伦人妻中文字幕无码久久网 | 欧美性生交活xxxxxdddd | 2019nv天堂香蕉在线观看 | 无码吃奶揉捏奶头高潮视频 | 欧美高清在线精品一区 | 白嫩日本少妇做爰 | 丁香花在线影院观看在线播放 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲精品国产精品乱码不卡 | 国产无套内射久久久国产 | 76少妇精品导航 | 99久久亚洲精品无码毛片 | 久久国产36精品色熟妇 | 中文无码伦av中文字幕 | 久久亚洲a片com人成 | 亚洲色www成人永久网址 | 在线成人www免费观看视频 | 国产精品毛多多水多 | 丁香花在线影院观看在线播放 | 久久久久久久久888 | 最近中文2019字幕第二页 | 国产精品国产三级国产专播 | 青青青手机频在线观看 | 中文字幕色婷婷在线视频 | 久久久久av无码免费网 | 成人欧美一区二区三区黑人免费 | 日日干夜夜干 | 国产亚洲欧美日韩亚洲中文色 | 亚洲午夜无码久久 | 美女扒开屁股让男人桶 | 精品乱子伦一区二区三区 | 成人免费无码大片a毛片 | 超碰97人人做人人爱少妇 | 18黄暴禁片在线观看 | 欧美xxxxx精品 | 精品人妻av区 | 亚洲毛片av日韩av无码 | 欧美人与动性行为视频 | 精品无码国产自产拍在线观看蜜 | 中文字幕乱码人妻无码久久 | 久久久精品成人免费观看 | 国产无遮挡又黄又爽又色 | 欧美性猛交内射兽交老熟妇 | 4hu四虎永久在线观看 | 欧美 日韩 人妻 高清 中文 | 国产在热线精品视频 | 色偷偷人人澡人人爽人人模 | 巨爆乳无码视频在线观看 | 最近中文2019字幕第二页 | 欧美xxxx黑人又粗又长 | 欧美 丝袜 自拍 制服 另类 | 精品无码国产一区二区三区av | a在线亚洲男人的天堂 | 未满小14洗澡无码视频网站 | 久久亚洲精品成人无码 | 婷婷丁香五月天综合东京热 | 2020久久香蕉国产线看观看 | 精品无人区无码乱码毛片国产 | 日本精品少妇一区二区三区 | 国产97在线 | 亚洲 | 无遮无挡爽爽免费视频 | 欧美国产日产一区二区 | 欧美人与牲动交xxxx | 伊人色综合久久天天小片 | 欧美性猛交xxxx富婆 | 老子影院午夜精品无码 | 色窝窝无码一区二区三区色欲 | 日本高清一区免费中文视频 | 日产精品高潮呻吟av久久 | 成人精品视频一区二区 | 久久久久成人片免费观看蜜芽 | 成 人 网 站国产免费观看 | 国产精品办公室沙发 | 内射巨臀欧美在线视频 | 熟女俱乐部五十路六十路av | 亚洲国产av精品一区二区蜜芽 | 一区二区三区乱码在线 | 欧洲 | 九九久久精品国产免费看小说 | 亚洲国产精品一区二区第一页 | 亚洲乱码国产乱码精品精 | 天堂亚洲2017在线观看 | 精品午夜福利在线观看 | 国产一区二区三区四区五区加勒比 | www国产精品内射老师 | 东京无码熟妇人妻av在线网址 | 久久人人爽人人人人片 | 中文字幕无码视频专区 | 青青久在线视频免费观看 | 国产精品久久久久9999小说 | 久久精品人人做人人综合 | 人妻无码久久精品人妻 | 成年美女黄网站色大免费视频 | 55夜色66夜色国产精品视频 | 内射白嫩少妇超碰 | 东京无码熟妇人妻av在线网址 | www国产精品内射老师 | 亚洲成a人一区二区三区 | 国产高清av在线播放 | 夜夜高潮次次欢爽av女 | 亚洲日本va午夜在线电影 | 男人的天堂av网站 | 无码人妻丰满熟妇区五十路百度 | 久久精品成人欧美大片 | 学生妹亚洲一区二区 | 亚洲精品久久久久avwww潮水 | 鲁大师影院在线观看 | 精品国产av色一区二区深夜久久 | 无码成人精品区在线观看 | 最新国产乱人伦偷精品免费网站 | 精品 日韩 国产 欧美 视频 | 97精品国产97久久久久久免费 | 亚洲精品国偷拍自产在线麻豆 | 国产一区二区三区影院 | 精品久久久久久人妻无码中文字幕 | 蜜桃视频插满18在线观看 | 国产成人精品优优av | 人妻夜夜爽天天爽三区 | 婷婷五月综合激情中文字幕 | 亚洲狠狠色丁香婷婷综合 | 国精产品一品二品国精品69xx | 蜜臀av无码人妻精品 | 欧美一区二区三区 | 四虎影视成人永久免费观看视频 | 久久精品成人欧美大片 | 精品 日韩 国产 欧美 视频 | 中文久久乱码一区二区 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲中文字幕无码一久久区 | 小鲜肉自慰网站xnxx | 国产成人无码午夜视频在线观看 | 国产精品亚洲专区无码不卡 | 国产精品爱久久久久久久 | 久久久久久久久蜜桃 | 亚洲人成人无码网www国产 | 性做久久久久久久免费看 | 久久精品国产日本波多野结衣 | 久久久久久a亚洲欧洲av冫 | 国产特级毛片aaaaaa高潮流水 | 天天做天天爱天天爽综合网 | 中文字幕乱码中文乱码51精品 | 亚洲精品www久久久 | 国产成人综合在线女婷五月99播放 | 成 人 网 站国产免费观看 | aⅴ亚洲 日韩 色 图网站 播放 | 国语自产偷拍精品视频偷 | 欧美日韩一区二区三区自拍 | 免费无码的av片在线观看 | 一区二区三区乱码在线 | 欧洲 | 欧美日本精品一区二区三区 | 1000部夫妻午夜免费 | 四虎永久在线精品免费网址 | 国产av一区二区三区最新精品 | 国产精品二区一区二区aⅴ污介绍 | 久久久久人妻一区精品色欧美 | 久久精品人妻少妇一区二区三区 | 一本加勒比波多野结衣 | 色诱久久久久综合网ywww | 亚洲精品国产精品乱码不卡 | 国产在线精品一区二区高清不卡 | 麻豆国产人妻欲求不满 | 性色欲网站人妻丰满中文久久不卡 | 国产香蕉97碰碰久久人人 | 国产人妻精品一区二区三区 | 无遮挡国产高潮视频免费观看 | 亚洲国产综合无码一区 | 日本饥渴人妻欲求不满 | 免费无码一区二区三区蜜桃大 | 99久久精品无码一区二区毛片 | 成 人 网 站国产免费观看 | 18黄暴禁片在线观看 | 国产 浪潮av性色四虎 | 国产色在线 | 国产 | 久久国产精品偷任你爽任你 | 粉嫩少妇内射浓精videos | 乱中年女人伦av三区 | 人妻中文无码久热丝袜 | 久热国产vs视频在线观看 | 国精产品一品二品国精品69xx | 欧美日韩色另类综合 | 永久免费精品精品永久-夜色 | 又色又爽又黄的美女裸体网站 | 人妻少妇精品视频专区 | 美女黄网站人色视频免费国产 | 在线精品国产一区二区三区 | 精品国产av色一区二区深夜久久 | 中文字幕人妻无码一区二区三区 | 双乳奶水饱满少妇呻吟 | 国产精品对白交换视频 | 少妇性俱乐部纵欲狂欢电影 | 国产又粗又硬又大爽黄老大爷视 | 中文字幕精品av一区二区五区 | 波多野结衣aⅴ在线 | 亚洲精品成a人在线观看 | 青青久在线视频免费观看 | 亚洲精品午夜国产va久久成人 | 1000部啪啪未满十八勿入下载 | 久久精品国产99精品亚洲 | 爽爽影院免费观看 | 亚拍精品一区二区三区探花 | 久久久亚洲欧洲日产国码αv | 少妇无码av无码专区在线观看 | 欧美精品在线观看 | 97精品人妻一区二区三区香蕉 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产农村妇女高潮大叫 | 2020最新国产自产精品 | 国产精品丝袜黑色高跟鞋 | 国产精品无套呻吟在线 | 日韩欧美中文字幕公布 | 久久婷婷五月综合色国产香蕉 | 久久精品成人欧美大片 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲色大成网站www | 色五月五月丁香亚洲综合网 | 国产色在线 | 国产 | 又大又黄又粗又爽的免费视频 | 欧美大屁股xxxxhd黑色 | 午夜无码人妻av大片色欲 | 天堂久久天堂av色综合 | 亚洲中文字幕久久无码 | 中文字幕人妻无码一区二区三区 | 国产特级毛片aaaaaaa高清 | 亚洲热妇无码av在线播放 | 欧美三级a做爰在线观看 | 午夜成人1000部免费视频 | 丁香啪啪综合成人亚洲 | 亚洲日韩av一区二区三区四区 | 欧美成人高清在线播放 | 无码人妻精品一区二区三区不卡 | 在线 国产 欧美 亚洲 天堂 | 国产精品久久国产三级国 | 兔费看少妇性l交大片免费 | 久久综合九色综合欧美狠狠 | 香蕉久久久久久av成人 | 九一九色国产 | 激情爆乳一区二区三区 | 国产亚洲精品久久久久久久 | 欧美 亚洲 国产 另类 | 人妻少妇精品无码专区动漫 | 亚洲色无码一区二区三区 | 日本免费一区二区三区最新 | 成人试看120秒体验区 | 无码中文字幕色专区 | 呦交小u女精品视频 | 中文字幕av无码一区二区三区电影 | 亚洲日本一区二区三区在线 | 性史性农村dvd毛片 | 黑人巨大精品欧美黑寡妇 | 亚洲毛片av日韩av无码 | 黑森林福利视频导航 | 久久精品一区二区三区四区 | 少妇人妻大乳在线视频 | 日本饥渴人妻欲求不满 | 成人亚洲精品久久久久软件 | 国产精品香蕉在线观看 | 精品久久久久香蕉网 | 丝袜 中出 制服 人妻 美腿 | 亚洲国产精品一区二区美利坚 | 欧美性猛交xxxx富婆 | 亚拍精品一区二区三区探花 | 久久综合久久自在自线精品自 | av小次郎收藏 | 5858s亚洲色大成网站www | 粉嫩少妇内射浓精videos | 麻豆国产人妻欲求不满 | 女人被男人躁得好爽免费视频 | 日本免费一区二区三区最新 | 99久久久无码国产精品免费 | 天堂а√在线中文在线 | 精品国产一区二区三区四区在线看 | 东北女人啪啪对白 | 国产情侣作爱视频免费观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产xxx69麻豆国语对白 | 日日天日日夜日日摸 | 国内精品九九久久久精品 | 亚洲精品国偷拍自产在线麻豆 | 麻豆md0077饥渴少妇 | 亚洲男女内射在线播放 | 无码帝国www无码专区色综合 | 狂野欧美性猛xxxx乱大交 | 国产黄在线观看免费观看不卡 | 欧美性生交xxxxx久久久 | 日本一卡二卡不卡视频查询 | 精品偷拍一区二区三区在线看 | 国产精品无码一区二区桃花视频 | 国产一区二区三区日韩精品 | 麻豆国产丝袜白领秘书在线观看 | 国产亲子乱弄免费视频 | 久久精品国产一区二区三区肥胖 | 久久亚洲国产成人精品性色 | 国产精品va在线播放 | 夜夜躁日日躁狠狠久久av | 免费男性肉肉影院 | 一本久道高清无码视频 | 无人区乱码一区二区三区 | 九九久久精品国产免费看小说 | 欧美日韩一区二区综合 | 欧美黑人性暴力猛交喷水 | 天下第一社区视频www日本 | 欧美一区二区三区视频在线观看 | 最新版天堂资源中文官网 | 国产精品丝袜黑色高跟鞋 | 精品夜夜澡人妻无码av蜜桃 | 熟女少妇人妻中文字幕 | 午夜性刺激在线视频免费 | 永久免费观看国产裸体美女 | 国产亲子乱弄免费视频 | 初尝人妻少妇中文字幕 | 欧美真人作爱免费视频 | 国产av久久久久精东av | 国产亚洲精品久久久久久久 | 国产麻豆精品精东影业av网站 | 九一九色国产 | 国产精品理论片在线观看 | 樱花草在线播放免费中文 | 亚洲精品久久久久中文第一幕 | 人人妻人人澡人人爽人人精品 | 狂野欧美性猛xxxx乱大交 | 99久久精品无码一区二区毛片 | 久久久久久久久888 | av无码不卡在线观看免费 | 无套内射视频囯产 | 人人妻人人澡人人爽人人精品 | 四虎永久在线精品免费网址 | 99视频精品全部免费免费观看 | 日韩精品无码一本二本三本色 | 蜜桃视频插满18在线观看 | 欧美日韩久久久精品a片 | 国产口爆吞精在线视频 | 国产艳妇av在线观看果冻传媒 | 东京无码熟妇人妻av在线网址 | 日本熟妇浓毛 | 日本爽爽爽爽爽爽在线观看免 | 奇米影视7777久久精品人人爽 | 樱花草在线播放免费中文 | 精品厕所偷拍各类美女tp嘘嘘 | 欧美激情一区二区三区成人 | 日产精品高潮呻吟av久久 | 人人爽人人爽人人片av亚洲 | 我要看www免费看插插视频 | 国产人妻人伦精品1国产丝袜 | 十八禁真人啪啪免费网站 | 大色综合色综合网站 | 天堂а√在线中文在线 | 亚洲日本一区二区三区在线 | 无码人妻出轨黑人中文字幕 | 少妇性l交大片欧洲热妇乱xxx | 国产午夜无码视频在线观看 | 成人三级无码视频在线观看 | 天堂无码人妻精品一区二区三区 | 纯爱无遮挡h肉动漫在线播放 | 亚洲精品www久久久 | 亚洲中文字幕久久无码 | 蜜桃av抽搐高潮一区二区 | 97人妻精品一区二区三区 | 中文字幕+乱码+中文字幕一区 | 又大又黄又粗又爽的免费视频 | 国产精品对白交换视频 | 2019nv天堂香蕉在线观看 | 人妻有码中文字幕在线 | 人人爽人人澡人人高潮 | 亚洲自偷精品视频自拍 | 国产熟妇高潮叫床视频播放 | 欧美老人巨大xxxx做受 | 精品夜夜澡人妻无码av蜜桃 | 波多野结衣一区二区三区av免费 | 久久天天躁夜夜躁狠狠 | 国内精品九九久久久精品 | 亚洲码国产精品高潮在线 | 又湿又紧又大又爽a视频国产 | 亚洲乱码中文字幕在线 | 纯爱无遮挡h肉动漫在线播放 | 久久久无码中文字幕久... | 国产欧美熟妇另类久久久 | 国产精品人妻一区二区三区四 | 中文字幕av无码一区二区三区电影 | 小泽玛莉亚一区二区视频在线 | 亚洲中文字幕在线观看 | 最近的中文字幕在线看视频 | 久久久精品国产sm最大网站 | 亚洲色偷偷男人的天堂 | 亚洲综合在线一区二区三区 | 久久国产精品萌白酱免费 | 丝袜足控一区二区三区 | av香港经典三级级 在线 | 两性色午夜免费视频 | 色欲综合久久中文字幕网 | 欧美精品一区二区精品久久 | 亚洲中文字幕久久无码 | 国产精品亚洲一区二区三区喷水 | 高清无码午夜福利视频 | 一本久道高清无码视频 | 成人毛片一区二区 | 成人免费视频一区二区 | 99久久久国产精品无码免费 | 131美女爱做视频 | 荫蒂添的好舒服视频囗交 | 99精品视频在线观看免费 | 在线播放免费人成毛片乱码 | 中文字幕中文有码在线 | 久久国产36精品色熟妇 | 亚洲国产成人av在线观看 | 精品人人妻人人澡人人爽人人 | 亚洲一区二区三区无码久久 | 成人免费视频一区二区 | 国产偷抇久久精品a片69 | 国产成人无码区免费内射一片色欲 | 日日碰狠狠躁久久躁蜜桃 | 色窝窝无码一区二区三区色欲 | 欧美乱妇无乱码大黄a片 | 欧美老妇交乱视频在线观看 | 亚洲第一网站男人都懂 | 少妇被粗大的猛进出69影院 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲成a人一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 成人无码精品1区2区3区免费看 | 性欧美大战久久久久久久 | 男女性色大片免费网站 | 日本大乳高潮视频在线观看 | 无码人妻av免费一区二区三区 | 久久久久av无码免费网 | 久久久久av无码免费网 | 国产成人无码a区在线观看视频app | 欧美人与物videos另类 | 国产综合在线观看 | 国产激情无码一区二区app | 久久综合狠狠综合久久综合88 | 欧美亚洲日韩国产人成在线播放 | 国产成人亚洲综合无码 | 亚洲色大成网站www国产 | 国产精品久久久久9999小说 | 亚洲成av人片天堂网无码】 | 中文字幕 亚洲精品 第1页 | 中文字幕av日韩精品一区二区 | av无码电影一区二区三区 | 国产人妻精品一区二区三区不卡 | 精品无码一区二区三区爱欲 | 久久国产精品二国产精品 | 婷婷六月久久综合丁香 | 无码国产乱人伦偷精品视频 | 中文精品无码中文字幕无码专区 | а天堂中文在线官网 | 宝宝好涨水快流出来免费视频 | 亚洲人成网站色7799 | 日韩av无码一区二区三区不卡 | 色狠狠av一区二区三区 | 99视频精品全部免费免费观看 | 乱码午夜-极国产极内射 | 丰满妇女强制高潮18xxxx | 国产av一区二区精品久久凹凸 | 国产亚洲人成在线播放 | 国产精品久久久久久无码 | 国产综合在线观看 | 国产suv精品一区二区五 | 无码国产乱人伦偷精品视频 | 日本乱偷人妻中文字幕 | 性欧美牲交xxxxx视频 | 国产免费无码一区二区视频 | 小泽玛莉亚一区二区视频在线 | 久久久久成人精品免费播放动漫 | 亚洲精品欧美二区三区中文字幕 | 亚洲人亚洲人成电影网站色 | 99久久久无码国产精品免费 | 国产亚洲精品久久久久久国模美 | 乱人伦人妻中文字幕无码 | 中文字幕 亚洲精品 第1页 | 久久99精品国产.久久久久 | 影音先锋中文字幕无码 | 国产美女极度色诱视频www | 东京热无码av男人的天堂 | 亚洲一区二区观看播放 | 丝袜美腿亚洲一区二区 | 2019午夜福利不卡片在线 | 狂野欧美激情性xxxx | 亚洲gv猛男gv无码男同 | 国产真实乱对白精彩久久 | 国产精品久免费的黄网站 | 国产精品高潮呻吟av久久4虎 | 日本大乳高潮视频在线观看 | 1000部啪啪未满十八勿入下载 | 中国大陆精品视频xxxx | 久久精品国产99久久6动漫 | 免费国产黄网站在线观看 | 日韩人妻系列无码专区 | 一个人看的www免费视频在线观看 | 久久午夜夜伦鲁鲁片无码免费 | 少妇性俱乐部纵欲狂欢电影 | 日韩视频 中文字幕 视频一区 | 国产精品内射视频免费 | yw尤物av无码国产在线观看 | 国産精品久久久久久久 | 成年女人永久免费看片 | 丝袜 中出 制服 人妻 美腿 | 性啪啪chinese东北女人 | 亚洲国产欧美日韩精品一区二区三区 | 国产亚洲tv在线观看 | 亚洲精品一区二区三区婷婷月 | 天天爽夜夜爽夜夜爽 | 97久久国产亚洲精品超碰热 | 荡女精品导航 | 亚洲一区二区观看播放 | 国产情侣作爱视频免费观看 | 欧美国产亚洲日韩在线二区 | 国产激情无码一区二区app | 日韩人妻无码一区二区三区久久99 | 两性色午夜视频免费播放 | 久久午夜夜伦鲁鲁片无码免费 | 97久久超碰中文字幕 | 欧美人与禽猛交狂配 | 久久国产精品_国产精品 | 亚洲中文字幕在线无码一区二区 | 亚洲精品综合一区二区三区在线 | 亚洲人成人无码网www国产 | 九九综合va免费看 | 国产色在线 | 国产 | аⅴ资源天堂资源库在线 | 在线观看国产午夜福利片 | av无码久久久久不卡免费网站 | 国产麻豆精品一区二区三区v视界 | 亚洲国产欧美在线成人 | 欧美日韩色另类综合 | 国产精品人妻一区二区三区四 | 99国产精品白浆在线观看免费 | 亚洲欧美中文字幕5发布 | 在线a亚洲视频播放在线观看 | 天堂无码人妻精品一区二区三区 | 狠狠cao日日穞夜夜穞av | ass日本丰满熟妇pics | 久久久精品456亚洲影院 | 久久久久久a亚洲欧洲av冫 | 乌克兰少妇性做爰 | 国产成人无码a区在线观看视频app | 国产精品-区区久久久狼 | 久久久久久国产精品无码下载 | 国産精品久久久久久久 | 黑森林福利视频导航 | 久久精品中文字幕一区 | 日韩精品无码一区二区中文字幕 | 99精品国产综合久久久久五月天 | 国产做国产爱免费视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 一本久久a久久精品vr综合 | 国产电影无码午夜在线播放 | 成在人线av无码免费 | 99精品无人区乱码1区2区3区 | 99视频精品全部免费免费观看 | 国产精品亚洲lv粉色 | 亚洲成在人网站无码天堂 | 亚洲最大成人网站 | 久热国产vs视频在线观看 | 免费无码av一区二区 | 国产极品美女高潮无套在线观看 | 国产婷婷色一区二区三区在线 | 国产又爽又猛又粗的视频a片 | 一二三四在线观看免费视频 | 亚洲人成网站在线播放942 | 亚洲欧美日韩国产精品一区二区 | 人妻互换免费中文字幕 | 无码国模国产在线观看 | 精品熟女少妇av免费观看 | 精品欧洲av无码一区二区三区 | 无码中文字幕色专区 | 国产精品自产拍在线观看 | 岛国片人妻三上悠亚 | 国产办公室秘书无码精品99 | 少女韩国电视剧在线观看完整 | 97人妻精品一区二区三区 | 无码人妻出轨黑人中文字幕 | 97精品人妻一区二区三区香蕉 | 性色欲情网站iwww九文堂 | 内射白嫩少妇超碰 | 超碰97人人做人人爱少妇 | 漂亮人妻洗澡被公强 日日躁 | 亚洲s色大片在线观看 | 亚洲色欲久久久综合网东京热 | 成人女人看片免费视频放人 | 久久精品中文闷骚内射 | 国产av无码专区亚洲awww | 亚洲国产精品久久久天堂 | 99久久无码一区人妻 | 精品无码一区二区三区爱欲 | 亚洲熟悉妇女xxx妇女av | 色综合久久中文娱乐网 | 国产麻豆精品精东影业av网站 | 亚洲男人av香蕉爽爽爽爽 | 国产精品资源一区二区 | 久久精品人人做人人综合 | 在教室伦流澡到高潮hnp视频 | 99久久婷婷国产综合精品青草免费 | 国产精品人人妻人人爽 | 精品无码国产自产拍在线观看蜜 | 正在播放东北夫妻内射 | 无码一区二区三区在线 | 奇米影视7777久久精品 | 无码精品人妻一区二区三区av | 成人精品视频一区二区 | 大胆欧美熟妇xx | 欧美老妇与禽交 | 久久精品一区二区三区四区 | 国产亚洲欧美在线专区 | 中文无码精品a∨在线观看不卡 | 欧美人与物videos另类 | 人妻少妇精品无码专区动漫 | 日本成熟视频免费视频 | 亚洲人成影院在线无码按摩店 | 成人欧美一区二区三区 | 亚洲 高清 成人 动漫 | 人妻无码αv中文字幕久久琪琪布 | a片免费视频在线观看 | 亚洲色偷偷偷综合网 | 亚洲人成人无码网www国产 | 俺去俺来也在线www色官网 | 九九热爱视频精品 | 精品国产精品久久一区免费式 | 久久亚洲国产成人精品性色 | 最近免费中文字幕中文高清百度 | 熟女俱乐部五十路六十路av | 4hu四虎永久在线观看 | 精品一区二区三区波多野结衣 | 国产极品视觉盛宴 | 免费看男女做好爽好硬视频 | 国产艳妇av在线观看果冻传媒 | 色 综合 欧美 亚洲 国产 | 强伦人妻一区二区三区视频18 | 永久免费精品精品永久-夜色 | 99久久人妻精品免费二区 | 男人扒开女人内裤强吻桶进去 | 中文字幕无码av激情不卡 | 精品亚洲成av人在线观看 | 精品人妻中文字幕有码在线 | 亚洲无人区一区二区三区 | 国产av剧情md精品麻豆 | 国产色在线 | 国产 | 久久综合九色综合97网 | 大地资源网第二页免费观看 | 一本精品99久久精品77 | 水蜜桃亚洲一二三四在线 | 少妇激情av一区二区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产做国产爱免费视频 | 一本精品99久久精品77 | 日韩无码专区 | 国产xxx69麻豆国语对白 | 西西人体www44rt大胆高清 | 国产精品人人爽人人做我的可爱 | 日本护士xxxxhd少妇 | 伦伦影院午夜理论片 | 香港三级日本三级妇三级 | aⅴ亚洲 日韩 色 图网站 播放 | 国产香蕉尹人视频在线 | 小sao货水好多真紧h无码视频 | 精品乱子伦一区二区三区 | 亚洲国产欧美日韩精品一区二区三区 | 日本高清一区免费中文视频 | 国产精品久久国产精品99 | 欧美怡红院免费全部视频 | 性欧美大战久久久久久久 | 扒开双腿疯狂进出爽爽爽视频 | 色婷婷香蕉在线一区二区 | 国产午夜亚洲精品不卡下载 | 亚洲va欧美va天堂v国产综合 | 强伦人妻一区二区三区视频18 | 色婷婷香蕉在线一区二区 | 亚洲午夜无码久久 | 中文字幕乱码人妻无码久久 | 一二三四在线观看免费视频 | 国产精品人人妻人人爽 | 国产av无码专区亚洲a∨毛片 | 天天爽夜夜爽夜夜爽 | 亚洲成a人片在线观看无码 | 亚洲中文字幕av在天堂 | 内射白嫩少妇超碰 | 麻豆国产人妻欲求不满谁演的 | 曰韩少妇内射免费播放 | 精品国精品国产自在久国产87 | 久久久久免费看成人影片 | 欧美一区二区三区视频在线观看 | 欧美大屁股xxxxhd黑色 | 67194成是人免费无码 | 99视频精品全部免费免费观看 | 亚洲国产精品美女久久久久 | 18精品久久久无码午夜福利 | 国产成人无码av一区二区 | 无码人妻久久一区二区三区不卡 | 亚洲欧美国产精品久久 | 波多野结衣乳巨码无在线观看 | 真人与拘做受免费视频一 | 国产亚洲精品久久久久久久 | 国产成人一区二区三区在线观看 | 亚洲中文字幕成人无码 | 亚洲中文字幕无码中文字在线 | 国产免费久久久久久无码 | 西西人体www44rt大胆高清 | 久久www免费人成人片 | 天堂无码人妻精品一区二区三区 | 偷窥村妇洗澡毛毛多 | 国产在线无码精品电影网 | 免费无码午夜福利片69 | 日日麻批免费40分钟无码 | 国产精品久久久久影院嫩草 | 成在人线av无码免费 | 亚无码乱人伦一区二区 | 亚洲中文字幕乱码av波多ji | 欧美黑人性暴力猛交喷水 | 又大又硬又爽免费视频 | 麻豆国产人妻欲求不满 | 亚洲熟妇色xxxxx欧美老妇 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲中文字幕乱码av波多ji | 国精产品一品二品国精品69xx | 人人爽人人澡人人高潮 | 亚洲精品美女久久久久久久 | 亚洲一区二区三区在线观看网站 | 国产激情一区二区三区 | 国产成人精品必看 | 一本一道久久综合久久 | 天海翼激烈高潮到腰振不止 | 国产成人无码一二三区视频 | 精品国产一区二区三区四区在线看 | 久久国产精品二国产精品 | 永久免费观看美女裸体的网站 | 亚洲精品久久久久久久久久久 | 最近中文2019字幕第二页 | 国产精品永久免费视频 | 性生交片免费无码看人 | 日韩人妻无码一区二区三区久久99 | 少妇性荡欲午夜性开放视频剧场 | 少妇愉情理伦片bd | 欧美精品一区二区精品久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 一本大道伊人av久久综合 | 四十如虎的丰满熟妇啪啪 | 天下第一社区视频www日本 | 蜜桃视频插满18在线观看 | 成在人线av无码免观看麻豆 | 午夜精品久久久内射近拍高清 | 国产亚洲精品久久久ai换 | 久久精品国产一区二区三区肥胖 | 少妇性荡欲午夜性开放视频剧场 | 久久国产自偷自偷免费一区调 | 少妇激情av一区二区 | 亚洲成av人综合在线观看 | 中文字幕av无码一区二区三区电影 | 成人欧美一区二区三区 | 精品少妇爆乳无码av无码专区 | 性生交大片免费看女人按摩摩 | 领导边摸边吃奶边做爽在线观看 | 午夜丰满少妇性开放视频 | 嫩b人妻精品一区二区三区 | 十八禁真人啪啪免费网站 | 国产在线精品一区二区三区直播 | 无码乱肉视频免费大全合集 | 性欧美熟妇videofreesex | 日日橹狠狠爱欧美视频 | 东京一本一道一二三区 | 一区二区三区乱码在线 | 欧洲 | 2019nv天堂香蕉在线观看 | 免费播放一区二区三区 | 亚洲精品国产a久久久久久 | 男人扒开女人内裤强吻桶进去 | 亚洲a无码综合a国产av中文 | 欧美人与禽zoz0性伦交 | 亚洲精品国偷拍自产在线观看蜜桃 | 三级4级全黄60分钟 | 99re在线播放 | 亚洲熟妇色xxxxx欧美老妇y | 日韩亚洲欧美精品综合 | 内射爽无广熟女亚洲 | 免费无码的av片在线观看 | 日本护士xxxxhd少妇 | 亚洲人亚洲人成电影网站色 | 麻豆国产丝袜白领秘书在线观看 | 免费无码午夜福利片69 | 精品久久久久久亚洲精品 | 少妇无码吹潮 | 午夜精品久久久内射近拍高清 | 国产电影无码午夜在线播放 | 久久视频在线观看精品 | 欧美黑人性暴力猛交喷水 | 人妻少妇被猛烈进入中文字幕 | 好屌草这里只有精品 | 国产成人无码一二三区视频 | 无遮无挡爽爽免费视频 | 永久免费观看国产裸体美女 | 久久久久成人片免费观看蜜芽 | 牲交欧美兽交欧美 | 欧美老人巨大xxxx做受 | 久久久久久亚洲精品a片成人 | 免费观看的无遮挡av | 啦啦啦www在线观看免费视频 | 日本大乳高潮视频在线观看 | 东京热无码av男人的天堂 | 国产 浪潮av性色四虎 | av无码久久久久不卡免费网站 | а√资源新版在线天堂 | 亚洲色欲久久久综合网东京热 | 国产精品香蕉在线观看 | 午夜肉伦伦影院 | 国产精品亚洲专区无码不卡 | 熟妇人妻无乱码中文字幕 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲精品国偷拍自产在线麻豆 | 丝袜美腿亚洲一区二区 | 久久国产劲爆∧v内射 | 国产激情艳情在线看视频 | 亚洲欧美国产精品久久 | 精品国偷自产在线视频 | 永久免费精品精品永久-夜色 | 久久久国产一区二区三区 | 无码精品国产va在线观看dvd | 欧美乱妇无乱码大黄a片 | 国产午夜视频在线观看 | 人妻中文无码久热丝袜 | 亚洲国产高清在线观看视频 | 国产精品无码一区二区桃花视频 | 丝袜足控一区二区三区 | 黑人巨大精品欧美一区二区 | 国产免费观看黄av片 | 国内揄拍国内精品人妻 | 亚洲国产精品一区二区第一页 | 成 人影片 免费观看 | 国色天香社区在线视频 | 日韩少妇白浆无码系列 | 国产成人精品一区二区在线小狼 | 国产一区二区三区四区五区加勒比 | 亚洲国产精品久久久久久 | 国产亚洲精品久久久久久 | 亚洲精品国产第一综合99久久 | 任你躁在线精品免费 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲娇小与黑人巨大交 | 亚洲综合伊人久久大杳蕉 | 国产99久久精品一区二区 | 国产婷婷色一区二区三区在线 | 日日摸天天摸爽爽狠狠97 | 国产精品对白交换视频 | 天天av天天av天天透 | 亚洲国产精品毛片av不卡在线 | 无人区乱码一区二区三区 | 狂野欧美性猛交免费视频 | 18精品久久久无码午夜福利 | 狠狠噜狠狠狠狠丁香五月 | 国产高清av在线播放 | 久热国产vs视频在线观看 | 日韩欧美中文字幕公布 | 激情综合激情五月俺也去 | 成人免费视频在线观看 | 免费观看激色视频网站 | 欧美阿v高清资源不卡在线播放 | 精品国产一区av天美传媒 | 国产精品99久久精品爆乳 | 亚洲の无码国产の无码步美 | 中文无码成人免费视频在线观看 | 国产精品嫩草久久久久 | 日韩欧美成人免费观看 | 免费无码肉片在线观看 | 东北女人啪啪对白 | 欧洲vodafone精品性 | 国产成人精品久久亚洲高清不卡 | 人妻aⅴ无码一区二区三区 | 日韩精品无码免费一区二区三区 | 亚洲日韩中文字幕在线播放 | 亚洲中文无码av永久不收费 | 国产精品亚洲一区二区三区喷水 | 最新国产乱人伦偷精品免费网站 | 国产香蕉尹人视频在线 | 99久久婷婷国产综合精品青草免费 | 国产成人综合色在线观看网站 | www一区二区www免费 | 亚洲精品久久久久久一区二区 | 欧洲极品少妇 | 久久久久99精品国产片 | 天堂亚洲2017在线观看 | 亚洲熟熟妇xxxx | 99精品国产综合久久久久五月天 | 人妻少妇被猛烈进入中文字幕 | 久久综合九色综合97网 | 久久久久人妻一区精品色欧美 | 九月婷婷人人澡人人添人人爽 | 国产农村乱对白刺激视频 | 国产午夜精品一区二区三区嫩草 | 日本www一道久久久免费榴莲 | 老太婆性杂交欧美肥老太 | 一二三四在线观看免费视频 | 中文字幕无线码免费人妻 | 爆乳一区二区三区无码 | 久久国产精品二国产精品 | 亚洲一区二区三区国产精华液 | 国产明星裸体无码xxxx视频 | 亚洲欧美精品aaaaaa片 | 人人爽人人爽人人片av亚洲 | 国产乱人伦av在线无码 | 中文字幕人成乱码熟女app | 精品亚洲成av人在线观看 | 国产av剧情md精品麻豆 | 亚洲精品一区二区三区在线 | 久久精品99久久香蕉国产色戒 | 精品人妻人人做人人爽夜夜爽 | 99久久精品午夜一区二区 | 亚洲天堂2017无码 | 亚洲一区二区三区四区 | 中文无码成人免费视频在线观看 | 性欧美疯狂xxxxbbbb | 成人亚洲精品久久久久软件 | 日本xxxx色视频在线观看免费 | 国语精品一区二区三区 | 亚洲精品久久久久中文第一幕 | 内射白嫩少妇超碰 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 无码精品国产va在线观看dvd | 欧美freesex黑人又粗又大 | 娇妻被黑人粗大高潮白浆 | 久久无码中文字幕免费影院蜜桃 | 人妻天天爽夜夜爽一区二区 | 色诱久久久久综合网ywww | 久久久久国色av免费观看性色 | 97se亚洲精品一区 | 亚洲无人区午夜福利码高清完整版 | 亚洲综合精品香蕉久久网 | 精品无码一区二区三区的天堂 | 欧美zoozzooz性欧美 | 国产成人av免费观看 | 亚洲欧美日韩综合久久久 | 成人精品视频一区二区三区尤物 | 综合人妻久久一区二区精品 | 亚洲国产精品毛片av不卡在线 | 国产精品久久久一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 国产内射爽爽大片视频社区在线 | 久久综合给合久久狠狠狠97色 | 蜜桃视频插满18在线观看 | 国产成人综合在线女婷五月99播放 | 国产精品无码mv在线观看 | 国产一区二区三区日韩精品 | 性色av无码免费一区二区三区 | 久久99精品久久久久久 | 精品国产精品久久一区免费式 | 日日干夜夜干 | 骚片av蜜桃精品一区 | 国内综合精品午夜久久资源 | 熟女少妇人妻中文字幕 | 人人妻在人人 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲国产精华液网站w | 国产真人无遮挡作爱免费视频 | 国产精品久久久午夜夜伦鲁鲁 | 日韩少妇白浆无码系列 | 亚洲欧洲无卡二区视頻 | 扒开双腿吃奶呻吟做受视频 | 少妇无码一区二区二三区 | 国色天香社区在线视频 | 免费乱码人妻系列无码专区 | 久久精品人人做人人综合 | 小鲜肉自慰网站xnxx | 久9re热视频这里只有精品 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 领导边摸边吃奶边做爽在线观看 | 无码人妻丰满熟妇区毛片18 | 青青青爽视频在线观看 | 欧美日韩一区二区三区自拍 | 在线成人www免费观看视频 | 国产色视频一区二区三区 | 性欧美videos高清精品 | 中文字幕日产无线码一区 | 少妇性l交大片 | 成人毛片一区二区 | 欧美国产日产一区二区 | 国产性生大片免费观看性 | 亚洲精品成a人在线观看 | 亚洲 日韩 欧美 成人 在线观看 | 97色伦图片97综合影院 | 欧洲vodafone精品性 | 国产农村乱对白刺激视频 | 国产亚洲日韩欧美另类第八页 | 99久久久无码国产aaa精品 | 乱人伦人妻中文字幕无码久久网 | 亚洲精品国产品国语在线观看 | 国产精品a成v人在线播放 | 国产成人精品优优av | 熟女少妇在线视频播放 | 久久精品99久久香蕉国产色戒 | 国产极品美女高潮无套在线观看 | 亚洲 高清 成人 动漫 | 日日麻批免费40分钟无码 | 久久亚洲a片com人成 | 99精品久久毛片a片 | 青青草原综合久久大伊人精品 | 夜夜躁日日躁狠狠久久av | 国产无遮挡又黄又爽又色 | 亚洲乱码中文字幕在线 | 四虎国产精品免费久久 | 国产精品va在线观看无码 | 亚洲第一无码av无码专区 | 捆绑白丝粉色jk震动捧喷白浆 | 国产人妖乱国产精品人妖 | 久9re热视频这里只有精品 | 亚洲阿v天堂在线 | 亚洲成av人在线观看网址 | 大地资源网第二页免费观看 | 亚洲欧美国产精品久久 | 一个人免费观看的www视频 | 国产亚洲欧美在线专区 | 国产99久久精品一区二区 | 亚洲 高清 成人 动漫 | 成年女人永久免费看片 | 一本无码人妻在中文字幕免费 | 在线欧美精品一区二区三区 | 国产精品第一国产精品 | 中文字幕av无码一区二区三区电影 | 97夜夜澡人人双人人人喊 | 欧美三级a做爰在线观看 | 国产午夜福利100集发布 | 少妇性l交大片欧洲热妇乱xxx | 少妇被黑人到高潮喷出白浆 | 精品无人区无码乱码毛片国产 | 欧美国产日产一区二区 | 精品无码国产自产拍在线观看蜜 | 亚洲欧洲日本综合aⅴ在线 | 国产精品无码永久免费888 | 女人被男人躁得好爽免费视频 | 国产精品免费大片 | 国内综合精品午夜久久资源 | 午夜精品一区二区三区的区别 | 综合网日日天干夜夜久久 | 377p欧洲日本亚洲大胆 | 久久精品无码一区二区三区 | 两性色午夜视频免费播放 | 成人免费视频在线观看 | 精品乱码久久久久久久 | 一二三四在线观看免费视频 | 久久久久免费精品国产 | 欧美刺激性大交 | 国产偷国产偷精品高清尤物 | 久久99国产综合精品 | 日韩精品乱码av一区二区 | 久久www免费人成人片 | 老头边吃奶边弄进去呻吟 | 日本成熟视频免费视频 | 小鲜肉自慰网站xnxx | av人摸人人人澡人人超碰下载 | 国产热a欧美热a在线视频 | 成人免费视频在线观看 | 熟女体下毛毛黑森林 | 精品日本一区二区三区在线观看 | 人妻少妇精品视频专区 | 亚洲男人av天堂午夜在 | 18无码粉嫩小泬无套在线观看 | 黑人巨大精品欧美一区二区 | 风流少妇按摩来高潮 | 成人性做爰aaa片免费看不忠 | 久久久久久久人妻无码中文字幕爆 | 国产午夜精品一区二区三区嫩草 | 动漫av一区二区在线观看 | 无遮挡国产高潮视频免费观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲精品国偷拍自产在线麻豆 | 无码国产乱人伦偷精品视频 | 亚洲精品国产精品乱码不卡 | 色爱情人网站 | 影音先锋中文字幕无码 | 亚洲欧美精品伊人久久 | 亚洲成av人片在线观看无码不卡 | 国产一区二区不卡老阿姨 | 天天躁夜夜躁狠狠是什么心态 | 99麻豆久久久国产精品免费 | 午夜精品一区二区三区在线观看 | 综合激情五月综合激情五月激情1 | 国产69精品久久久久app下载 | 97人妻精品一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 国产精品亚洲专区无码不卡 | 网友自拍区视频精品 | 欧美性生交xxxxx久久久 | 国精品人妻无码一区二区三区蜜柚 | 中国女人内谢69xxxx | 少妇厨房愉情理9仑片视频 | 色综合久久久无码网中文 | 国精产品一品二品国精品69xx | 性色欲情网站iwww九文堂 | 国产无av码在线观看 | 麻豆蜜桃av蜜臀av色欲av | 久久99热只有频精品8 | 欧美放荡的少妇 | 亚洲精品一区二区三区在线 | 人人妻人人澡人人爽人人精品 | 精品日本一区二区三区在线观看 | 久久久精品成人免费观看 | 国产激情综合五月久久 | 少妇人妻大乳在线视频 | 国内精品人妻无码久久久影院蜜桃 | 亚洲男人av天堂午夜在 | 黑人巨大精品欧美黑寡妇 | 中文字幕av无码一区二区三区电影 | 日日摸夜夜摸狠狠摸婷婷 | 中文字幕无码免费久久9一区9 | 日日摸日日碰夜夜爽av | 人妻与老人中文字幕 | 国产一区二区三区影院 | 色老头在线一区二区三区 | 国产精品久久国产三级国 | 亚洲国产精品无码一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 国产高潮视频在线观看 | 天堂亚洲2017在线观看 | 97无码免费人妻超级碰碰夜夜 | 中文毛片无遮挡高清免费 | 亚洲va中文字幕无码久久不卡 | 欧美成人免费全部网站 | 真人与拘做受免费视频 | 免费人成在线观看网站 | 亚洲国产欧美日韩精品一区二区三区 | 日日碰狠狠丁香久燥 | 国产一区二区不卡老阿姨 | 久久久婷婷五月亚洲97号色 | 女高中生第一次破苞av | а天堂中文在线官网 | 亚洲精品成人福利网站 | 久久久久久九九精品久 | 亚洲综合色区中文字幕 | 国产精品igao视频网 | 天天拍夜夜添久久精品 | 亚洲精品午夜国产va久久成人 | 日日碰狠狠丁香久燥 | aa片在线观看视频在线播放 | 欧美国产日韩亚洲中文 | 精品国产福利一区二区 | 国产热a欧美热a在线视频 | 天堂久久天堂av色综合 | 久久人人97超碰a片精品 | 亚洲一区二区三区无码久久 | 国产精品久久久久久无码 | 日日碰狠狠躁久久躁蜜桃 | 亚洲精品成人av在线 | 国产超级va在线观看视频 | 野狼第一精品社区 | 最新版天堂资源中文官网 | 18精品久久久无码午夜福利 | 久久99精品久久久久久 | 55夜色66夜色国产精品视频 | 免费人成在线视频无码 | 强伦人妻一区二区三区视频18 | 国产农村妇女高潮大叫 | 国产一区二区三区四区五区加勒比 | 一本久久伊人热热精品中文字幕 | 少女韩国电视剧在线观看完整 | 无码人妻出轨黑人中文字幕 | 日韩精品无码免费一区二区三区 | 熟妇人妻无码xxx视频 | 性生交大片免费看女人按摩摩 | 麻豆人妻少妇精品无码专区 | 亚洲国产精品一区二区美利坚 | 欧美国产日产一区二区 | 欧美国产亚洲日韩在线二区 | 国产精品成人av在线观看 | 欧美一区二区三区视频在线观看 | 国产激情无码一区二区app | 久久久精品国产sm最大网站 | 97久久国产亚洲精品超碰热 | 国产真人无遮挡作爱免费视频 | av人摸人人人澡人人超碰下载 | 国产人妻久久精品二区三区老狼 | 亚洲中文字幕乱码av波多ji | 天堂久久天堂av色综合 | 国产特级毛片aaaaaaa高清 | 中文字幕久久久久人妻 | 欧美老妇与禽交 | 老司机亚洲精品影院无码 | 国产人妖乱国产精品人妖 | 18禁止看的免费污网站 | 乱人伦人妻中文字幕无码久久网 | 久久精品人妻少妇一区二区三区 | 任你躁国产自任一区二区三区 | 成人综合网亚洲伊人 | 国产成人无码a区在线观看视频app | 日本熟妇人妻xxxxx人hd | 人人妻人人藻人人爽欧美一区 | 97精品人妻一区二区三区香蕉 | 在线a亚洲视频播放在线观看 | 成人aaa片一区国产精品 | 日本精品久久久久中文字幕 | 国产精品a成v人在线播放 | 亚洲国产精品成人久久蜜臀 | 精品国产麻豆免费人成网站 | 高潮毛片无遮挡高清免费 | 精品熟女少妇av免费观看 | 亚洲国产成人av在线观看 | 曰韩少妇内射免费播放 | 欧美日本日韩 | 亚洲色欲色欲天天天www | 国产超级va在线观看视频 | 夜精品a片一区二区三区无码白浆 | 熟妇人妻中文av无码 | 国产成人无码av在线影院 | 99精品视频在线观看免费 | 玩弄少妇高潮ⅹxxxyw | 少妇无码一区二区二三区 | 熟妇人妻中文av无码 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久zyz资源站无码中文动漫 | 免费看男女做好爽好硬视频 | 麻豆国产97在线 | 欧洲 | 成人无码影片精品久久久 | 荡女精品导航 | 欧美阿v高清资源不卡在线播放 | 国产乱码精品一品二品 | 亚洲国产欧美国产综合一区 | 网友自拍区视频精品 | 亚洲无人区一区二区三区 | 女人被男人爽到呻吟的视频 | 久久久久成人精品免费播放动漫 | 无码国产乱人伦偷精品视频 | 澳门永久av免费网站 | 国产成人久久精品流白浆 | 成人一在线视频日韩国产 | 亚洲欧美精品aaaaaa片 | av人摸人人人澡人人超碰下载 | 人妻无码αv中文字幕久久琪琪布 | 精品亚洲韩国一区二区三区 | 国产av无码专区亚洲awww | 小鲜肉自慰网站xnxx | 亚洲a无码综合a国产av中文 | 久久综合狠狠综合久久综合88 | 丁香啪啪综合成人亚洲 | 亚洲一区二区三区偷拍女厕 | 中文精品久久久久人妻不卡 | 亚洲 激情 小说 另类 欧美 | 成人欧美一区二区三区黑人免费 | 欧美性生交xxxxx久久久 | 最近的中文字幕在线看视频 | 欧美野外疯狂做受xxxx高潮 | 人妻少妇精品无码专区动漫 | 久久人人爽人人人人片 | 老熟妇仑乱视频一区二区 | 欧美怡红院免费全部视频 | 国产日产欧产精品精品app | 国产艳妇av在线观看果冻传媒 | 一本久久a久久精品亚洲 | 国产午夜手机精彩视频 | 久久久久免费看成人影片 | 亚洲区小说区激情区图片区 | 亚洲码国产精品高潮在线 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 无码av岛国片在线播放 | 天堂а√在线地址中文在线 | 欧美野外疯狂做受xxxx高潮 | 国产熟妇另类久久久久 | 丁香啪啪综合成人亚洲 | 国产乱码精品一品二品 | 国产麻豆精品一区二区三区v视界 | 国产精品人人爽人人做我的可爱 | 人妻体内射精一区二区三四 | 日韩少妇内射免费播放 | 女高中生第一次破苞av | 最近的中文字幕在线看视频 | 亚洲日韩一区二区三区 | 日韩少妇白浆无码系列 | 国产亚洲欧美在线专区 | 最近免费中文字幕中文高清百度 | 久久久久久a亚洲欧洲av冫 | 国产肉丝袜在线观看 | 亚洲综合精品香蕉久久网 | 无遮挡国产高潮视频免费观看 | 亚洲日韩中文字幕在线播放 | 欧洲vodafone精品性 | 小sao货水好多真紧h无码视频 | 内射后入在线观看一区 | 粗大的内捧猛烈进出视频 | 免费无码一区二区三区蜜桃大 | 欧美性生交xxxxx久久久 | 中文字幕日韩精品一区二区三区 | 亚洲精品无码人妻无码 | 久9re热视频这里只有精品 | 99re在线播放 | 又大又紧又粉嫩18p少妇 | 久久久中文久久久无码 | 少女韩国电视剧在线观看完整 | 给我免费的视频在线观看 | 天海翼激烈高潮到腰振不止 | 国产亚洲日韩欧美另类第八页 | 成人亚洲精品久久久久 | 夜精品a片一区二区三区无码白浆 | 少妇久久久久久人妻无码 | 亚洲国产精品毛片av不卡在线 | 婷婷五月综合激情中文字幕 | 国产午夜福利100集发布 | 中文字幕久久久久人妻 | 亚洲国产一区二区三区在线观看 | 国产精品第一国产精品 | 伊人久久婷婷五月综合97色 | 中文字幕人成乱码熟女app | 国产精品人人爽人人做我的可爱 | 性欧美videos高清精品 | 国产精品美女久久久网av | 日本精品人妻无码免费大全 | 日本xxxx色视频在线观看免费 | 久久国产精品二国产精品 | 一个人看的www免费视频在线观看 | 国产猛烈高潮尖叫视频免费 | 无码免费一区二区三区 | 欧美日韩亚洲国产精品 | 久久这里只有精品视频9 | 亚洲精品鲁一鲁一区二区三区 | 无码毛片视频一区二区本码 | 黑森林福利视频导航 | 亚洲精品中文字幕久久久久 | 领导边摸边吃奶边做爽在线观看 | 无码精品国产va在线观看dvd | 无码一区二区三区在线观看 | 最近的中文字幕在线看视频 | 国产无遮挡又黄又爽又色 | 一本久道久久综合狠狠爱 | 中文无码成人免费视频在线观看 | 三上悠亚人妻中文字幕在线 | 无人区乱码一区二区三区 | 国产福利视频一区二区 | 国产精品自产拍在线观看 | 色噜噜亚洲男人的天堂 | 色老头在线一区二区三区 | 免费人成在线观看网站 | 久久国产自偷自偷免费一区调 | 好屌草这里只有精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 无码一区二区三区在线观看 | 亚洲成av人综合在线观看 | 蜜桃视频插满18在线观看 | 免费看男女做好爽好硬视频 | 国内精品九九久久久精品 | 色情久久久av熟女人妻网站 | 秋霞特色aa大片 | 无套内谢的新婚少妇国语播放 | 乱人伦人妻中文字幕无码久久网 | 久久久久成人精品免费播放动漫 | 在线欧美精品一区二区三区 | 四虎国产精品一区二区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 一个人看的www免费视频在线观看 | 少妇高潮喷潮久久久影院 | 久久久久成人精品免费播放动漫 | 内射白嫩少妇超碰 | 色婷婷av一区二区三区之红樱桃 | 久久人人爽人人人人片 | 国产成人人人97超碰超爽8 | 日日躁夜夜躁狠狠躁 | 色婷婷久久一区二区三区麻豆 | 亚洲国产精品无码久久久久高潮 | 思思久久99热只有频精品66 | 无码av岛国片在线播放 | 国产精品欧美成人 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲熟悉妇女xxx妇女av | 大乳丰满人妻中文字幕日本 | 久久精品人妻少妇一区二区三区 | 蜜臀av无码人妻精品 | 亚洲国产一区二区三区在线观看 | 国产做国产爱免费视频 | 综合人妻久久一区二区精品 | 领导边摸边吃奶边做爽在线观看 | 亚洲热妇无码av在线播放 | 少妇无码一区二区二三区 | 性色欲情网站iwww九文堂 | 国产激情一区二区三区 | 乱码午夜-极国产极内射 | 欧洲vodafone精品性 | 亚洲码国产精品高潮在线 | 夜夜高潮次次欢爽av女 | 国产真实乱对白精彩久久 | 精品久久久久久人妻无码中文字幕 | 波多野结衣一区二区三区av免费 | 亚洲国产精品久久久天堂 | 久久www免费人成人片 | 丰满少妇高潮惨叫视频 | 清纯唯美经典一区二区 | 国产在线无码精品电影网 | 欧美兽交xxxx×视频 | 久久亚洲精品中文字幕无男同 | 狂野欧美激情性xxxx | 日本又色又爽又黄的a片18禁 | 蜜桃av抽搐高潮一区二区 | 97久久国产亚洲精品超碰热 | 中文字幕人成乱码熟女app | 国产熟妇高潮叫床视频播放 | 欧美三级a做爰在线观看 | 少妇高潮喷潮久久久影院 | 国产激情无码一区二区app | 男人和女人高潮免费网站 | 国产午夜无码视频在线观看 | 无码一区二区三区在线 | 最近的中文字幕在线看视频 | 玩弄人妻少妇500系列视频 | 性做久久久久久久免费看 | 麻豆人妻少妇精品无码专区 | 国产熟妇高潮叫床视频播放 | 国产艳妇av在线观看果冻传媒 | 精品无码国产一区二区三区av | 国产激情精品一区二区三区 | 男女猛烈xx00免费视频试看 | 国精产品一品二品国精品69xx | 老太婆性杂交欧美肥老太 | 国产成人精品视频ⅴa片软件竹菊 | 天堂亚洲免费视频 | 日日夜夜撸啊撸 | 在线精品亚洲一区二区 | 98国产精品综合一区二区三区 | 亚洲熟妇色xxxxx亚洲 | 婷婷色婷婷开心五月四房播播 | 强开小婷嫩苞又嫩又紧视频 | 又粗又大又硬又长又爽 | 精品熟女少妇av免费观看 | 男女超爽视频免费播放 | 国内揄拍国内精品少妇国语 | 欧美黑人性暴力猛交喷水 | 少妇人妻大乳在线视频 | 野外少妇愉情中文字幕 | 精品人人妻人人澡人人爽人人 | 水蜜桃色314在线观看 | 丰满人妻精品国产99aⅴ | 日韩精品一区二区av在线 | 欧美日韩一区二区免费视频 | 国产亚洲精品久久久闺蜜 | 亚洲人成人无码网www国产 | 台湾无码一区二区 | 国产明星裸体无码xxxx视频 | 免费无码午夜福利片69 | 国产麻豆精品一区二区三区v视界 | 99久久人妻精品免费一区 | 九九热爱视频精品 | 亚洲色欲色欲天天天www | 扒开双腿疯狂进出爽爽爽视频 | 国产熟妇另类久久久久 | 国产精品美女久久久久av爽李琼 | www国产精品内射老师 | 蜜桃视频韩日免费播放 | 性欧美牲交xxxxx视频 | 国产精品久久国产三级国 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久天天躁狠狠躁夜夜免费观看 | 国产亚洲tv在线观看 | 精品人妻人人做人人爽夜夜爽 | 欧美人与禽zoz0性伦交 | 伊人久久大香线焦av综合影院 | 人人妻人人澡人人爽欧美一区九九 | 精品无码av一区二区三区 | 亚洲精品综合一区二区三区在线 | 熟妇人妻激情偷爽文 | 久久精品国产精品国产精品污 | 99麻豆久久久国产精品免费 | 亚洲国产精品一区二区第一页 | 3d动漫精品啪啪一区二区中 | 色婷婷av一区二区三区之红樱桃 | 漂亮人妻洗澡被公强 日日躁 | 国产亚洲精品久久久久久大师 | 国产一区二区三区精品视频 | 少妇性l交大片欧洲热妇乱xxx | 日韩av无码一区二区三区不卡 | 午夜精品久久久内射近拍高清 | 荫蒂被男人添的好舒服爽免费视频 | 又黄又爽又色的视频 | 正在播放老肥熟妇露脸 | 久久久精品国产sm最大网站 | 亚洲人成人无码网www国产 | 漂亮人妻洗澡被公强 日日躁 |