使用MySQL
本章将学习如何连接和登录到MySQL,如何执行MySQL语句,以及如何获得数据库和表的信息。
连接
MySQL与所有客户机-服务器DBMS一样,要求在能执行命令之前登录到DBMS。MySQL在内部保存自己的用户列表,并且把每个用户与各种权限关联起来。
连接到MySQL,需要以下信息:
- 主机名(计算机名)——如果连接到本地MySQL服务器,为localhost。
- 端口(如果使用默认端口3306以外的端口)。
- 一个合法的用户名。
- 用户口令(如果需要)
选择数据库
连接MySQL后,需要选择一个数据库来执行数据库操作。我们可以使用USE关键字。
关键字:作为MySQL语言组成部分的一个保留字。绝不要用关键字命名一个表或列。
例如,我们使用名为crashcourse的数据库:
mysql> USE crashcourse;
Database changed
USE语句不返回任何结果,只显示某种形式的通知。例如,显示Database changed消息表示数据库选择成功。
必须先使用USE打开数据库,才能读取其中的数据!
了解数据库和表
数据库、表、列、用户、权限等信息被存储在数据库和表中(MySQL存在名为MySQL的数据库来存储这些信息)。但内部的表一般不直接访问,可以用MySQL的SHOW命令来显示这些信息。
显示MySQL中存储的数据库,可使用SHOW DATABASES;。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| course |
| crashcourse |
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
8 rows in set (0.01 sec)
SHOW DATABASES; 返回可用数据库的一个列表。
使用USE选择完数据库后,我们可用SHOW TABLES;来显示数据库中存储的表。
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_crashcourse |
+-----------------------+
| customers |
| orderitems |
| orders |
| productnotes |
| products |
| vendors |
+-----------------------+
6 rows in set (0.01 sec)
SHOW TABLES; 返回当前选择的数据库内可用表的列表。
我们也可以用SHOW COLUMNS FROM ‘表名’;来显示对应表中的列信息。
mysql> SHOW COLUMNS FROM customers;
+--------------+-----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------+------+-----+---------+----------------+
| cust_id | int | NO | PRI | NULL | auto_increment |
| cust_name | char(50) | NO | | NULL | |
| 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 | |
+--------------+-----------+------+-----+---------+----------------+
9 rows in set (0.01 sec)
- SHOW COLUMNS要求给出一个表名,它对每个字段返回一行,行中信息包括字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息。
- 自动增量(auto_increment) 某些表需要唯一值,例如订单编号等。在每个行添加到表中时,MySQL可用自动地为每个行分配下一个可用编号,不用手动分配唯一值。这就是自动增量,使用自动增量需要在创建表时,把它作为表定义的组成部分。
- DESCRIBE语句 MySQL支持用DESCRIBE替换SHOW COLUMNS FROM。例如SHOW COLUMNS FROM customers;可换成DESCRIBE customers;
其他SHOW语句:
- SHOW STATUS 显示广泛的服务器状态信息。
- SHOW GRANTS 显示授予用户的安全权限。
- SHOW ERRORS和SHOW WARNINGS 显示服务器错误和警告消息。
更多的SHOW语句可以通过HELP SHOW来获取。