创建数据库:create , CREATE

创建数据库的最核心,最常用的命令是 CREATE DATABASE,其完整语法结构如下:

CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];

参数解释:

  • CREATE DATABASE:固定关键字,表示要创建一个数据库。

  • database_name:这是你为数据库指定的名称。名称必须是唯一且不可重复。

  • [IF NOT EXISTS]:可选子句。这是一个非常实用的安全措施。

    • 如果使用:当你要创建的数据库已经存在时,MySQL 会抛出一个警告而不是错误,并且不会执行创建操作。这可以避免脚本因“数据库已存在”的错误而中断。

    • 如果不使用:当数据库已存在时,MySQL 会直接返回一个错误。

  • [CHARACTER SET charset_name]:可选子句。用于指定数据库默认使用的字符集。常见的字符集有:

    • utf8mb4(推荐):UTF-8 编码,支持所有的 Unicode 字符(包括表情符号👍)。

    • utf8(不推荐):阉割版 UTF-8,不建议使用。

    • gbk:中文编码。

    • latin1:西欧编码。

  • [COLLATE collation_name]:可选子句。用于指定数据库的默认排序规则(校对规则),它决定了字符串比较和排序的规则(如是否区分大小写、重音等)。常见的校对规则有:

    • utf8mb4_general_ci:基于 Unicode 规则校对,速度较快。(ci 表示 case Insensitive,不区分大小写)

    • utf8mb4_unicode_ci:基于 Unicode 规则的校对,更精确,支持多种语言。

    • utf8mb4_bin:二进制校对,区分大小写。

说明:如果完全不指定 CHARACTER SET 和 COLLATE,MySQL 将使用服务器级别的默认字符集和校对规则(通常可以在 my.cnf 配置文件中查看和修改)。

注:在运行以下任何命令之前,你需要先连接到 MySQL 服务器(通常使用 mysql -u root -p)。

示例:

1.创建数据库(创建一个名为 my_database 的数据库,且不加任何参数)

CREATE DATABASE my_database;

2.安全创建(检查my_database 是否存在,如果不存在才创建)

CREATE DATABASE If NOT EXISTS my_database;

3.创建指定字符集和校对规则的数据库(创建一个名为 my_app_db 的数据库,并显式指定使用utf8mb4 字符集和 utf8mb4_unicode_ci 校对规则。较为推荐,可以避免很多乱码和排序问题)

CREATE DATABASE IF NOT EXISTS my_app_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;4:创建用于特定场景的数据库

4.创建用于特定场景的数据库(创建一个需要区分大小写的数据库。例如,用于存储分区大小写的验证码或密码。)

CREATE DATABASE case_sensitive_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_bin;

删除数据库:drop , DROP

删除数据库的核心命令是 DROP DATABASE,其语法非常简单:

DROP DATABASE [IF EXISTS] database_name;

参数解释:

  • DROP DATABASE:固定关键字,表示要删除一个数据库。

  • database_name:指定要删除的数据库的名称。

  • [IF EXISTS]:极其重要的可选子句。

    • 如果使用:当你要删除的数据库不存在时,MySQL 会抛出一个警告(Waring)而不是错误(Error)。这可以防止因为名称拼写错误或数据库不存在而导致的脚本中断。

    • 如果不使用:当指定的数据库不存在时,MySQL 会直接返回一个错误 ERROR 1008 (HY000):Can't drop database 'database_name'; database doesn't exist。

操作前的重要警告与准备

在执行 DROP DATBASE 之前,请务必完成以下检查:

  1. 确认数据库名:绝对不要在生产环境或重要环境随意执行。仔细检查 database_name 的拼写。

  2. 备份数据:如果你还需要数据库中的任何数据,请务必先备份!可以使用 mysqldump 工具进行备份。

# 示例:在命令行(非MySQL内)备份名为 my_db 的数据库到 my_db_backup.sql 文件
mysqldump -u your_username -p my_db > my_db_backup.sql

注:确认当前使用的数据库,确保你没有正在使用要删除的数据库(既没有执行过USE database_name;)。如果正在使用,删除时会报错。最好先切换到其他数据库。