zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL-系统信息函数

mysql系统 函数 信息
2023-09-14 09:15:48 时间

获取 MySQL 版本号的函数


VERSION()

例:返回当前mysql版本信息

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.40    |
+-----------+
1 row in set (0.01 sec)

查看当前用户的连接数的ID函数


CONNECTION_ID()

例1:查看当前用户连接的id信息

mysql> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               9 |
+-----------------+
1 row in set (0.00 sec)

例2:查看当前数据库中的连接信息,可以看到两个id,用户分别是root和lisi

mysql> show processlist;
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host      | db   | Command | Time | State    | Info             |
+----+------+-----------+------+---------+------+----------+------------------+
|  9 | root | localhost | NULL | Query   |    0 | starting | show processlist |
| 11 | lisi | localhost | NULL | Sleep   |   53 |          | NULL             |
+----+------+-----------+------+---------+------+----------+------------------+
2 rows in set (0.00 sec)

上述详情信息如下:

  1. Id :用户登录 MySQL 时,系统分配的连接 id

  1. User :当前连接的用户

  1. Host :显示这个语句是从哪个 IP 的哪个端口上发出的,可以用来追踪出现问题语句的用户

  1. db :显示这个进程目前连接的是哪个数据库

  1. Command :显示当前连接执行的命令,一般取值为休眠(Sleep)、查询(Query)、连接(Connect)

  1. Time :显示这个状态持续的时间,单位是秒

  1. State :显示使用当前连接的 SQL 语句的状态

  1. Info :显示这个 SQL 语句

查看当前使用的数据库的函数


DATABASE() 、SCHEMA()

例1:查看当前在那个库中

mysql> select database();
+------------+
| database() |
+------------+
| bbs        |
+------------+
1 row in set (0.00 sec)

例2:查看当前在那个库中

mysql> select schema();
+----------+
| schema() |
+----------+
| bbs      |
+----------+
1 row in set (0.00 sec)

查看当前登录的用户名的函数


USER() 、CURRENT_USER() 、SYSTEM_USER()

例1:查看当前登录的用户名及主机名

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

例2:查看当前登录的用户名及主机名

mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

例3:查看当前登录的用户名及主机名

mysql> select system_user();
+----------------+
| system_user()  |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

查看指定字符串的字符集的函数


CHARSET(str)

例:查看指定字符串的字符集

mysql> select charset('zhangsan');
+---------------------+
| charset('zhangsan') |
+---------------------+
| utf8                |
+---------------------+
1 row in set (0.00 sec)

查看指定字符串的排列方式的函数


COLLATION(str)

例:查看指定字符串的字符校验

mysql> select collation('zhangsan');
+-----------------------+
| collation('zhangsan') |
+-----------------------+
| utf8_general_ci       |
+-----------------------+
1 row in set (0.00 sec)

获取最后一个自动生成的 ID 值的函数


LAST_INSERT_ID()

例:用于获取最后一个自动生成的ID 值

mysql> CREATE TABLE worker 
 -> (
 -> id INT AUTO_INCREMENT PRIMARY KEY, # 先创建一个表,其id字段带有AUTO_INCREMENT约束
 -> name VARCHAR(30)
 -> );
mysql> INSERT INTO worker VALUES (NULL,'jimy'); # 插入一条数据,这时id没有指定,则自动生成,id为1
mysql> INSERT INTO worker VALUES (NULL,'Tom'); # 插入一条数据,这时id没有指定,则自动生成,id为2
mysql> SELECT * FROM worker; # 查看表的信息 
+----+------+
| id | name |
+----+------+
| 1 | jimy |
| 2 | Tom |
+----+------+
mysql> SELECT LAST_INSERT_ID(); # 查看最后一个自动生成的id值
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 2 |
+------------------+
mysql> INSERT INTO worker VALUES (NULL,'Kenvin'), (NULL,'Michal'), (NULL,'Nick');
mysql> SELECT * FROM worker; # 如果我们一次性插入多条数据,虽然id到了5
+----+--------+
| id | name | # 但我们用LAST_INSERT_ID()查看时却为3
+----+--------+
| 1 | jimy | # 这是因为LAST_INSERT_ID()只返回插入的第一行数据时产生值
| 2 | Tom | 
| 3 | Kenvin |
| 4 | Michal |
| 5 | Nick |
+----+--------+
mysql> SELECT LAST_INSERT_ID(); 
+------------------+
| LAST_INSERT_ID() | 
+------------------+
| 3 |
+------------------+

加/解密函数


加密函数

PASSWORD(str) 、MD5(str) 、ENCODE(str, pswd_str)

例1:PASSWORD(str) 从明文密码 str 计算并返回加密后的密码字符串,当参数为 NULL 时,返回结果为NULL

mysql> select password('new_pwd');
+-------------------------------------------+
| password('new_pwd')                       |
+-------------------------------------------+
| *EA90591BF1B9950303B6C7218C4187BDFAD33EAB |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)

例2:MD5(str) 为字符串 str 算出一个 MD5 128比特校验和

mysql> select md5('new_pwd');
+----------------------------------+
| md5('new_pwd')                   |
+----------------------------------+
| 964f5bae5feae5821c257753935f4721 |
+----------------------------------+
1 row in set (0.00 sec)

例3:ENCODE(str, pswd_str) 使用 pswd_str 作为密码,加密 str

mysql> select encode('pass','new_pass');
+---------------------------+
| encode('pass','new_pass') |
+---------------------------+
| yv                       |
+---------------------------+
1 row in set, 1 warning (0.00 sec)

解密函数

DECODE(crypt_str, pswd_str)

例:DECODE(crypt_str, pswd_str) 使用 pswd_str 作为密码,解密加密字符串 crypt_str。在这里看上去明文显示这么做的意义不大,后面会讲到具体含义。

mysql> select decode(encode('zhangsan','new_pwd'),'new_pwd');
+------------------------------------------------+
| decode(encode('zhangsan','new_pwd'),'new_pwd') |
+------------------------------------------------+
| zhangsan                                       |
+------------------------------------------------+
1 row in set, 2 warnings (0.00 sec)