#条件判断函数
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数据库函数(四)条件判断和系统信息函数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.