但是安装额外的软件毕竟很麻烦,而且不同的平台(Windows/OSX/Linux)安装体验也不一样,有的平台是没有可视化操作的软件的。所以学习使用 MySQL 的命令行操作也很
重要,因为这是随着MySQL软件发布的,所以只要安装了MySQL的机器都可以使用mysql
命令。
前提
在MySQL的安装目录下的$MYSQLDIR/bin
目录可以找到mysql
命令,比如我的mac上是: /usr/local/mysql/bin/mysql
,为了方便使用,可以把这个命令加入到环境变量。
这个命令的主要用途是,可以通过控制台(终端)对数据库做一些操作,比如建表建库,做增删改查的操作。
登陆数据库 命令如下:
shell> mysql -h host -u user -p
Enter password: ********
-h host
是远程服务器的ip地址,-u user
是登陆数据库的用户名,需要注意的是 -p
后面并没有跟随密码(明文密码不安全),敲下这行命令之后,会提示输入密码。
如果数据就是安装在本机,那么不需要 -h host
,比如:
shell> mysql -u user -p
退出数据库:
mysql> QUIT
Bye
在成功登陆数据库之后,所有的操作都必须以 “;” 号结尾的,否则不能执行,mysql会把回车理解成换行。(一定要注意“;”号结尾)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| blogdb |
| merchant |
| mysql |
| performance_schema |
| spotsdb |
| sys |
+--------------------+
7 rows in set (0.01 sec)
另外一点需要注意的是每次操作,后面都会跟着执行用时的时间戳 7 rows in set (0.01 sec)
这个时间并不是数据库真实的操作耗时,见:
These values are imprecise because they represent wall clock time (not CPU or machine time), and because they are affected by factors such as server load and network latency.
常用操作
-
查看当前数据库版本和当前时间
mysql> SELECT VERSION(), CURRENT_DATE; +--------------+--------------+ | VERSION() | CURRENT_DATE | +--------------+--------------+ | 5.7.1-m4-log | 2012-12-25 | +--------------+--------------+ 1 row in set (0.01 sec) mysql>
-
查看当前创建了哪些数据库
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+
-
取用某个数据库(注意和
QUIT
命令一样,没有;
号结尾)mysql> USE test Database changed
-
创建一个数据库
mysql> CREATE DATABASE menagerie;
-
查看当前数据库下的所有的表
mysql> SHOW TABLES; Empty set (0.00 sec)
-
创建一张表
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
-
查看一张表的结构
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 | | +---------+-------------+------+-----+---------+-------+
-
batch模式
shell> mysql < batch-file > mysql.out