MySQL中字符串函數(shù)詳細(xì)介紹(1)
來源:易賢網(wǎng) 閱讀:1178 次 日期:2015-09-04 20:31:42
溫馨提示:易賢網(wǎng)小編為您整理了“MySQL中字符串函數(shù)詳細(xì)介紹(1)”,方便廣大網(wǎng)友查閱!

符串或串(String)是由零個或多個字符組成的有限序列。一般記為 s='a1a2•••an'(n>=0)。它是編程語言中表示文本的數(shù)據(jù)類型。

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字符串相等的充要條件是:長度相等,并且各個對應(yīng)位置上的字符都相等。設(shè)p、q是兩個串,求q在p中首次出現(xiàn)的位置的運(yùn)算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

下面我們來看看MySQL中的字符串函數(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));

+----------------+----------------+

| HEX(CHAR(1,0)) | HEX(CHAR(256)) |

+----------------+----------------+

| 0100 | 0100 |

+----------------+----------------+

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

+------------------+--------------------+

| HEX(CHAR(1,0,0)) | HEX(CHAR(256*256)) |

+------------------+--------------------+

| 010000 | 010000 |

+------------------+--------------------+

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

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

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

+---------------------+--------------------------------+

| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |

+---------------------+--------------------------------+

| binary | 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 列代替)。

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:MySQL中字符串函數(shù)詳細(xì)介紹(1)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)