MySQL 必知必会 (23):使用 MySQL 3.3

阅读数:52 2019 年 10 月 23 日 05:22

MySQL必知必会(23):使用 MySQL 3.3

(了解数据库和表)

如果你不知道可以使用的数据库名时怎么办?这时,MySQL Administrator 和 MySQL Query Browser 怎样能显示可用的数据库列表?

数据库、表、列、用户、权限等的信息被存储在数据库和表中(MySQL 使用 MySQL 来存储这些信息)。不过,内部的表一般不直接访问。可用 MySQL 的SHOW命令来显示这些信息(MySQL 从内部表中提取这些信息)。请看下面的例子:

输入

复制代码
SHOW DATABASES;

输出

复制代码
+--------------------+
| Database |
+--------------------+
| information_schema |
| crashcourse |
| mysql |
| forta |
| coldfusion |
| flex |
| test |
+--------------------+

分析

SHOW DATABASES;返回可用数据库的一个列表。包含在这个列表中的可能是 MySQL 内部使用的数据库(如例子中的mysqlinformation_schema)。当然,你自己的数据库列表可能看上去与这里的不一样。

为了获得一个数据库内的表的列表,使用SHOW TABLES;,如下所示:

输入

复制代码
SHOW TABLES;

输出

复制代码
+-----------------------+
| Tables_in_crashcourse |
+-----------------------+
| customers |
| orderitems |
| orders |
| products |
| productnotes |
| vendors |
+-----------------------+

分析

SHOW TABLES;返回当前选择的数据库内可用表的列表。
SHOW也可以用来显示表列:

输入

复制代码
SHOW COLUMNS FROM customers;

输出

复制代码
+---------------+-----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-----------+------+-----+---------+----------------+
| cust_id | int(11) | NO | PRI | NULL | auto_increment |
| cust_name | char(50) | NO | | | |
| cust_address | char(50) | YES | | NULL | |
| cust_city | char(50) | YES | | NULL | |
| cust_state | char(5) | YES | | NULL | |
| cust_zip | char(10) | YES | | NULL | |
| cust_country | char(50) | YES | | NULL | |
| cust_contact | char(50) | YES | | NULL | |
| cust_email | char(255) | YES | | NULL | |
+---------------+-----------+------+-----+---------+----------------+

分析

SHOW COLUMNS要求给出一个表名(这个例子中的FROM customers),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_idauto_increment)。

什么是自动增量? 某些表列需要唯一值。例如,订单编号、雇员 ID 或(如上面例子中所示的)顾客 ID。在每个行添加到表中时,MySQL 可以自动地为每个行分配下一个可用编号,不用在添加一行时手动分配唯一值(这样做必须记住最后一次使用的值)。这个功能就是所谓的自动增量。如果需要它,则必须在用CREATE语句创建表时把它作为表定义的组成部分。我们将在第 21 章中介绍CREATE语句。


DESCRIBE语句 MySQL 支持用DESCRIBE作为SHOW COLUMNS FROM的一种快捷方式。换句话说,DESCRIBE customers;SHOW COLUMNS FROM customers;的一种快捷方式。

所支持的其他SHOW语句还有:

  • SHOW STATUS,用于显示广泛的服务器状态信息;
  • SHOW CREATE DATA BASESHOW CREATE TABLE,分别用来显示创建特定数据库或表的 MySQL 语句;
  • SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
  • SHOW ERRORSSHOW WARNINGS,用来显示服务器错误或警告消息。

值得注意的是,客户机应用程序使用与这里相同的 MySQL 命令。显示数据库和表的交互式列表、允许交互式创建和编辑表、便于数据录入和编辑或允许管理用户账号和权限等的应用全都使用你可以直接执行的相同的 MySQL 命令完成它们的工作。

进一步了解SHOW 请在mysql命令行实用程序中,执行命令HELP SHOW; 显示允许的SHOW语句。


MySQL5 的新增内容 MySQL 5 支持一个新的INFORMATION_SCHEMA命令,可用它来获得和过滤模式信息。

评论

发布