美文网首页linux运维
mysql函数汇总之系统信息函数

mysql函数汇总之系统信息函数

作者: 运维家 | 来源:发表于2022-07-27 09:05 被阅读0次

mysql的系统信息有数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。

获取mysql版本号、连接数和数据库名的函数

varsion()返回指示mysql服务器版本的字符串。

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.29 |
+-----------+
1 row in set (0.00 sec)

mysql>

获取mysql连接数

connection_id()返回mysql服务器当前连接的次数,每个连接都有各自唯一的id

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

mysql>

PS:返回值根据登录的次数会有所不同。

获取mysql运行线程

show processlist:显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,可以借此排查出有问题的sql语句等。

注意:

1、如果是root账户,能看到所有用户的当前连接。其他用户只能看到自己的。

2、show processlist只能列出100条,如果想看全部的话可以使用show full processlist命令。

mysql> show processlist;
+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 946721 | Waiting on empty queue | NULL |
| 24 | root | localhost:58414 | test_db | Query | 0 | init | show processlist |
+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+
2 rows in set (0.01 sec)

mysql>

使用show processlist命令查出的结果各个字段的含义:

  • ID:用户登录mysql时,系统分配的是coeenction id
  • User:显示 当前用户;
  • Host:显示这个语句使用哪个IP的哪个端口上发出的,可以用来追踪出现问题语句的用户;
  • db:显示这个进程目前连接的是哪个数据库;
  • Command:显示当前连接执行的命令,一般取值为休眠(sleep)、查询(query)、连接(connect);
  • Time:显示这个状态持续的时间,单位是秒;
  • State:显示使用当前连接的sql语句的状态。state只是语句执行中的某一个状态。一个sql语句,以查询为例,可能需要经过copying to tmp table、sorting result、sending date等状态才可以完成;
  • Info:显示这个sql语句,是判断问题语句的一个重要依据。

查看使用utf8字符集的默认数据库名

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

mysql>

获取用户名的函数

下面几个函数可以返回当前被mysql服务器验证的用户名和主机组合:

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

mysql>

返回的结果值显示了当前账户连接服务器时的用户名及连接的客户主机,规则为:当前登录的用户名@当前登录的主机。

获取字符串的字符集和排序方式的函数

charset(str)返回字符串str自变量的字符集;

mysql> select charset('yunweijia') as roll, charset(convert('abc' using latin1)) as roll_1, charset(version()) as roll_2;
+---------+--------+---------+
| roll | roll_1 | roll_2 |
+---------+--------+---------+
| utf8mb3 | latin1 | utf8mb3 |
+---------+--------+---------+
1 row in set (0.00 sec)

mysql>

collation(str)返回字符串str的字符排列方式;

mysql> select collation('yunweijia') as coll, collation(convert('yunweijia' using latin1)) as coll_1;
+-----------------+-------------------+
| coll | coll_1 |
+-----------------+-------------------+
| utf8_general_ci | latin1_swedish_ci |
+-----------------+-------------------+
1 row in set (0.00 sec)

mysql>

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

last_insert_id()函数返回最后生成的自动递增的值;

(1)首先我们需要创建一个表;

mysql> create table test_1 (id int auto_increment not null primary key, name varchar(100));
Query OK, 0 rows affected (0.05 sec)

mysql>

(2)向我们刚创建的表中插入几条数据;

mysql> insert into test_1 values(null, 'zhangsan'), (null, 'lisi'), (null, 'wangwu');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql>

(3)查看下表中数据;

mysql> select * from test_1;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
| 2 | lisi |
| 3 | wangwu |
+----+----------+
3 rows in set (0.00 sec)

mysql>

(4)使用last_insert_id()查看最后自动生成的id值;

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

mysql>

为什么会是1,而不是3呢?

继续往下看;

(5)再次插入数据;

mysql> insert into test_1 values (null, 'yunwei');
Query OK, 1 row affected (0.01 sec)

mysql> insert into test_1 values (null, 'yunweijia');
Query OK, 1 row affected (0.01 sec)

mysql> insert into test_1 values (null, '0909');
Query OK, 1 row affected (0.01 sec)

mysql>

(6)查看数据表内容

mysql> select * from test_1;
+----+-----------+
| id | name |
+----+-----------+
| 1 | zhangsan |
| 2 | lisi |
| 3 | wangwu |
| 4 | yunwei |
| 5 | yunweijia |
| 6 | 0909 |
+----+-----------+
6 rows in set (0.00 sec)

mysql>

(7)查看auto_increment()的值

mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 6 |
+------------------+
1 row in set (0.00 sec)

mysql>

这是为什么呢?

这是因为第一次插入的三条数据,使用的是一条sql,使用last_insert_id()的使用,只返回这条sql获取的第一个auto_increment的值,即虽然插入了3条数据,但是他获取的仅仅是第一条数据插入时候的auto_increment的值,也就是1;

为什么返回6,是因为后来插入的三条数据是分别插入的,所以说每次获取的都是属于他自己的auto_increment,故而是返回了6。

小提示:

last_insert_id是和数据表无关的,如果向表test_1插入数据后再向表test_2插入数据,那么last_insert_id返回表test_2中的auto_increment的值。

至此,本文结束。

更多内容请转至VX公众号 “运维家” ,获取最新文章。

------ “运维家”  ------

------ “运维家”  ------

------ “运维家”  ------

linux中断异常,linuxuml建模,linux编译多个源文件,linux怎么更新时间,linux中的分页视频教程,

linux怎么解压gzip,linux解压某个目录,怎么关闭linux网关,linux文件架构图,linux提高权限执行,

linux文件用什么标志,网络安全linux加固,linux中查看邮件,linux修改背景颜色,linux环境下搭建网站。

相关文章

  • mysql函数汇总之系统信息函数

    mysql的系统信息有数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。 获取mysql...

  • MySQL函数总结

    MySQL数据库提供了很多函数包括: 数学函数; 字符串函数; 日期和时间函数; 条件判断函数; 系统信息函数; ...

  • mysql 系统信息函数

    1、获取mysql版本号select version(); 2、获取mysql连接数select connecti...

  • mysql函数汇总之数学函数

    什么是mysql函数? 函数表示对输入参数值返回一个具有特定关系的值,mysql提供了大量丰富的函数,在进行数据库...

  • MySQL之:函数

    函数:系统函数和自定义函数 系统函数: https://dev.mysql.com/doc/refman/5.7/...

  • MySQL常用函数

    MySQL常用函数分为四种:1、字符串函数:用于处理字符串2、数值函数:用于处理数字3、日期和时间函数4、系统信息...

  • mysql函数汇总之条件判断函数

    条件判断函数也被称为控制流程函数,根据满足的不同条件,执行响应的流程。mysql中进行条件判断的函数有if、ifu...

  • mysql函数汇总之字符串函数

    字符串函数主要用来处理数据库中的字符串数据。mysql中的字符串函数有计算字符串长度函数、字符串合并函数、字符串替...

  • MYSQL基础函数

    一、数学函数 二、字符串函数 三、日期时间函数 四、系统信息函数 五、加密函数

  • MySQL系统函数

    VERSION() 获取当前MySQL版本号 CONNECTION_ID() 返回服务器的连接总次数,也就是到现在...

网友评论

    本文标题:mysql函数汇总之系统信息函数

    本文链接:https://www.haomeiwen.com/subject/mdaairtx.html