博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

MySQL程序之mysqlshow详解

Posted on 2019-01-05 11:05  面具下的戏命师  阅读(626)  评论(0编辑  收藏  举报

mysqlshow命令详解

显示MySQL数据库的结构(数据库、表和列)

如果最后一个参数包含shell或SQL通配符(*,?,%,_)将显示通配符匹配的内容。

如果没有给定数据库,则显示所有匹配的数据库。如果没有给出表,那么将显示数据库中所有匹配的表。如果没有给出列,则表中所有匹配的列和列类型

用法:

mysqlshow [OPTIONS] [database [table [column]]]

参数:

--print-defaults                     # 打印程序参数列表并退出.
--no-defaults                        # 不要从任何选项文件读取默认选项,登录文件除外
--defaults-file=#                    # 仅从给定文件中读取默认选项
--defaults-extra-file=#              # 读取全局文件后读取此文件
--defaults-group-suffix=#            # 同时读取带有concat(group,suffix)的组             
--login-path=#                       # 从登录文件读取此路径
--bind-address=name                  # 绑定的IP
-c, --character-sets-dir=name        # 字符集的安装目录
--default-character-set=name         # 设置默认字符集
--count                              # 显示每个表数据的行数(非MyISAM引擎的表可能比较慢).
-C, --compress                       # 在客户端和服务器之间启用压缩传递所有信息
-#, --debug[=#]                      # 输出debug信息,用于调试。默认值为:d:t,/tmp/mysqldump.trace
--debug-check                        # 当程序退出时打印一些调试信息
--debug-info                         # 当程序退出时打印调试信息和内存和CPU使用统计信息
--default-auth=name                  # 默认的客户端插件
--enable-cleartext-plugin            # 启用/禁用明文身份验证插件
-?, --help                           # 显示帮助信息并退出
-h, --host=name                      # 指定连接的主机
-i, --status                         # 显示了关于每个表的大量额外信息
-k, --keys                           # 显示表的键
-p, --password[=name]                # 指定登陆服务器的密码
--plugin-dir=name                    # 客户端插件的目录
-P, --port=#                         # 指定登陆的端口号
--protocol=name                      # 用于连接的协议 (tcp, socket, pipe,memory).
-t, --show-table-type                # 显示表列类型
-S, --socket=name                    # 连接使用的socket文件
--secure-auth                        # 如果客户端使用旧的(4.1.1之前的)协议,则拒绝连接到服务器
--ssl-mode=name                      # SSL连接模式
--ssl-ca=name                        # PEM格式的CA文件
--ssl-capath=name                    # CA目录
--ssl-cert=name                      # PEM格式的X509证书
--ssl-cipher=name                    # 要使用的SSL密码
--ssl-key=name                       # PEM格式的X509密钥
--ssl-crl=name                       # 证书吊销列表
--ssl-crlpath=name                   # 证书吊销列表路径
--tls-version=name                   # 要使用的TLS版本,允许值为:tlsv1、tlsv1.1
-u, --user=name                      # 登陆服务器指定用户名
-v, --verbose                        # 更详细的输出;您可以多次使用它来获得更详细的输出
-V, --version                        # 输出版本信息并退出

实例:

1、显示所有的数据库

[root@mysql mysqlhelp]# mysqlshow -u root -p
Enter password: 
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
| sys                |
| test               |
| xinyong            |
+--------------------+

2、显示一个库的所有表

[root@mysql mysqlhelp]# mysqlshow -u root -p test
Enter password: 
Database: test
+--------+
| Tables |
+--------+
| t      |
+--------+

3、显示一个表的所有列

[root@mysql mysqlhelp]# mysqlshow -u root -p test t
Enter password: 
Database: test  Table: t
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| a     | int(11)     |                 | NO   | PRI |         | auto_increment | select,insert,update,references |         |
| b     | varchar(30) | utf8_general_ci | YES  |     |         |                | select,insert,update,references |         |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+

4、显示每个表的数据行数

[root@mysql mysqlhelp]# mysqlshow -u root -p --count test
Enter password: 
Database: test
+--------+----------+------------+
| Tables | Columns  | Total Rows |
+--------+----------+------------+
| t      |        2 |          5 |
+--------+----------+------------+

5、显示表的键

[root@mysql mysqlhelp]# mysqlshow -u root -p -k test t
Enter password: 
Database: test  Table: t
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| a     | int(11)     |                 | NO   | PRI |         | auto_increment | select,insert,update,references |         |
| b     | varchar(30) | utf8_general_ci | YES  |     |         |                | select,insert,update,references |         |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| t     | 0          | PRIMARY  | 1            | a           | A         | 5           |          |        |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

6、显示表列类型

[root@mysql mysqlhelp]# mysqlshow -u root -p -t test
Enter password: 
Database: test
+--------+------------+
| Tables | table_type |
+--------+------------+
| t      | BASE TABLE |
+--------+------------+