Skip to content
📈0️⃣

MySQL 操作库

操作库

创建库

create database test_db;命令尝试创建一个名为test_db的新数据库。

如果数据库已存在,将返回一个错误,指出数据库已经存在,并且不会创建新数据库。

sql
CREATE DATABASE 库名称; # 创建库
CREATE DATABASE IF NOT EXISTS 库名称; # 优雅创建不报错
sql
create database test_db; # 创建库
create database test_db; # 重复创建报错
create database if not exists test_db; # 优雅创建不报错
show databases; # 查看库列表

if not exists提供了一种优雅的方式来创建数据库,而不必担心是否存在问题

create database if not exists test_db;命令会检查名为test_db的数据库是否已经存在。

如果不存在,它会创建这个数据库;如果已经存在,它将不会执行任何操作,也不会报错。

删除库

删除数据库

sql
DROP DATABASE <database_name>; -- 直接删除数据库,不检查是否存在

DROP DATABASE [IF EXISTS] <database_name>;
sql
create database if not exists test_db; # 创建库
drop database test_db; # 删除库

参数说明:

  • IF EXISTS 是一个可选的子句,表示如果数据库存在才执行删除操作,避免因为数据库不存在而引发错误。
  • database_name 是你要删除的数据库的名称。

使用库

选择要操作的数据库(切换到某个数据库)

sql
USE 库名称;
sql
use test_db; # 使用库
show tables; # 查询库里的表张数

查询当前库

要查询 MySQL 当前所在的库,可以使用以下 SQL 语句:

sql
SELECT DATABASE(); # 查询当前库
sql
select database(); # 当前库 test_db

这将返回当前连接的数据库名称。如果当前没有连接到任何数据库,则返回 NULL。

代码例子

sql
mysql> create database test_db; # 创建库
Query OK, 1 row affected (0.01 sec)

mysql> create database test_db; # 重复创建报错
ERROR 1007 (HY000): Canot create database 'test_db'; database exists

mysql> create database if not exists test_db; # 优雅创建不报错
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show databases; # 查看库列表
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test_db            |
| zichin_blog        |
+--------------------+
3 rows in set (0.01 sec)
sql
mysql> create database if not exists test_db; # 创建库
Query OK, 1 row affected (0.01 sec)

mysql> drop database test_db; # 删除库
Query OK, 0 rows affected (0.01 sec)
sql
mysql> show databases; # 查看库列表
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test_db            |
| zichin_blog        |
+--------------------+
3 rows in set (0.01 sec)

mysql> use test_db; # 使用库
Database changed
mysql> show tables; # 查询库里的表张数
Empty set (0.01 sec)
sql
mysql> select database(); # 当前库 test_db
+------------+
| database() |
+------------+
| test_db    |
+------------+
1 row in set (0.01 sec)

mysql> select database(); # 当前库 NULL
+------------+
| database() |
+------------+
| NULL       |
+------------+
1 row in set (0.01 sec)