MySQL常用的show语法

MySQL show语法

SHOW BINARY LOGS

SHOW BINARY LOGS 列出服务器上的二进制日志文件。
SHOW BINLOG EVENTS 显示二进制日志中的事件。如果未指定 ,则显示第一个二进制日志。

mysql> SHOW BINARY LOGS;
| Log_name         | File_size |
| ---------------- | --------- |
| mysql-bin.000036 | 524288088 |
| mysql-bin.000037 | 524288064 |
| mysql-bin.000038 | 524288230 |

如果没有设置启用二进制日志文件,将会出现如下提示:

mysql> SHOW BINARY LOGS;
ERROR 1381 (HY000): You are not using binary logging
mysql> SHOW MASTER LOGS;
ERROR 1381 (HY000): You are not using binary logging
mysql> SHOW BINLOG EVENTS;
Empty set (0.01 sec)

SHOW CHARACTER SET

显示所有可用的字符集

SHOW CHARACTER SET;
SHOW CHARACTER SET LIKE 'utf8%';

示例:

mysql> SHOW CHARACTER SET LIKE 'utf8%';
+---------+---------------+--------------------+--------+
| Charset | Description   | Default collation  | Maxlen |
+---------+---------------+--------------------+--------+
| utf8    | UTF-8 Unicode | utf8_general_ci    |      3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci |      4 |
+---------+---------------+--------------------+--------+
2 rows in set (0.00 sec)

SHOW COLLATION

输出包括所有可用的字符集

SHOW COLLATION;
SHOW COLLATION LIKE 'utf8%';

SHOW COLUMNS

显示在一个给定表中的各列的信息,对于视图,本语句也起作用。

SHOW COLUMNS FROM mydb.mytable;
SHOW COLUMNS FROM mytable FROM mydb;

SHOW CREATE DATABASE

显示用于创建给定数据库CREATE DATABASE语句。也可以使用SHOW CREATE SCHEMA。

SHOW CREATE DATABASE test;
SHOW CREATE DATABASE test\G;

SHOW CREATE TABLE

SHOW CREATE TABLE java;
SHOW CREATE TABLE java\G;

SHOW DATABASES

SHOW DATABASES 可以在 MySQL 服务器主机上列出数据库。
也可以使用mysqlshow命令得到此清单。
只能看到拥有某些权限的数据库,除非拥有全局SHOW DATABASES权限。

SHOW DATABASES;

SHOW ENGINE

SHOW ENGINE: 显示存储引擎的日志或状态信息。目前支持以下语句:
SHOW ENGINE INNODB MUTEX 显示 InnoDB mutex 和 rw-lock 统计信息

SHOW ENGINE engine_name {STATUS | MUTEX}
SHOW ENGINE INNODB STATUS;

示例:

mysql> SHOW ENGINE INNODB MUTEX;
+--------+-----------------------------+-----------+
| Type   | Name                        | Status    |
+--------+-----------------------------+-----------+
| InnoDB | rwlock: dict0dict.cc:1184   | waits=851 |
| InnoDB | rwlock: fil0fil.cc:1381     | waits=3   |
| InnoDB | rwlock: log0log.cc:838      | waits=226 |
| InnoDB | rwlock: btr0sea.cc:195      | waits=1   |
| InnoDB | rwlock: hash0hash.cc:353    | waits=1   |
| InnoDB | rwlock: hash0hash.cc:353    | waits=1   |
| InnoDB | sum rwlock: buf0buf.cc:1460 | waits=184 |
+--------+-----------------------------+-----------+
7 rows in set (0.12 sec)

SHOW ENGINES

SHOW ENGINES显示存储引擎的状态信息。对于检查一个存储引擎是否被支持,或者对于查看默认引擎是什么,本语句十分有用。

SHOW ENGINES;
SHOW ENGINES\G;

示例:

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

SHOW ERRORS

该语句只显示错误,不同时显示错误、警告和注意。

SHOW COUNT(*) ERRORS;
SHOW ERRORS;

SHOW GRANTS

SHOW GRANTS;
SHOW GRANTS FOR user;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();

SHOW INDEX

SHOW INDEX会返回表索引信息。

SHOW INDEX FROM mydb.mytable;
SHOW INDEX FROM mytable FROM mydb;

SHOW OPEN TABLES

列举在表缓存中当前被打开的非TEMPORARY表。

SHOW OPEN TABLES;

SHOW PRIVILEGES

显示MySQL服务器支持的系统权限清单。确切的输出根据服务器的版本而定

SHOW PRIVILEGES;

**SHOW PROFILES **

SHOW PROFILES语句与SHOW PROFILE显示的分析信息一起显示在当前会话过程中执行的语句的资源使用情况。

SHOW PROCESSLIST

SHOW PROCESSLIST 用来显示哪些线程正在运行。
也可以使用mysqladmin processlist语句得到此信息。
如果有SUPER权限,可以看到所有线程。否则,只能看到自己的线程

mysql> SHOW PROCESSLIST;
+---+--------+---------------+-----+------+----+-----+----------+
| Id  | User | Host | db | Command | Time | State    | Info |
+---+--------+---------------+------+------+---+------+----------+
|120|homestead|192.168.10.1:57001| testdb| Sleep|10 | | NULL |
|124|homestead|192.168.10.1:60613| NULL  | Sleep| 59 | | NULL |
|138|homestead|192.168.10.1:56737| testdb| Sleep| 1010 | | NULL |
|139|homestead|localhost| NULL | Query| 0| starting | SHOW PROCESSLIST |
+---+--------+---------------+-----+------+----+-----+----------+

SHOW STATUS

提供服务器状态信息。此信息也可以使用mysqladmin extended-status命令获得。

SHOW STATUS;

SHOW TABLE STATUS

SHOW TABLE STATUS的性质与SHOW TABLE类似,不过,可以提供每个表的大量信息。
也可以使用mysqlshow --status db_name命令得到此清单。

本语句也显示视图信息。

SHOW TABLE STATUS;
SHOW TABLE STATUS FROM test;

SHOW TABLES

SHOW TABLES列举了给定数据库中的非TEMPORARY表。
也可以使用 mysqlshow db_name命令得到此清单。

SHOW TABLES;
mysql> SHOW TABLES;
ERROR 1046 (3D000): No database selected
mysql> use testdb;
Database changed
mysql> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| en_names         |
| my_todos         |
| my_users         |
+------------------+
3 rows in set (0.00 sec)

SHOW TRIGGERS

SHOW TRIGGERS列出了目前被MySQL服务器定义的触发程序(触发器)。

SHOW TRIGGERS;

触发器(trigger)是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器。例如,当对一个表进行操作插入( insert)、删除(delete)、更新( update)时就会激活它执行。

触发器创建语法四要素:

  1. 监视地点 (table)
  2. 监视事件 (insert/update/delete)
  3. 触发时间 (after/before)
  4. 触发事件 (insert/update/delete)

SHOW VARIABLES

SHOW VARIABLES;
SHOW GLOBAL VARIABLES;
SHOW SESSION VARIABLES;
SHOW VARIABLES LIKE 'have%';

SHOW WARNINGS

显示由上一个生成消息的语句导致的错误、警告和注意消息。
如果上一个使用表的语句未生成消息,则什么也不显示。
SHOW ERRORS是其相关语句,只显示错误。

SHOW COUNT(*) WARNINGS;
SHOW WARNINGS;

Reference

https://dev.mysql.com/doc/refman/5.7/en/show.html

你可能感兴趣的:(数据库)