MySQL中系统信息函数有哪些

发布时间:2021-03-04 09:39:38 作者:小新
来源:亿速云 阅读:290

小编给大家分享一下MySQL中系统信息函数有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

系统信息函数

(1)获取MySQL版本号、连接数和数据库名的函数
(2)获取用户名的函数
(3)获取字符串的字符集和排序方式的函数
(4)获取最后一个自动生成的ID值的函数

(相关免费学习推荐:mysql视频教程)

(1)、获取MySQL版本号、连接数和数据库名的函数

1.version()

【例】查看当前MySQL版本号,SQL语句如下:

mysql> select version();+-----------+| version() |+-----------+| 8.0.16    |+-----------+1 row in set (0.05 sec)

2.connection_id()

【例】查看当前用户的连接数,SQL语句如下:

mysql> select connection_id();+-----------------+| connection_id() |+-----------------+|              18 |+-----------------+1 row in set (0.05 sec)

3.show processlist 和 show full processlist

【例】使用showprocesslist命令输出当前用户的连接信息,SQL语句如下:

mysql> show processlist;+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+| Id | User            | Host            | db      | Command | Time   | State                  | Info             |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+|  4 | event_scheduler | localhost       | NULL    | Daemon  | 381487 | Waiting on empty queue | NULL             || 18 | root            | localhost:60272 | company | Query   |      0 | starting               | show processlist |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+2 rows in set (0.05 sec)

各个列的含义:

含义
id列用户登录MySQL时,系统分配的"connection id"
User显示当前用户,如果不是root,就显示用户权限范围内的MySQL语句
Host显示这个语句是从哪个IP的哪个端口上发出的,可以用来追踪出现问题语句的用户
db显示这个进程目前连接的是哪个数据库
Command显示当前连接的执行命令,一般取值为休眠(sleep)、查询(Query)、连接(Connect)
Time显示这个状态持续的时间,单位是秒
State显示使用当前连接的SQL语句的状态,State只是语句执行中的某一个状态
Info显示这个SQL语句,是判断问题语句的一个重要语句

4.database() 和 schema()
【例】查看当前使用的数据库,SQL语句如下:

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

(2)、获取用户名的函数

【例】获取当前登录用户名称,SQL语句如下:

mysql> select user(),current_user,system_user();+----------------+----------------+----------------+| user()         | current_user   | system_user()  |+----------------+----------------+----------------+| root@localhost | root@localhost | root@localhost |+----------------+----------------+----------------+1 row in set (0.05 sec)

(3)、获取字符串的字符集和排序方式的函数

1.charset(str)

【例】使用charset()函数返回字符串使用的字符集,SQL语句如下:

mysql> select charset('abc'),
    -> charset(convert('abc' USING latin1 ) ),
    -> charset(version());+----------------+----------------------------------------+--------------------+| charset('abc') | charset(convert('abc' USING latin1 ) ) | charset(version()) |+----------------+----------------------------------------+--------------------+| gbk            | latin1                                 | utf8               |+----------------+----------------------------------------+--------------------+1 row in set (0.00 sec)

2.collation(str)

【例】使用collation()函数返回字符串排列方式,SQL语句如下:

mysql> select collation('abc'),collation(convert('abc' USING utf8 ));+------------------+---------------------------------------+| collation('abc') | collation(convert('abc' USING utf8 )) |+------------------+---------------------------------------+| gbk_chinese_ci   | utf8_general_ci                       |+------------------+---------------------------------------+1 row in set, 1 warning (0.05 sec)

(4)、获取最后一个自动生成的ID值的函数

【例】使用select last_insetr_id查看最后一个自动生成的列值,执行过程如下:

①一次插入一条记录
首先创建表worker,其id字段带有auto_increment约束,SQL语句如下:

mysql> create table worker    -> (
    -> id int auto_increment not null primary key,
    -> Name varchar(30)
    -> );Query OK, 0 rows affected (0.21 sec)

分别单独向表worker中插入两条记录:

mysql> insert into worker values(null,'jimy');Query OK, 1 row affected (0.07 sec)mysql> insert into worker values(null,'Tom');Query OK, 1 row affected (0.05 sec)mysql> select * from worker;+----+------+| id | Name |+----+------+|  1 | jimy ||  2 | Tom  |+----+------+2 rows in set (0.00 sec)

查看已经插入的数据,发现最后一条插入的记录的id字段值为2,使用last_insert_id()查看最后自动生成的id值:

mysql> select last_insert_id();+------------------+| last_insert_id() |+------------------+|                2 |+------------------+1 row in set (0.05 sec)

可以看到,一次插入一条记录时,返回值为最后一条插入记录的id值。

②一次同时插入多条记录
向表中插入多条记录:

mysql> insert into worker values
    -> (null,'Kevin'),
    -> (null,'Michal'),
    -> (null,'NICK');Query OK, 3 rows affected (0.05 sec)Records: 3  Duplicates: 0  Warnings: 0mysql> SELECT * FROM WORKER;+----+--------+| id | Name   |+----+--------+|  1 | jimy   ||  2 | Tom    ||  3 | Kevin  ||  4 | Michal ||  5 | NICK   |+----+--------+5 rows in set (0.00 sec)

使用last_insert_id查看最后自动生成的id值:

mysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+|                3 |+------------------+1 row in set (0.00 sec)

使用一条insert语句插入多个行时,last_insert_id()只返回插入的第一行数据时产生的值,在这里为插入第3条记录。之所以这样是因为这使依靠其他服务器复制同样的insert语句变得简单。

提示:

看完了这篇文章,相信你对“MySQL中系统信息函数有哪些”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. PHP获取系统信息的函数方法
  2. mysql中内置的函数有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql 函数

上一篇:php如果出现了ueditor上传错误问题该怎么解决

下一篇:apache如何隐藏php后缀

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》