Mysql數據庫函數(四)條件判斷和系統信息函數

#條件判斷函數
 1.IF
 (1)格式:IF(expr,v1,v2)
	作用:expr==TRUE,返回v1,否則返回v2,如果V1或V2只有一個明確是NULL,則IF()函數的結果類型爲非NULL表達式的結果類型
	eg.
		mysql> select if(1>2,2,3), if(1<2,'yes','no'), if(strcmp('test','test1'),'no','yes'); 
		+-------------+--------------------+---------------------------------------+
		| if(1>2,2,3) | if(1<2,'yes','no') | if(strcmp('test','test1'),'no','yes') |
		+-------------+--------------------+---------------------------------------+
		|           3 | yes                | no                                    |
		+-------------+--------------------+---------------------------------------+
 (2)格式:IFNULL(v1,v2)
	作用:假如v1不爲NULL,則返回值爲v1,否則其返回值爲v2
	eg.
		mysql> select ifnull(1,2), ifnull(null,10), ifnull(1/0,'error');
		+-------------+-----------------+---------------------+
		| ifnull(1,2) | ifnull(null,10) | ifnull(1/0,'error') |
		+-------------+-----------------+---------------------+
		|           1 |              10 | error               |
		+-------------+-----------------+---------------------+
 2.case函數
 (3)格式:CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END
	作用:如果expr等於某個WHEN之後vn,則返回對應THEN後面的結果,如果所有值不相等,返回else後面的rn
	eg.
		mysql> select CASE 2 WHEN 1 THEN 'ONE' when 2 then 'two' else 'more' end;        
		+------------------------------------------------------------+
		| CASE 2 WHEN 1 THEN 'ONE' when 2 then 'two' else 'more' end |
		+------------------------------------------------------------+
		| two                                                        |
		+------------------------------------------------------------+
#系統信息函數
 1.獲取系統信息
 (1)格式:VERSION()
	作用:獲取版本號
	eg.
		mysql> select version();
		+-------------------------+
		| version()               |
		+-------------------------+
		| 5.7.21-0ubuntu0.16.04.1 |
		+-------------------------+
 (2)格式:connection_id()
	作用:返回服務器當前連接次數,每次連接有各自唯一的ID
	eg.
		mysql> select connection_id();
		+-----------------+
		| connection_id() |
		+-----------------+
		|               3 |
		+-----------------+
 (3)格式:show processlist(只列出前100條),show full processlist(列出全部)
	作用:顯示哪些線程在運行,可查看當前連接數和連接狀態,root用戶可以查看當前所有用戶連接,普通賬戶只看自己的連接
	id:用戶登錄mysql時,系統分配的connection id
	User:顯示當前用戶
	Host:顯示語句從哪個IP上發出
	db:顯示這個進程目前連接的是哪個數據
	command:顯示當前執行的命令,一般取值爲休眠(sleep),查詢(query),連接(connect)
	time:顯示狀態持續時間,單位s
	state:顯示當前語句的狀態
	info:顯示當前的mysql語句
	eg.(我的是root用戶)
		mysql> show processlist;
		+----+------+-----------+------+---------+------+----------+------------------+
		| Id | User | Host      | db   | Command | Time | State    | Info             |
		+----+------+-----------+------+---------+------+----------+------------------+
		|  3 | root | localhost | NULL | Query   |    0 | starting | show processlist |
		+----+------+-----------+------+---------+------+----------+------------------+
		mysql> show full processlist;
		+----+------+-----------+------+---------+------+----------+-----------------------+
		| Id | User | Host      | db   | Command | Time | State    | Info                  |
		+----+------+-----------+------+---------+------+----------+-----------------------+
		|  3 | root | localhost | NULL | Query   |    0 | starting | show full processlist |
		+----+------+-----------+------+---------+------+----------+-----------------------+
 (4)格式:DATABASE()和SCHEMA()
	作用:返回當前使用的數據庫名
	eg.
		mysql> select database(),schema();
		+------------+----------+
		| database() | schema() |
		+------------+----------+
		| test       | test     |
		+------------+----------+
 2.獲取用戶名
 (1)格式:USER()、CURRENT_USER()、SYSTEM_USER()和SESSION_USER()
	作用:返回當前被mysql服務器驗證的用戶名和主機名,root爲當前登錄的用戶名,localhost爲登錄的主機名
	eg.
		mysql> select user(),current_user(),system_user(),session_user();
		+----------------+----------------+----------------+----------------+
		| user()         | current_user() | system_user()  | session_user() |
		+----------------+----------------+----------------+----------------+
		| root@localhost | root@localhost | root@localhost | root@localhost |
		+----------------+----------------+----------------+----------------+
 3.獲取字符串的字符集和排序方式
 	格式:charset(str)
 	作用:返回字符串str自變量的字符集
 	格式:collation(str)
 	作用:返回字符串str的字符排列方式
 4.獲取最後一個自動生成的ID值
 	格式:LAST_INSERT_ID()
 	作用:自動返回最後一個insert或update爲auto_increment列設置的第一個發生的值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章