![MariaDB必知必会](https://wfqqreader-1252317822.image.myqcloud.com/cover/943/34339943/b_34339943.jpg)
3.3 了解数据库和表
然而,如果你不知道可用的数据库名字该怎么办?在这种情况下,像MySQL Workbench之类的工具如何显示可访问的数据库列表呢?
关于数据库、表、列、用户、权限等信息都存储在数据库和表中(是的,即MariaDB使用MariaDB来存储信息)。然而,这些内部表通常不能够直接访问,而是使用MariaDB的SHOW命令来显示这些信息(即MariaDB从内部表中提取的信息)。看看下面的例子:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/13-i.jpg?sign=1739503199-Bn5bUbtgcniV9R8quh1jqUkQnZb9IZKL-0-2c3be9121e5bf6dd41b1f9f33dbbfa9f)
▼ 输出
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/13a-i.jpg?sign=1739503199-1SrFiy2W0E3tudFHmuNYvSYVIqKICDLA-0-f484db7e4beeafdd0dd6d9d146cd4022)
▼ 分析
“SHOW DATABASES;”返回可访问数据库的列表。在这个列表中可能包含MariaDB内部的数据库(本例中如mysql和information_schema)。当然,你自己的数据库列表可能与这里显示的不同。
为了获取数据库表的列表,使用“SHOW TABLES;”如下所示:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/13b-i.jpg?sign=1739503199-P5kZJ2JNCafWY7RR0qjOu1m0OWoLwHCJ-0-5bb25cef66440b96f15072cbdfb5b62e)
▼ 输出
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/13c-i.jpg?sign=1739503199-5mEyTYhIQfFx3yIMUs4rtpz62wNLIDBz-0-4edc2212617da3927c3552bf6fc806d0)
▼ 分析
“SHOW TABLES;”返回当前选择的数据库中可用表的列表信息。
为了显示表的列,可以使用DESCRIBE:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/13d-i.jpg?sign=1739503199-fnzpBRGFqklke3q5ffrmaQQhIbive7FK-0-af5caaba79805be462f70cff4a84ba5a)
▼ 输出
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/14-i.jpg?sign=1739503199-9iHOAXn2EGGDuGDKxOV23mb1T0gy8f0I-0-e52a0aeee19b6795a4e042d59f8d634b)
▼ 分析
DESCRIBE需要指定表名(本例中是customers),之后对每个字段返回一行,包含字段名、数据类型、是否可为NULL、键值信息、默认值和额外信息(例如cust_id字段的自增长auto_increment)。
注意
什么是自增长? 有些表的列需要唯一值,如订单号、员工ID或者客户ID(如刚才看到的例子中的)。不用在每次添加一行时手动分配唯一值(并且必须追踪哪些值已经用过),MariaDB能够自动分配下一个可用值。这个功能就是所谓的自增长。在使用CREATE语句创建表时,如果需要,它必须是表定义的一部分。我们会在第21章看到CREATE语句。
提示
SHOW COLOMNS FROM语句 DESCRIBE实际是SHOW COLUMNS FROM的缩写。换句话说,“DESCRIBE customers”语句与“SHOW COLUMNS FROM customers”具有同样的功能。
同样支持的其他SHOW语句包括:
·SHOW STATUS——用来显示广泛的服务器状态信息。
·SHOW CREATE DATABASE和SHOW CREATE TABLE——分别用来显示创建指定数据库或者表的MariaDB语句。
·SHOW GRANTS——用来显示授予用户(所有用户或指定用户)的安全权限。
·SHOW ERRORS和SHOW WARNINGS——用来显示服务器错误或者警告消息。
值得注意的是,客户端应用也使用你所见到的这些MariaDB SQL命令。使用这样的MariaDB SQL命令,可以直接执行命令,如显示数据库和表的交互列表,交互地进行表的创建、编辑,方便地读取和编辑数据,或进行用户账户和权限的管理。
提示
进一步了解SHOW语句 在mysql命令行实用程序中,执行命令“HELP SHOW;”展示可以使用的SHOW语句列表。
注意
更多信息 MariaDB支持使用INFORMATION_SCHEMA来获取和过滤更多的框架信息。讲述INFORMATION_SCHEMA的内容超出了本书的范围。如果需要,你要知道确实可以这样做。