1.4 查看数据库与表
当您忘了一个数据库、一个数据表的名字,或者您忘了一个数据表的结构(忘了表中数据列的名字)。MySQL 提供了几个常用的指令,帮您解决这些问题。
SHOW DATABASES
显示您能管理的数据库。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| menagerie |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
SELECT DATABASE()
查看当前所选择的数据库。
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
1 row in set (0.00 sec)
如果您没有选择数据库,则显示 NULL
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
SHOW TABLES
查看当前数据库包含了哪些数据表?
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+
2 rows in set (0.00 sec)
注意:列名显示的格式 Tables_in_db_name
DESCRIBE <table name>
列出数据表结构
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 | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
- Field 表示列名;
- Type 表示列的数据类型;
- Null 表示列是否包含 NULL 值,可选值 [ YES | NO ];
- Key 表示该列是否索引,可选值[ 空 | PRI | UNI | MUL ];
- Default 表示该列指定的默认值;
- Extra 显示特殊的信息,比方说 auto_increment ;
关于这部分的详细信息,在后续的章节会为您详细介绍。
DESC 是 DESCRIBE 的简写
mysql> desc pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | MUL | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
SHOW CREATE TABLE <table name>
显示已存在表的创建表的语句;
mysql> show create table pet;
+-------+--------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------+
| pet | CREATE TABLE `pet` (
`name` varchar(20) DEFAULT NULL,
`owner` varchar(20) DEFAULT NULL,
`species` varchar(20) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`birth` date DEFAULT NULL,
`death` date DEFAULT NULL,
KEY `species` (`species`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------+
1 row in set (0.00 sec)