您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關mysql中的系統信息函數,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
系統信息函數
MySQL中的系統信息有:數據庫的版本號、當前用戶名和連接數、系統字符集、最后一個自動生成的ID值等。
1.獲取MySQL版本號、連接數和數據庫名的函數。
a.version()返回指示MySQL服務器版本的字符串。這個字符串使用utf8字符集。
案例:查看當前MySQL版本號,SQL語句如下:
SELECT VERSION();
b.connection_id()返回MySQL服務器當前連接的次數,每個連接都有各自唯一的ID。
案例:查看當前用戶的連接數,SQL語句如下:
SELECT CONNECTION_ID();
c.processlist命令的輸出結果顯示了有哪些線程在運行,不僅可以查看當前所有的連接數,還可以查看當前的連接狀態,幫助識別出有問題的查詢語句等。如果是root賬號,能看到所有用戶的當前連接。如果是普通賬號,則只能看到自己占用的連接。show processlist;只列出前100條,如果想全部列出可使用show full processlist;命令。
案例:使用show processlist命令輸出當前用戶的連接信息,SQL語句如下:
SHOW PROCESSLIST;
d.datebase()和schema()函數返回使用utf8字符集的默認(當前)數據庫名。
案例:查看當前使用的數據庫,SQL語句如下:
SELECT DATABASE(), SCHEMA();
mysql系統信息函數有:
一、查看當前MySQL版本號
mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 5.7.22 | +-----------+ 1 row in set (0.00 sec)
二、查看當前用戶的連接數
mysql> SELECT CONNECTION_ID(); +-----------------+ | CONNECTION_ID() | +-----------------+ | 2 | +-----------------+ 1 row in set (0.00 sec)
三、使用SHOW PROCESSLIST
命令輸出當前用戶的連接信息
mysql> SHOW PROCESSLIST; +----+------+------+------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+------+------+---------+------+----------+------------------+ | 2 | root | | test | Query | 0 | starting | SHOW PROCESSLIST | +----+------+------+------+---------+------+----------+------------------+ 1 row in set (0.00 sec)
四、查看當前使用的數據庫
mysql> SELECT DATABASE(),SCHEMA(); +------------+----------+ | DATABASE() | SCHEMA() | +------------+----------+ | test | test | +------------+----------+ 1 row in set (0.00 sec)
五、獲取當前登錄用戶名稱
mysql> SELECT USER(), CURRENT_USER(), SYSTEM_USER(); +--------+-----------------------------------+---------------+ | USER() | CURRENT_USER() | SYSTEM_USER() | +--------+-----------------------------------+---------------+ | root@ | skip-grants user@skip-grants host | root@ | +--------+-----------------------------------+---------------+ 1 row in set (0.00 sec)
六、 使用CHARSET()
函數返回字符串使用的字符集
SELECT CHARSET('abc'), CHARSET(CONVERT('abc' USING latin1)), CHARSET(VERSION()); +----------------+--------------------------------------+--------------------+ | CHARSET('abc') | CHARSET(CONVERT('abc' USING latin1)) | CHARSET(VERSION()) | +----------------+--------------------------------------+--------------------+ | utf8 | latin1 | utf8 | +----------------+--------------------------------------+--------------------+ 1 row in set (0.00 sec)
七、使用COLLATION()
函數返回字符串排列方式
mysql> SELECT COLLATION('abc'),COLLATION(CONVERT('abc' USING utf8)); +------------------+--------------------------------------+ | COLLATION('abc') | COLLATION(CONVERT('abc' USING utf8)) | +------------------+--------------------------------------+ | utf8_general_ci | utf8_general_ci | +------------------+--------------------------------------+ 1 row in set (0.00 sec)
八、使用SELECT LAST_INSERT_ID
查看最后一個自動生成的列值
1、一次插入一條記錄
(1)、首先創建表worker,其Id字段帶有AUTO_INCREMENT
約束
CREATE TABLE worker (Id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, Name VARCHAR(30)); Query OK, 0 rows affected (0.23 sec)
(2)、分別單獨向表worker中插入2條記錄:
mysql> INSERT INTO worker VALUES(NULL, 'jimy'); Query OK, 1 row affected (0.03 sec) mysql> INSERT INTO worker VALUES(NULL, 'Tom'); Query OK, 1 row affected (0.02 sec) mysql> SELECT * FROM worker; +----+------+ | Id | Name | +----+------+ | 1 | jimy | | 2 | Tom | +----+------+ 2 rows in set (0.00 sec)
(3)、查看已經插入的數據可以發現,最后一條插入的記錄的Id字段值為2,使用LAST_INSERT_ID()
查看最后自動生成的Id值:
mysql> SELECT LAST_INSERT_ID(); +------------------+ | LAST_INSERT_ID() | +------------------+ | 2 | +------------------+ 1 row in set (0.01 sec)
2、一次同時插入多條記錄
(1)、接下來,向表中插入多條記錄
INSERT INTO worker VALUES (NULL, 'Kevin'),(NULL,'Michal'),(NULL,'Nick'); Query OK, 3 rows affected (0.03 sec) Records: 3 Duplicates: 0 Warnings: 0
(2)、查詢已經插入的的記錄,
mysql> SELECT * FROM worker; +----+--------+ | Id | Name | +----+--------+ | 1 | jimy | | 2 | Tom | | 3 | Kevin | | 4 | Michal | | 5 | Nick | +----+--------+ 5 rows in set (0.00 sec) mysql> SELECT LAST_INSERT_ID(); +------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+ 1 row in set (0.00 sec)
關于mysql中的系統信息函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。