最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 数据库 > MySQL数据库 >
关于MySQL系统信息函数你了解多少?
PHP中文网发表于 2021-03-16 16:46 次浏览

系统信息函数

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

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

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

1.version()

  • version()返回指示MySQL服务器版本的字符串,这个字符串使用utf8字符集。

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

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

2.connection_id()

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

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

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

3.show processlist 和 show full processlist

  • processlist 命令的输出结果显示有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出有问题的查询语句等。
  • 如果是root账号,就能看到所有用户的当前连接,如果是其他普通账号,则只能看到自己占用的连接。show processlist只列出 前100条,如果想全部列出可使用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)、获取用户名的函数
  • user()、current_user()、system_user()和session_user()这几个函数返回当前被MySQL服务器验证的用户名和主机名组合。这个值符合确定当前登录用户存取权限的MySQL账户。

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

  • 返回结果值显示了当前账户连接服务器时的用户名及所连接的客户主机,root为当前登录的用户名,localhost为登录的主机名。
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语句变得简单。

提示:

  • last_insert_id是与table无关的,先向表a插入数据,再向表b插入数据,last_insert_id返回表b中的id值。

相关免费学习推荐:mysql数据库(视频)

以上就是MySQL介绍系统信息函数的详细内容,更多请关注 群英网络其它相关文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐
2021-08-25 17:36:23 关键词:mysql表连接
摘要:mysql中怎样进行表连接?我们在进行多表查询的时候,常常会需要进行表连接,这篇文章就主要给大家介绍,内连接和外连接这两种方式,感兴趣的朋友跟随小编一起来学习一下吧。..
2021-08-25 17:36:12 关键词:mysql约束
摘要:MySQL约束有哪些?MySQL约束有主键约束、外键约束、唯一约束、检查约束、非空约束和默认值约束这六种。对新手来说,可能不是很理解这些MySQL约束,下面小编就大家通俗的介绍一下这..
2021-08-25 17:36:03 关键词:mysql创建用户
摘要:mysql怎样快速创建新用户?我们想要创建新用户,可以使用CREATE USER语句、INSERT 语句和GRANT语句,但是这三种方式创建的用户在权限上有一定的差别,下面我们就来具体了解一下。..
2021-08-25 17:35:59 关键词:mysql索引
摘要:这篇文章主要给大家分享的是mysql中索引的内容,详细介绍了mysql索引以及常见的mysql索引操作,对新手学习mysql索引有一定的借鉴价值,有这方面学习需要的朋友可以参考,下面我们就来..
2021-08-25 17:35:53 关键词:mysql 如何设置主键
摘要:mysql如何设置主键?在设计mysql数据库时,设置主键是很重要的一个步骤,一般我们在创建表的时候就设置主键,当然,如果忘记了,还能在修改表的时候创建主键,下面我们就来具体了..