真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL中其他函數(shù)的簡(jiǎn)介

這篇文章將為大家詳細(xì)講解有關(guān)MySQL中其他函數(shù)的簡(jiǎn)介,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)黃平免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

其他函數(shù)

(1)格式化函數(shù)format(x,n)
(2)不同進(jìn)制的數(shù)字進(jìn)行轉(zhuǎn)換的函數(shù)
(3)IP地址與數(shù)字相互轉(zhuǎn)換的函數(shù)
(4)加鎖函數(shù)與解鎖函數(shù)
(5)重復(fù)執(zhí)行指定操作的函數(shù)
(6)改變字符集的函數(shù)
(7)改變數(shù)據(jù)類(lèi)型的函數(shù)

(1)、格式化函數(shù)format(x,n)
  • format(x,n)將數(shù)字x格式化,并以四舍五入的方式保留小數(shù)點(diǎn)后n位,結(jié)果以字符串的形式返回。若n為0,則返回結(jié)果函數(shù)不含小數(shù)部分。

mysql> select format(12332.123456,4),format(12332.1,4),format(12332.2,0);+------------------------+-------------------+-------------------+| format(12332.123456,4) | format(12332.1,4) | format(12332.2,0) |+------------------------+-------------------+-------------------+| 12,332.1235            | 12,332.1000       | 12,332            |+------------------------+-------------------+-------------------+1 row in set (0.00 sec)

(2)、不同進(jìn)制的數(shù)字進(jìn)行轉(zhuǎn)換的函數(shù)
  • conv(n,from_base,to_base)函數(shù)進(jìn)行不同進(jìn)制數(shù)之間的轉(zhuǎn)換,若有一個(gè)參數(shù)為null,則返回值為null。

【例】使用conv函數(shù)在不同進(jìn)制數(shù)值之間轉(zhuǎn)換,SQL語(yǔ)句如下:

mysql> select conv('a',16,2),
    -> conv(15,10,2),
    -> conv(15,10,8),
    -> conv(15,10,16);+----------------+---------------+---------------+----------------+| conv('a',16,2) | conv(15,10,2) | conv(15,10,8) | conv(15,10,16) |+----------------+---------------+---------------+----------------+| 1010           | 1111          | 17            | F              |+----------------+---------------+---------------+----------------+1 row in set (0.01 sec)
進(jìn)制說(shuō)明
二進(jìn)制采用0和1兩個(gè)數(shù)字來(lái)表示的數(shù),以2為基數(shù),逢二進(jìn)一
八進(jìn)制采用0-7八個(gè)數(shù)字,逢八進(jìn)一,以數(shù)字0開(kāi)頭
十進(jìn)制采用0-9共十個(gè)數(shù)字表示,逢十進(jìn)一
十六進(jìn)制由0-9,A-F組成,與十進(jìn)制的對(duì)應(yīng)關(guān)系是:0-9對(duì)應(yīng)0-9,A-F對(duì)應(yīng)10-15,十六進(jìn)制數(shù)以0x開(kāi)頭

(3)、IP地址與數(shù)字相互轉(zhuǎn)換的函數(shù)

1.inet_aton()

  • inet_aton(expr)給出一個(gè)作為字符串的網(wǎng)絡(luò)地址的點(diǎn)地址表示,返回一個(gè)代表該地址數(shù)值的整數(shù),地址可以是4bit或8bit地址。

【例】使用inet_aton()函數(shù)將字符串網(wǎng)絡(luò)點(diǎn)地址轉(zhuǎn)換為數(shù)值網(wǎng)絡(luò)地址,SQL語(yǔ)句如下:

  • 產(chǎn)生的數(shù)字按照網(wǎng)絡(luò)字節(jié)順序計(jì)算,此例子計(jì)算方法為:209*256^3+207*256^2+224*256+40

mysql> select inet_aton('209.207.224.40');+-----------------------------+| inet_aton('209.207.224.40') |+-----------------------------+|                  3520061480 |+-----------------------------+1 row in set (0.00 sec)

2.inet_ntoa()

  • inet_ntoa(expr)給定一個(gè)數(shù)字網(wǎng)絡(luò)地址(4bit或8bit),返回作為字符串的該地址的點(diǎn)地址表示。

  • inet_ntoa函數(shù)與inet_aton互為反函數(shù)。

【例】使用iner_ntoa函數(shù)將數(shù)值網(wǎng)絡(luò)地址轉(zhuǎn)換為字符串網(wǎng)絡(luò)點(diǎn)地址,SQL語(yǔ)句如下:

mysql> select inet_ntoa(3520061480);+-----------------------+| inet_ntoa(3520061480) |+-----------------------+| 209.207.224.40        |+-----------------------+1 row in set (0.00 sec)

(4)、加鎖函數(shù)與解鎖函數(shù)

1.get_lock(str,timeout)設(shè)法使用字符串str給定的名字得到一個(gè)鎖,超時(shí)為timeout秒。若成功得到鎖,則返回1;若操作超時(shí)返回0;若發(fā)生錯(cuò)誤,返回null。
假如有一個(gè)用get_lock()得到的鎖,當(dāng)執(zhí)行release_lock()或鏈接斷開(kāi)(正?;蚍钦?時(shí),這個(gè)鎖就會(huì)解除。

2.release_lock(str)解開(kāi)被get_lock()獲取的,用字符串str所命名的鎖。若鎖被解開(kāi),則返回1;若該線(xiàn)程尚未創(chuàng)建鎖,則返回0(此時(shí)鎖沒(méi)有被解開(kāi));若命名的鎖不存在,則返回null。若該鎖從未被get_lock()的調(diào)用獲取,或鎖已經(jīng)被提前解開(kāi),則該鎖不存在。

3.is_free_lock(str)檢查名為str的鎖是否可以使用(沒(méi)有被封鎖)。若鎖可以使用,則返回1(沒(méi)有人在使用這個(gè)鎖);若這個(gè)鎖正在被使用,則返回0;出現(xiàn)錯(cuò)誤,則返回null(諸如不正確的參數(shù))。

4.is_used_lock(str)檢查名為str的鎖是否正在被使用(被封鎖)。若被封鎖,則返回使用該鎖的客戶(hù)端的連接標(biāo)識(shí)符(connectionID);否則,返回null。

【例】使用加鎖、解鎖函數(shù),SQL語(yǔ)句如下:

mysql> select get_lock('lock1',10) as getlock,
    -> is_used_lock('lock1') as isusedlock,
    -> is_free_lock('lock1') as isfreelock,
    -> release_lock('lock1') as releaselock;+---------+------------+------------+-------------+| getlock | isusedlock | isfreelock | releaselock |+---------+------------+------------+-------------+|       1 |         21 |          0 |           1 |+---------+------------+------------+-------------+1 row in set (0.05 sec)

(5)、重復(fù)執(zhí)行指定操作的函數(shù)

- benchmark(count,expr)函數(shù)重復(fù)執(zhí)行表達(dá)式(expr)count次。它可以用于計(jì)算MySQL處理表達(dá)式的速度。結(jié)果值通常為0,(0只是表示處理過(guò)程很快,并不是沒(méi)有花時(shí)間)。另一個(gè)作用是它可以在MySQL客戶(hù)端內(nèi)部報(bào)告語(yǔ)句執(zhí)行的時(shí)間。

【例】使用benchmark重復(fù)執(zhí)行指定函數(shù)

  • 可以看到下面語(yǔ)句執(zhí)行500000次的時(shí)間為0.38sec,明顯比執(zhí)行一次的時(shí)間提高了。

mysql> select md5('Hudie');+----------------------------------+| md5('Hudie')                     |+----------------------------------+| 3fe2017e5cb984400c5271ef77a840f6 |+----------------------------------+1 row in set (0.00 sec)mysql> select benchmark(500000,md5('Hudie'));+--------------------------------+| benchmark(500000,md5('Hudie')) |+--------------------------------+|                              0 |+--------------------------------+1 row in set (0.38 sec)

注意:
benchmark報(bào)告的時(shí)間是客戶(hù)端經(jīng)過(guò)的時(shí)間,而不是在服務(wù)器端的CPU時(shí)間,每次執(zhí)行后報(bào)告的時(shí)間并不一定是相同的。


(6)、改變字符集的函數(shù)
  • convert(…using…)帶有using的convert()函數(shù)被用來(lái)在不同的字符集之間轉(zhuǎn)化數(shù)據(jù)。

【例】使用convert()函數(shù)改變字符串的默認(rèn)字符集,SQL語(yǔ)句如下;

mysql> select charset(' string '),charset( convert(' string ' using latin1 ) );+---------------------+----------------------------------------------+| charset(' string ') | charset( convert(' string ' using latin1 ) ) |+---------------------+----------------------------------------------+| gbk                 | latin1                                       |+---------------------+----------------------------------------------+1 row in set (0.00 sec)

默認(rèn)為gbk字符集,通過(guò)convert將字符串"strng"的默認(rèn)字符集改為latin1。


(7)、改變數(shù)據(jù)類(lèi)型的函數(shù)

- case(x,as type)convert(x,type)函數(shù)將一個(gè)類(lèi)型的值轉(zhuǎn)換為另一個(gè)類(lèi)型的值,可以轉(zhuǎn)換的type值有binary、char(n)、date、time、datetime、decimal、signed、unsigned。

【例】使用case和convert函數(shù)進(jìn)行數(shù)據(jù)類(lèi)型的轉(zhuǎn)換,SQL語(yǔ)句如下:

mysql> select cast(100 as char(2)),convert(' 2019-08-20 00:32:01 ',time);+----------------------+---------------------------------------+| cast(100 as char(2)) | convert(' 2019-08-20 00:32:01 ',time) |+----------------------+---------------------------------------+| 10                   | 00:32:01                              |+----------------------+---------------------------------------+1 row in set, 1 warning (0.05 sec)

可以看到,case(100 as char(2))將整數(shù)數(shù)據(jù)類(lèi)型100轉(zhuǎn)換為帶有兩個(gè)顯示寬度的字符串類(lèi)型,結(jié)果為“10”;convert(‘2010-08-20 00:32:01’)將datetime類(lèi)型的值轉(zhuǎn)換為time類(lèi)型,結(jié)果為00:32:01。

關(guān)于“MySQL中其他函數(shù)的簡(jiǎn)介”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


分享題目:MySQL中其他函數(shù)的簡(jiǎn)介
標(biāo)題網(wǎng)址:http://weahome.cn/article/ihehgi.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部