1. 程式人生 > >MySQL常用SQL語句之SHOW語句詳解

MySQL常用SQL語句之SHOW語句詳解

disable ret gpl cati host write flush none mat

SQL語句之SHOW語句

SHOW DATABASES – 顯示當前所有數據庫的名稱

mysql> SHOW DATABASES;

SHOW TABLES – 顯示當前數據庫中所有表的名稱(需要設置默認數據庫use DATABASE_NAME)

Mysql> SHOW TABLES;

SHOW TABLES FROM db_name – 顯示數據庫中的所有表

Mysql> SHOW TABLES FROM db_name;

SHOW ENGINES - 顯示MySQL當前支持哪些存儲引擎和默認存儲引擎

mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in
memory, useful for temporary tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9
rows in set (0.00 sec)

SHOW CHARACTER SET – 顯示MySQL當前支持哪些字符集

mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2
| | dec8 | DEC West European | dec8_swedish_ci | 1 | -------------------------------------------------------------------------
mysql> SHOW CHARACTER SET LIKE %utf%;
+---------+------------------+--------------------+--------+
| Charset | Description      | Default collation  | Maxlen |
+---------+------------------+--------------------+--------+
| utf8    | UTF-8 Unicode    | utf8_general_ci    |      3 |
| utf8mb4 | UTF-8 Unicode    | utf8mb4_general_ci |      4 |
| utf16   | UTF-16 Unicode   | utf16_general_ci   |      4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci |      4 |
| utf32   | UTF-32 Unicode   | utf32_general_ci   |      4 |
+---------+------------------+--------------------+--------+
5 rows in set (0.00 sec)

SHOW COLLATION – 顯示MySQL支持字符集的排序規則

mysql> SHOW COLLATION;
+--------------------------+----------+-----+---------+----------+---------+
| Collation                | Charset  | Id  | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci          | big5     |   1 | Yes     | Yes      |       1 |
| big5_bin                 | big5     |  84 |         | Yes      |       1 |

SHOW BINARY | MASTER – 顯示二進制文件以及文件大小(需要開啟二進制日誌記錄功能)

mysql> SHOW BINARY LOGS;
mysql> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       143 |
| mysql-bin.000002 |       143 |

SHOW BINLOG EVENTS – 顯示二進制文件的執行過程

mysql> SHOW BINLOG EVENTS IN mysql-bin.000001;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                  |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000001 |   4 | Format_desc |         1 |         120 | Server ver: 5.6.27-log, Binlog ver: 4 |
| mysql-bin.000001 | 120 | Stop        |         1 |         143 |                                       |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
2 rows in set (0.00 sec)
mysql> SHOW BINLOG EVENTS IN mysql-bin.000001 FROM 120;
+------------------+-----+------------+-----------+-------------+------+
| Log_name         | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-----+------------+-----------+-------------+------+
| mysql-bin.000001 | 120 | Stop       |         1 |         143 |      |
+------------------+-----+------------+-----------+-------------+------+
1 row in set (0.01 sec)

SHOW COLUMNS – 顯示表的列信息(等同於DESC,需要先創建表)

mysql> SHOW COLUMNS FROM blog.info;
+---------+---------------+------+-----+---------+----------------+
| Field   | Type          | Null | Key | Default | Extra          |
+---------+---------------+------+-----+---------+----------------+
| ID      | int(11)       | NO   | PRI | NULL    | auto_increment |
| NAME    | char(8)       | NO   |     | NULL    |                |
| AGE     | int(11)       | NO   |     | NULL    |                |
| ADDRESS | varchar(20)   | NO   |     | NULL    |                |
| SALARY  | decimal(10,2) | NO   |     | NULL    |                |
+---------+---------------+------+-----+---------+----------------+
5 rows in set (0.06 sec)

SHOW CREATE DATABASES – 顯示已經創建的庫,創建時的語句

mysql> SHOW CREATE DATABASE blog;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| testdb   | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

SHOW CREATE TABLE – 顯示已經創建的表,創建時的語句

mysql> SHOW CREATE TABLE info\G
*************************** 1. row ***************************
       Table: info
Create Table: CREATE TABLE `info` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `NAME` char(8) NOT NULL,
  `AGE` int(11) NOT NULL,
  `ADDRESS` varchar(20) NOT NULL,
  `SALARY` decimal(10,2) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

SHOW CREATE FUNTCION – 顯示已經創建的函數,創建時的語句

SHOW CREATE PROCEDURE – 顯示已經創建的存儲過程,創建時的語句

mysql> SHOW CREATE PROCEDURE test.simpleproc\G
*************************** 1. row ***************************
           Procedure: simpleproc - 存儲過程的名字
            sql_mode:
    Create Procedure: CREATE PROCEDURE `simpleproc`(OUT param1 INT)
                      BEGIN
                      SELECT COUNT(*) INTO param1 FROM t;
                      END
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: latin1_swedish_ci

SHOW CREATE TRIGGER - 顯示已經創建的觸發器,創建時的語句

mysql> SHOW CREATE TRIGGER ins_sum\G
*************************** 1. row ***************************
               Trigger: ins_sum
              sql_mode: NO_ENGINE_SUBSTITUTION
SQL Original Statement: CREATE DEFINER=`me`@`localhost` TRIGGER ins_sum
                        BEFORE INSERT ON account
                        FOR EACH ROW SET @sum = @sum + NEW.amount
  character_set_client: utf8
  collation_connection: utf8_general_ci
    Database Collation: latin1_swedish_ci

SHOW CREATE VIEW – 顯示已經創建的視圖,創建時的語句

mysql> SHOW CREATE VIEW v\G
*************************** 1. row ***************************
                View: v
         Create View: CREATE ALGORITHM=UNDEFINED
                      DEFINER=`bob`@`localhost`
                      SQL SECURITY DEFINER VIEW
                      `v` AS select 1 AS `a`,2 AS `b`
character_set_client: latin1
collation_connection: latin1_swedish_ci

SHOW CREATE EVENTS – 顯示已經創建的事件,創建時的語句

mysql> SHOW CREATE EVENT test.e_daily\G
*************************** 1. row ***************************
               Event: e_daily
            sql_mode:
           time_zone: SYSTEM
        Create Event: CREATE EVENT `e_daily`
                        ON SCHEDULE EVERY 1 DAY
                        STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR
                        ON COMPLETION NOT PRESERVE
                        ENABLE
                        COMMENT Saves total number of sessions then
                                clears the table each day                        DO BEGIN
                          INSERT INTO site_activity.totals (time, total)
                            SELECT CURRENT_TIMESTAMP, COUNT(*)
                            FROM site_activity.sessions;
                          DELETE FROM site_activity.sessions;
                        END
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: latin1_swedish_ci

SHOW ENGINE – 顯示存儲引擎的詳細信息

mysql> SHOW ENGINE INNODB STATUS\G
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2015-11-22 19:05:05 7f6b6c780700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 61 seconds
..................

SHOW WARNINGS – 顯示最後一個執行語句所產生的警告信息

mysql> SHOW WARNINGS\G
mysql> SELECT @@warning_count;
+-----------------+
| @@warning_count |
+-----------------+
|               1 |
+-----------------+
1 row in set (0.01 sec)

SHOW ERRORS – 顯示最後一個執行語句所產生的錯誤信息

mysql> SHOW ERRORS\G

SHOW EVENTS – 顯示事件信息

mysql> SHOW EVENTS;
Empty set (0.02 sec)

SHOW GRANTS – 顯示一個用戶所擁有的權限

mysql> SHOW GRANTS;
mysql> SHOW GRANTS FOR CURRENT_USER();
mysql> SHOW GRANTS FOR root@localhost;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO root@localhost WITH GRANT OPTION |
+---------------------------------------------------------------------+

SHOW PROCESSLIST – 顯示系統中正在運行的所有進程,普通用戶只能查看自己的進行信息

mysql> SHOW PROCESSLIST;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
|  6 | root | localhost | blog | Query   |    0 | init  | SHOW PROCESSLIST |
+----+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)

SHOW PRIVILEGES – 顯示MySQL所支持的所有權限,及權限可操作的對象

mysql> SHOW PRIVILEGES;
+-------------------------+---------------------------------------+-------------------------------------------------------+
| Privilege               | Context                               | Comment                                               |
+-------------------------+---------------------------------------+-------------------------------------------------------+
| Alter                   | Tables                                | To alter the table                                    |
| Alter routine           | Functions,Procedures                  | To alter or drop stored functions/procedures          |

SHOW PLUGINS – 顯示MySQL插件信息

mysql> SHOW PLUGINS;
+----------------------------+----------+--------------------+---------+---------+
| Name                       | Status   | Type               | Library | License |
+----------------------------+----------+--------------------+---------+---------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password         | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| sha256_password            | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| CSV                        | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
...................

SHOW MASTER STATUS – 顯示Master當前正在使用的二進制信息

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000010 |     7040 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

SHOW TABLE STATUS – 顯示表屬性信息

mysql> SHOW TABLE STATUS LIKE info\G
*************************** 1. row ***************************
           Name: info - 表名
         Engine: InnoDB - 表存儲引擎
        Version: 10 - 表文件版本號
     Row_format: Compact - 行存儲格式(固定、動態、壓縮、冗余、緊湊)
           Rows: 1 - 表中行數量
 Avg_row_length: 16384 - 平均行長度
    Data_length: 16384 - 數據文件長度
Max_data_length: 0 - 數據文件最大長度,這是可以存儲在表中的數據的總字節數
   Index_length: 0 - 索引文件長度
      Data_free: 0 - 表文件已分配但未使用的字節數
 Auto_increment: 2 - 下一個auto_increment的值
    Create_time: 2015-11-22 17:53:10 - 表創建時間
    Update_time: NULL - 表更新時間,沒有為NULL
     Check_time: NULL - 表檢查時間,沒有為NULL
      Collation: utf8_general_ci - 表使用的排序規則
       Checksum: NULL - 表校驗
 Create_options:  
        Comment: 
1 row in set (0.00 sec)

SHOW INDEX – 顯示表索引信息(需要先創建索引,詳情看“索引文章”)

mysql> show index from testdb.info\G
*************************** 1. row ***************************
        Table: info - 表名
   Non_unique: 0
     Key_name: PRIMARY - 索引名字
 Seq_in_index: 1 - 索引中列順序號從1開始
  Column_name: ID - 索引列
    Collation: A - 列怎樣在索引中被排序
  Cardinality: 6 - 索引中唯一值的數量
     Sub_part: NULL
       Packed: NULL
         Null: 
   Index_type: BTREE - 索引算法類型
      Comment: 
Index_comment: 
1 row in set (0.01 sec)

SHOW PROCEDURE STATUS – 顯示存儲過程信息(需要先創建存儲過程,詳情請看“存儲過程文章”)

mysql> SHOW PROCEDURE STATUS LIKE sp1\G
*************************** 1. row ***************************
                  Db: test
                Name: sp1
                Type: PROCEDURE
             Definer: testuser@localhost
            Modified: 2004-08-03 15:29:37
             Created: 2004-08-03 15:29:37
       Security_type: DEFINER
             Comment:
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: latin1_swedish_ci

SHOW FUNCTION STATUS – 顯示存儲函數信息(需要先創建存儲函數,詳情看“存儲函數文章”)

mysql> SHOW fUNCTION STATUS;
Empty set (0.00 sec)

SHOW TRIGGERS – 顯示觸發器信息(需要先創建觸發器,詳情看“觸發器部分”)

mysql> SHOW TRIGGERS LIKE acc%\G
*************************** 1. row ***************************
             Trigger: ins_sum - 觸發器名字
               Event: INSERT - 觸發事件
               Table: account - 在那個表定義觸發器
           Statement: SET @sum = @sum + NEW.amount - 觸發體
              Timing: BEFORE - 是在觸發之前激活觸發事件,還是在觸發之後激活觸發事件
             Created: NULL - 
            sql_mode: NO_ENGINE_SUBSTITUTION - 觸發器執行時的SQL模式
             Definer: me@localhost - 誰創建了觸發器
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci

SHOW PROFILE and SHOW PROFILES – 顯示執行語句的資源使用情況

mysql> SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
|           0 |
+-------------+
1 row in set, 1 warning (0.00 sec)
mysql> SET profiling = 1;
mysql> CREATE TABLE T1 (id INT);
mysql> SHOW PROFILES;
+----------+------------+--------------------------+
| Query_ID | Duration   | Query                    |
+----------+------------+--------------------------+
|        1 | 0.11698325 | CREATE TABLE T1 (id INT) |
|        2 | 0.12255200 | CREATE TABLE T2 (id INT) |
+----------+------------+--------------------------+
2 rows in set, 1 warning (0.00 sec)
mysql> SHOW PROFILE;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000080 |
| checking permissions | 0.000015 |
| Opening tables       | 0.000129 |
| creating table       | 0.106344 |
| After create         | 0.000033 |
| query end            | 0.000066 |
| closing tables       | 0.000017 |
| freeing items        | 0.000241 |
| cleaning up          | 0.015628 |
+----------------------+----------+
9 rows in set, 1 warning (0.00 sec)
mysql> SHOW PROFILE FOR QUERY 2;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000080 |
-----------------------------------
mysql> SHOW PROFILE CPU FOR QUERY 2;
+----------------------+----------+----------+------------+
| Status               | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| starting             | 0.000080 | 0.000000 |   0.000000 |
----------------------------------------------------------
TYPE: CPU | MEMORY | IPC | SOURCE | ALL | BLOCK IO | SWAPS

SHOW SLAVE HOSTS – 顯示Master主機上已註冊的復制主機列表(需要先做主從復制,詳情看“主從復制部分”)

mysql> SHOW SLAVE HOSTS;
+-----------+-----------+-------+-----------+--------------------------------------+
| Server_id | Host      | Port  | Master_id | Slave_UUID                           |
+-----------+-----------+-------+-----------+--------------------------------------+
|  192168010 | iconnect2 | 3306 | 192168011 | 14cb6624-7f93-11e0-b2c0-c80aa9429562 |
| 1921680101 | athena    | 3306 | 192168011 | 07af4990-f41f-11df-a566-7ac56fdaf645 |
+------------+-----------+------+-----------+--------------------------------------+

SHOW SLAVE STATUS – 顯示Slave主機狀態信息(需要先做主從復制,詳情看“主從復制部分”)

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: localhost
                  Master_User: root
                  Master_Port: 13000
                Connect_Retry: 60
              Master_Log_File: master-bin.000002
          Read_Master_Log_Pos: 1307
               Relay_Log_File: slave-relay-bin.000003
                Relay_Log_Pos: 1508
        Relay_Master_Log_File: master-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
...........

SHOW GLOBAL | SESSION STATUS – 顯示MySQL狀態變量信息

mysql> SHOW GLOBAL STATUS;
+-----------------------------------------------+--------------------------------------------------+
| Variable_name                                 | Value                                            |
+-----------------------------------------------+--------------------------------------------------+
| Aborted_clients                               | 3                                                |
| Aborted_connects                              | 1                                                |
| Binlog_cache_disk_use                         | 0                                                |
| Binlog_cache_use                              | 25                                               |
................

SHOW GLOBAL | SESSION VARIABLES – 顯示MySQL系統變量信息

mysql> SHOW SESSION VARIABLES LIKE %INNODB%;
+------------------------------------------+------------------------+
| Variable_name                            | Value                  |
+------------------------------------------+------------------------+
| ignore_builtin_innodb                    | OFF                    |
| innodb_adaptive_flushing                 | ON                     |
| innodb_adaptive_flushing_lwm             | 10                     |
| innodb_adaptive_hash_index               | ON                     |
| innodb_adaptive_max_sleep_delay          | 150000                 |
| innodb_additional_mem_pool_size          | 8388608                |
| innodb_api_bk_commit_interval            | 5                      |
| innodb_api_disable_rowlock               | OFF                    |
| innodb_api_enable_binlog                 | OFF                    |
| innodb_api_enable_mdl                    | OFF                    |
| innodb_api_trx_level                     | 0                      |
| innodb_autoextend_increment              | 64                     |
| innodb_autoinc_lock_mode                 | 1                      |
| innodb_buffer_pool_dump_at_shutdown      | ON                     |
| innodb_buffer_pool_dump_now              | OFF                    |
| innodb_buffer_pool_filename              | ib_buffer_pool         |
..........................

GOOD LUCK!

參考博客 http://www.ywnds.com/?p=2929

MySQL常用SQL語句之SHOW語句詳解