#條件判斷函數
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列設置的第一個發生的值
Mysql數據庫函數(四)條件判斷和系統信息函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.