数据库的基本操作
MySQL 中把一些表的集合称为一个数据库,MySQL 服务器管理着若干个数据库,每个数据库下都可以有若干个表,画个图就是这样:
展示数据库
在我们刚刚安装好 MySQL 的时候,它已经内建了许多数据库和表了,我们可以使用下边这个命令来看一下都有哪些数据库:
SHOW DATABASES;
我自己的电脑上安装的 MySQL 版本是 5.7.22,看一下在这个版本里内建了哪些数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql>
可以看到,这一版本的 MySQL 已经为我们内建了 4 个数据库,这些数据库都是给 MySQL 自己内部使用的,如果我们想使用 MySQL 存放自己的数据,首先需要创建一个属于自己的数据库。
创建数据库
创建数据库的语法贼简单:
CREATE DATABASE 数据库名称;
实际操作
mysql> CREATE DATABASE TEST;
Query OK, 1 row affected (0.00 sec)
mysql>
我起名字叫 TEST 作为了数据库名称,语句写完之后按下回车键,然后提示了一个 Query OK, 1 row affected (0.00 sec)说明数据库创建成功了。然后我们再用 SHOW DATABASES 的命令查看一下现在有哪些数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| TEST |
+--------------------+
5 rows in set (0.00 sec)
mysql>
看到我们自己创建的数据库 TEST 就已经在列表里了。
IF NOT EXISTS
我们在一个数据库已经存在的情况下再使用 CREATE DATABASE
去创建这个数据库会产生错误:
mysql> CREATE DATABASE TEST;
ERROR 1007 (HY000): Can't create database 'test'; database exists
mysql>
执行结果提示了一个 ERROR,意思是数据库 test 已经存在!所以如果我们并不清楚数据库是否存在,可以使用下边的语句来创建数据库:
CREATE DATABASE IF NOT EXISTS 数据库名称;
这个命令的意思是如果指定的数据库不存在的话就创建它,否则什么都不做。我们试一试:
mysql> CREATE DATABASE IF NOT EXISTS test;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql>
可以看到语句执行成功了,提示的 ERROR 也没有了,只是结果中有 1 个 warning,这个 warning 只是 MySQL 善意的提醒我们数据库 test 已存在而已
INFO
小贴士:
warning 的等级比 error 的等级低,如果执行某个语句后提示了 warning,只是属于一个善意的提示,不影响语句的执行,而提示了 error 之后说明语句压根儿无法执行。
切换当前数据库
对于每一个连接到 MySQL 服务器的客户端,都有一个当前数据库的概念(也可以称之为默认数据库),我们创建的表默认都会被放到当前数据库中,切换当前数据库的命令也贼简单:
USE 数据库名称;
我们切换到刚刚创建的 TEST 数据库:
mysql> USE TEST;
Database changed
mysql>
可以看到提示了一个 Database changed,说明当前数据库已经切换到 TEST 了。我们可以使用下边的命令来查看当前数据库:
SELECT DATABASE();
删除数据库
如果我们觉得某个数据库没用了,还可以把它删掉,语法如下:
DROP DATABASE 数据库名称;
- 比如我们想删除 TEST 数据库
DROP DATABASE TEST;
- 然后我们在 查询下数据库
SHOW DATABASES;
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql>
可以看到我们前边创建的 TEST 数据库就没有啦。
IF EXISTS
如果我们想删除一个数据库,但是不确定这个数据库是否存在,可以使用下边的语句:
DROP DATABASE IF EXISTS 数据库名称;
这个语句的意思是如果指定的数据库存在的话就删除它,否则什么都不做。
- 举例
DROP DATABASE IF EXISTS test;
- 执行结果
mysql> DROP DATABASE IF EXISTS test;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>