MySQL-系统信息函数
获取 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)
上述详情信息如下:
Id :用户登录 MySQL 时,系统分配的连接 id
User :当前连接的用户
Host :显示这个语句是从哪个 IP 的哪个端口上发出的,可以用来追踪出现问题语句的用户
db :显示这个进程目前连接的是哪个数据库
Command :显示当前连接执行的命令,一般取值为休眠(Sleep)、查询(Query)、连接(Connect)
Time :显示这个状态持续的时间,单位是秒
State :显示使用当前连接的 SQL 语句的状态
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)
相关文章
- MySQL数据库拖库技术深入探讨(mysql拖库)
- MySQL: 将日期格式转换为字符串(mysql日期转字符串)
- MySQL出现崩溃:怎么办?(mysql死机)
- MySQL中使用SUM函数对字段求和(mysql对字段求和)
- 字段MySQL语句中的AUTO_INCREMENT函数(mysql函数自增)
- 化MySQL日期格式转换函数实战(mysql日期函数格式)
- MySQL中的条件判断函数:介绍与应用(mysql条件判断函数)
- 数据迁移实现Redis到MySql的数据迁移(redis到mysql)
- 「MySQL判断字符串长度」,学会字符长度函数LENGTH、CHAR_LENGTH以及使用注意事项。(mysql判断长度)
- 使用Yii开发连接MySQL系统(yii连接mysql)
- 函数MySQL中析Month函数的精彩用法(mysql的month)
- MySQL自学入门:学习创建数据库(mysql自学教程)
- MySQL汉字拼音排序实战指南(mysql汉字拼音排序)
- MySQL函数与过程:深入探索(mysql函数和过程)
- Mastering the Art of User Management in MySQL: A Comprehensive Guide(mysql的用户管理)
- MySQL中的排序使用方法(mysql中sort)
- MySQL大批量数据保存技术实战(c mysql批量保存)
- 如何在 MySQL 中设置两个表的编码(mysql两表设置编码)
- MySQL教程使用TRIM函数去掉字符串中的空格(mysql中去掉空格函数)
- MySQL中如何实现列自增长(mysql中列自增长)
- MySQL三大引擎区别解析(mysql三大引擎区别)
- MySQL三重备份,保障你的数据安全(mysql三备份)
- mysql比拼Redis和MySQL谁才是数据存储首选(redis能不能访问)