MySQL-函数(2)

举报
大虾好吃吗 发表于 2023/07/20 14:48:58 2023/07/20
【摘要】 五、系统信息函数 获取 MySQL 版本号的函数VERSION()VERSION() 用于获取 MySQL 版本号mysql> SELECT VERSION();+------------+| VERSION() |+------------+| 5.7.18-log |+------------+ 查看当前用户的连接数的ID函数CONNECTION_ID()CONNECTION_ID()...

五、系统信息函数

获取 MySQL 版本号的函数

VERSION()

VERSION() 用于获取 MySQL 版本号

mysql> SELECT VERSION();
+------------+
| VERSION() |
+------------+
| 5.7.18-log |
+------------+

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

CONNECTION_ID()

CONNECTION_ID() 用于查看当前用户的连接数

mysql> SELECT CONNECTION_ID();
+-----------------+
| CONNECTION_ID() |
+-----------------+
|               6 |
+-----------------+
1 row in set (0.00 sec)

mysql> SHOW PROCESSLIST;			#查看用户连接信息
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host      | db   | Command | Time | State    | Info             |
+----+------+-----------+------+---------+------+----------+------------------+
|  6 | root | localhost | NULL | Query   |    0 | starting | SHOW PROCESSLIST |
|  7 | root | localhost | bbs  | Sleep   |    3 |          | NULL             |
+----+------+-----------+------+---------+------+----------+------------------+
2 rows in set (0.00 sec)
  1. Id :用户登录 MySQL 时,系统分配的连接 id

  2. User :当前连接的用户

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

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

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

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

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

  8. Info :显示这个 SQL 语句

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

DATABASE() 、SCHEMA()

DATABASE() 用于查看当前使用的数据库

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test_db |
+------------+

SCHEMA() 用于查看当前使用的数据库

mysql> SELECT SCHEMA();
+----------+
| SCHEMA() |
+----------+
| test_db |
+----------+

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

USER() 、CURRENT_USER() 、SYSTEM_USER()

USER() 返回当前登录的用户及主机名

mysql> SELECT USER();
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+

CURRENT_USER() 于返回当前登录的用户及主机名

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| root@localhost |
+----------------+

SYSTEM_USER() 用于返回当前登录的用户及主机名

mysql> SELECT SYSTEM_USER();
+----------------+
| SYSTEM_USER() |
+----------------+
| root@localhost |
+----------------+

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

CHARSET(str)

CHARSET(str) 用于查看字符串 str 的字符集

mysql> SELECT CHARSET('abc');
+----------------+
| CHARSET('abc') |
+----------------+
| utf8 |
+----------------+

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

COLLATION(str)

COLLATION(str) 用于查看字符串 str 的字符排列方式

mysql> SELECT COLLATION('abc');
+------------------+
| COLLATION('abc') |
+------------------+
| utf8_general_ci |
+------------------+

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

LAST_INSERT_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)

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

mysql> SELECT PASSWORD('newpwd');
+-------------------------------------------+
| PASSWORD('newpwd') |
+-------------------------------------------+
| *1FA85AA204CC12B39B20E8F1E839D11B3F9E6AA4 |
+-------------------------------------------+

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

mysql> SELECT MD5('newpwd');
+----------------------------------+
| MD5('newpwd') |
+----------------------------------+
| a5e3094ce553e08de5ba237525b106d5 |
+----------------------------------+

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

mysql> SELECT ENCODE('secret', 'newpwd');
+----------------------------+
| ENCODE('secret', 'newpwd') |
+----------------------------+
| ü EE |
+----------------------------+

解密函数

DECODE(crypt_str, pswd_str) DECODE(crypt_str, pswd_str) 使用 pswd_str 作为密码,解密加密字符串 crypt_str

mysql> SELECT DECODE(ENCODE('secret','cry'), 'cry');
+---------------------------------------+
| DECODE(ENCODE('secret','cry'), 'cry') |
+---------------------------------------+
| secret |
+---------------------------------------+
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。