久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL中其他函數的簡介

151次閱讀
沒有評論

共計 4899 個字符,預計需要花費 13 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章將為大家詳細講解有關 MySQL 中其他函數的簡介,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

其他函數

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

(1)、格式化函數 format(x,n)

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

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)、不同進制的數字進行轉換的函數

conv(n,from_base,to_base)函數進行不同進制數之間的轉換, 若有一個參數為 null, 則返回值為 null。

【例】使用 conv 函數在不同進制數值之間轉換,SQL 語句如下:

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)

進制說明二進制采用 0 和 1 兩個數字來表示的數,以 2 為基數,逢二進一八進制采用 0 - 7 八個數字,逢八進一,以數字 0 開頭十進制采用 0 - 9 共十個數字表示,逢十進一十六進制由 0 -9,A- F 組成,與十進制的對應關系是:0- 9 對應 0 -9,A- F 對應 10-15,十六進制數以 0x 開頭(3)、IP 地址與數字相互轉換的函數

1.inet_aton()

inet_aton(expr)給出一個作為字符串的網絡地址的點地址表示,返回一個代表該地址數值的整數,地址可以是 4bit 或 8bit 地址。

【例】使用 inet_aton()函數將字符串網絡點地址轉換為數值網絡地址,SQL 語句如下:

產生的數字按照網絡字節順序計算,此例子計算方法為: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)給定一個數字網絡地址(4bit 或 8bit),返回作為字符串的該地址的點地址表示。

inet_ntoa 函數與 inet_aton 互為反函數。

【例】使用 iner_ntoa 函數將數值網絡地址轉換為字符串網絡點地址,SQL 語句如下:

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

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

1.get_lock(str,timeout)設法使用字符串 str 給定的名字得到一個鎖,超時為 timeout 秒。若成功得到鎖,則返回 1;若操作超時返回 0;若發生錯誤,返回 null。
假如有一個用 get_lock()得到的鎖,當執行 release_lock()或鏈接斷開 (正常或非正常) 時,這個鎖就會解除。

2.release_lock(str)解開被 get_lock()獲取的,用字符串 str 所命名的鎖。若鎖被解開,則返回 1;若該線程尚未創建鎖,則返回 0(此時鎖沒有被解開); 若命名的鎖不存在,則返回 null。若該鎖從未被 get_lock()的調用獲取,或鎖已經被提前解開,則該鎖不存在。

3.is_free_lock(str)檢查名為 str 的鎖是否可以使用(沒有被封鎖)。若鎖可以使用,則返回 1(沒有人在使用這個鎖); 若這個鎖正在被使用,則返回 0;出現錯誤,則返回 null(諸如不正確的參數)。

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

【例】使用加鎖、解鎖函數,SQL 語句如下:

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)、重復執行指定操作的函數

– benchmark(count,expr)函數重復執行表達式(expr)count 次。它可以用于計算 MySQL 處理表達式的速度。結果值通常為 0,(0 只是表示處理過程很快,并不是沒有花時間)。另一個作用是它可以在 MySQL 客戶端內部報告語句執行的時間。

【例】使用 benchmark 重復執行指定函數

可以看到下面語句執行 500000 次的時間為 0.38sec,明顯比執行一次的時間提高了。

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 報告的時間是客戶端經過的時間,而不是在服務器端的 CPU 時間,每次執行后報告的時間并不一定是相同的。

(6)、改變字符集的函數

convert(…using…)帶有 using 的 convert()函數被用來在不同的字符集之間轉化數據。

【例】使用 convert()函數改變字符串的默認字符集,SQL 語句如下;

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)

默認為 gbk 字符集,通過 convert 將字符串 strng 的默認字符集改為 latin1。

(7)、改變數據類型的函數

– case(x,as type)和 convert(x,type)函數將一個類型的值轉換為另一個類型的值, 可以轉換的 type 值有 binary、char(n)、date、time、datetime、decimal、signed、unsigned。

【例】使用 case 和 convert 函數進行數據類型的轉換,SQL 語句如下:

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))將整數數據類型 100 轉換為帶有兩個顯示寬度的字符串類型,結果為“10”;convert(‘2010-08-20 00:32:01’)將 datetime 類型的值轉換為 time 類型,結果為 00:32:01。

關于“MySQL 中其他函數的簡介”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計4899字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 弥勒县| 商河县| 瓦房店市| 蒲城县| 民县| 延安市| 盐池县| 阿巴嘎旗| 化德县| 肃南| 六枝特区| 光山县| 桐庐县| 华亭县| 安乡县| 延吉市| 隆化县| 新邵县| 青龙| 通化市| 青川县| 玉屏| 襄樊市| 威宁| 泰和县| 孝昌县| 万州区| 嘉黎县| 会宁县| 海兴县| 灵石县| 侯马市| 专栏| 通辽市| 香港 | 桃园县| 黄梅县| 绥化市| 维西| 固始县| 扎鲁特旗|