小編給大家分享一下MySQL中系統(tǒng)信息函數(shù)有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站是一家專業(yè)提供射陽企業(yè)網站建設,專注與成都網站設計、網站制作、外貿營銷網站建設、H5技術、小程序制作等業(yè)務。10年已為射陽眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。系統(tǒng)信息函數(shù)
(1)獲取MySQL版本號、連接數(shù)和數(shù)據(jù)庫名的函數(shù)
(2)獲取用戶名的函數(shù)
(3)獲取字符串的字符集和排序方式的函數(shù)
(4)獲取最后一個自動生成的ID值的函數(shù)
(相關免費學習推薦: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服務器當前連接的次數(shù),每個連接都有各自的ID。
【例】查看當前用戶的連接數(shù),SQL語句如下:
mysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 18 |+-----------------+1 row in set (0.05 sec)
3.show processlist 和 show full processlist
processlist 命令的輸出結果顯示有哪些線程在運行,不僅可以查看當前所有的連接數(shù),還可以查看當前的連接狀態(tài),幫助識別出有問題的查詢語句等。
如果是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時,系統(tǒng)分配的"connection id" |
User | 顯示當前用戶,如果不是root,就顯示用戶權限范圍內的MySQL語句 |
Host | 顯示這個語句是從哪個IP的哪個端口上發(fā)出的,可以用來追蹤出現(xiàn)問題語句的用戶 |
db | 顯示這個進程目前連接的是哪個數(shù)據(jù)庫 |
Command | 顯示當前連接的執(zhí)行命令,一般取值為休眠(sleep)、查詢(Query)、連接(Connect) |
Time | 顯示這個狀態(tài)持續(xù)的時間,單位是秒 |
State | 顯示使用當前連接的SQL語句的狀態(tài),State只是語句執(zhí)行中的某一個狀態(tài) |
Info | 顯示這個SQL語句,是判斷問題語句的一個重要語句 |
4.database() 和 schema()
【例】查看當前使用的數(shù)據(jù)庫,SQL語句如下:
mysql> select database(),schema();+------------+----------+| database() | schema() |+------------+----------+| company | company |+------------+----------+1 row in set (0.00 sec)
user()、current_user()、system_user()和session_user()這幾個函數(shù)返回當前被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)
1.charset(str)
【例】使用charset()函數(shù)返回字符串使用的字符集,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()函數(shù)返回字符串排列方式,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)
【例】使用select last_insetr_id查看最后一個自動生成的列值,執(zhí)行過程如下:
①一次插入一條記錄
首先創(chuàng)建表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)
查看已經插入的數(shù)據(jù),發(fā)現(xiàn)最后一條插入的記錄的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()
只返回插入的第一行數(shù)據(jù)時產生的值,在這里為插入第3條記錄。之所以這樣是因為這使依靠其他服務器復制同樣的insert語句變得簡單。
提示:
last_insert_id
是與table無關的,先向表a插入數(shù)據(jù),再向表b插入數(shù)據(jù),last_insert_id
返回表b中的id值。
看完了這篇文章,相信你對“MySQL中系統(tǒng)信息函數(shù)有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網站標題:MySQL中系統(tǒng)信息函數(shù)有哪些-創(chuàng)新互聯(lián)
URL網址:http://www.rwnh.cn/article0/ccgooo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站設計、手機網站建設、品牌網站建設、網站收錄、品牌網站制作、虛擬主機
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)