MySQL学习——获取数据库和表格的信息

如果忘记了数据库或表的名称,或者不确定给定表的结构(例如,其列的名称),该怎么办呢?MySQL通过几个语句解决了这个问题,这些语句提供了有关它支持的数据库和表的信息。

你之前已经看过SHOW DATABASES,它会列出服务器管理的所有数据库。要找出当前选择的数据库,可以使用DATABASE()函数:

复制代码
mysql> SELECT DATABASE();

+------------+

| DATABASE() |

+------------+

| menagerie  |

+------------+

如果你还没有选择任何数据库,那么DATABASE()函数的结果将是NULL。

要找出默认数据库包含哪些表(例如,当你不确定某个表的名称时),可以使用以下语句:

复制代码
mysql> SHOW TABLES;

+---------------------+

| Tables_in_menagerie |

+---------------------+

| event               |

| pet                 |

+---------------------+

由SHOW TABLES语句生成的输出中的列名总是Tables_in_db_name,其中db_name是数据库的名称。这是为了帮助你清晰地知道这些表属于哪个数据库。

如果你想要了解表的结构,DESCRIBE语句非常有用;它会显示有关表的每一列的信息:

复制代码
mysql> DESCRIBE pet;

+---------+-------------+------+-----+---------+-------+

| Field   | Type        | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| name    | varchar(20) | YES  |     | NULL    |       |

| owner   | varchar(20) | YES  |     | NULL    |       |

| species | varchar(20) | YES  |     | NULL    |       |

| sex     | char(1)     | YES  |     | NULL    |       |

| birth   | date        | YES  |     | NULL    |       |

| death   | date        | YES  |     | NULL    |       |

+---------+-------------+------+-----+---------+-------+

在DESCRIBE或DESC命令的输出中:

  • Field:指示列名。
  • Type:是列的数据类型。
  • NULL:表示该列是否可以包含NULL值。
  • Key:表示该列是否被索引。
  • Default:指定列的默认值。
  • Extra:显示有关列的特殊信息。例如,如果列是使用AUTO_INCREMENT选项创建的,则此处的值将是auto_increment而不是空的。

DESC确实是DESCRIBE的简写形式,它们提供相同的功能。

可以使用SHOW CREATE TABLE语句来获取创建一个已存在的表所需的CREATE TABLE语句。这在想要复制表结构到新环境或者需要查看表的完整创建语句时非常有用。

相关推荐
YJlio2 小时前
Windows Sysinternals 文件工具学习笔记(12.11):综合实战——从磁盘告警到文件替换的一条龙排障
windows·笔记·学习
_OP_CHEN2 小时前
【C++数据结构进阶】从B + 树 / B * 树到数据库索引:B树的进化之路与 MySQL 实战解析
数据结构·数据库·b树·mysql·innodb·b+树·mylsam
旖旎夜光4 小时前
Linux(4)(下)
linux·学习
敲敲了个代码7 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
我命由我123459 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
最贪吃的虎9 小时前
Git: rebase vs merge
java·运维·git·后端·mysql
残 风10 小时前
pg兼容mysql框架之语法解析层(openHalo开源项目解析)
数据库·mysql·开源
九皇叔叔10 小时前
MySQL 数据库 MVCC 机制
数据库·mysql
Fern_blog11 小时前
鸿蒙学习之路
学习
小智RE0-走在路上12 小时前
Python学习笔记(11) --数据可视化
笔记·python·学习