获取 MySQL 版本号的函数
VERSION()
例:返回当前mysql版本信息
1. mysql> select version(); 2. +-----------+ 3. | version() | 4. +-----------+ 5. | 5.7.40 | 6. +-----------+ 7. 1 row in set (0.01 sec)
查看当前用户的连接数的ID函数
CONNECTION_ID()
例1:查看当前用户连接的id信息
1. mysql> select connection_id(); 2. +-----------------+ 3. | connection_id() | 4. +-----------------+ 5. | 9 | 6. +-----------------+ 7. 1 row in set (0.00 sec)
例2:查看当前数据库中的连接信息,可以看到两个id,用户分别是root和lisi
1. mysql> show processlist; 2. +----+------+-----------+------+---------+------+----------+------------------+ 3. | Id | User | Host | db | Command | Time | State | Info | 4. +----+------+-----------+------+---------+------+----------+------------------+ 5. | 9 | root | localhost | NULL | Query | 0 | starting | show processlist | 6. | 11 | lisi | localhost | NULL | Sleep | 53 | | NULL | 7. +----+------+-----------+------+---------+------+----------+------------------+ 8. 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:查看当前在那个库中
1. mysql> select database(); 2. +------------+ 3. | database() | 4. +------------+ 5. | bbs | 6. +------------+ 7. 1 row in set (0.00 sec)
例2:查看当前在那个库中
1. mysql> select schema(); 2. +----------+ 3. | schema() | 4. +----------+ 5. | bbs | 6. +----------+ 7. 1 row in set (0.00 sec)
查看当前登录的用户名的函数
USER() 、CURRENT_USER() 、SYSTEM_USER()
例1:查看当前登录的用户名及主机名
1. mysql> select user(); 2. +----------------+ 3. | user() | 4. +----------------+ 5. | root@localhost | 6. +----------------+ 7. 1 row in set (0.00 sec)
例2:查看当前登录的用户名及主机名
1. mysql> select current_user(); 2. +----------------+ 3. | current_user() | 4. +----------------+ 5. | root@localhost | 6. +----------------+ 7. 1 row in set (0.00 sec)
例3:查看当前登录的用户名及主机名
1. mysql> select system_user(); 2. +----------------+ 3. | system_user() | 4. +----------------+ 5. | root@localhost | 6. +----------------+ 7. 1 row in set (0.00 sec)
查看指定字符串的字符集的函数
CHARSET(str)
例:查看指定字符串的字符集
1. mysql> select charset('zhangsan'); 2. +---------------------+ 3. | charset('zhangsan') | 4. +---------------------+ 5. | utf8 | 6. +---------------------+ 7. 1 row in set (0.00 sec)
查看指定字符串的排列方式的函数
COLLATION(str)
例:查看指定字符串的字符校验
1. mysql> select collation('zhangsan'); 2. +-----------------------+ 3. | collation('zhangsan') | 4. +-----------------------+ 5. | utf8_general_ci | 6. +-----------------------+ 7. 1 row in set (0.00 sec)
获取最后一个自动生成的 ID 值的函数
LAST_INSERT_ID()
例:用于获取最后一个自动生成的ID 值
1. mysql> CREATE TABLE worker 2. -> ( 3. -> id INT AUTO_INCREMENT PRIMARY KEY, # 先创建一个表,其id字段带有AUTO_INCREMENT约束 4. -> name VARCHAR(30) 5. -> ); 6. mysql> INSERT INTO worker VALUES (NULL,'jimy'); # 插入一条数据,这时id没有指定,则自动生成,id为1 7. mysql> INSERT INTO worker VALUES (NULL,'Tom'); # 插入一条数据,这时id没有指定,则自动生成,id为2 8. mysql> SELECT * FROM worker; # 查看表的信息 9. +----+------+ 10. | id | name | 11. +----+------+ 12. | 1 | jimy | 13. | 2 | Tom | 14. +----+------+ 15. mysql> SELECT LAST_INSERT_ID(); # 查看最后一个自动生成的id值 16. +------------------+ 17. | LAST_INSERT_ID() | 18. +------------------+ 19. | 2 | 20. +------------------+ 21. mysql> INSERT INTO worker VALUES (NULL,'Kenvin'), (NULL,'Michal'), (NULL,'Nick'); 22. mysql> SELECT * FROM worker; # 如果我们一次性插入多条数据,虽然id到了5 23. +----+--------+ 24. | id | name | # 但我们用LAST_INSERT_ID()查看时却为3 25. +----+--------+ 26. | 1 | jimy | # 这是因为LAST_INSERT_ID()只返回插入的第一行数据时产生值 27. | 2 | Tom | 28. | 3 | Kenvin | 29. | 4 | Michal | 30. | 5 | Nick | 31. +----+--------+ 32. mysql> SELECT LAST_INSERT_ID(); 33. +------------------+ 34. | LAST_INSERT_ID() | 35. +------------------+ 36. | 3 | 37. +------------------+
加/解密函数
加密函数
PASSWORD(str) 、MD5(str) 、ENCODE(str, pswd_str)
例1:PASSWORD(str) 从明文密码 str 计算并返回加密后的密码字符串,当参数为 NULL 时,返回结果为NULL
1. mysql> select password('new_pwd'); 2. +-------------------------------------------+ 3. | password('new_pwd') | 4. +-------------------------------------------+ 5. | *EA90591BF1B9950303B6C7218C4187BDFAD33EAB | 6. +-------------------------------------------+ 7. 1 row in set, 1 warning (0.00 sec)
例2:MD5(str) 为字符串 str 算出一个 MD5 128比特校验和
1. mysql> select md5('new_pwd'); 2. +----------------------------------+ 3. | md5('new_pwd') | 4. +----------------------------------+ 5. | 964f5bae5feae5821c257753935f4721 | 6. +----------------------------------+ 7. 1 row in set (0.00 sec)
例3:ENCODE(str, pswd_str) 使用 pswd_str 作为密码,加密 str
1. mysql> select encode('pass','new_pass'); 2. +---------------------------+ 3. | encode('pass','new_pass') | 4. +---------------------------+ 5. | yv | 6. +---------------------------+ 7. 1 row in set, 1 warning (0.00 sec)
解密函数
DECODE(crypt_str, pswd_str)
例:DECODE(crypt_str, pswd_str) 使用 pswd_str 作为密码,解密加密字符串 crypt_str。在这里看上去明文显示这么做的意义不大,后面会讲到具体含义。
1. mysql> select decode(encode('zhangsan','new_pwd'),'new_pwd'); 2. +------------------------------------------------+ 3. | decode(encode('zhangsan','new_pwd'),'new_pwd') | 4. +------------------------------------------------+ 5. | zhangsan | 6. +------------------------------------------------+ 7. 1 row in set, 2 warnings (0.00 sec)