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)