mysql菜鸟教程

首页 >> mysql菜鸟教程

4.1 创建你的第一个数据库

在MySQL中,数据库就像一个专门存放数据的“逻辑仓库”或“容器”,所有数据表都存放在这个容器里。创建数据库,就是为你的数据搭建一个专属的家。

一、核心命令:CREATE DATABASE

创建数据库最核心、最基础的命令就是 CREATE DATABASE。其完整语法结构如下:

CREATE DATABASE [IF NOT EXISTS] 数据库名
    [CHARACTER SET 字符集名称]
    [COLLATE 排序规则名称];

理解这个命令

  • CREATE DATABASE 数据库名:这是命令的骨架,意思是“创建一个名为[数据库名]的数据库”。

  • [IF NOT EXISTS]:一个贴心的“安全开关”。如果指定名称的数据库已经存在,加上这个选项后,MySQL会显示一个警告而非错误,避免中断后续脚本的执行。对于新手,非常推荐养成使用它的习惯

  • [CHARACTER SET ...]:为数据库设置字符集,决定可以存储哪些字符(如utf8mb4支持所有Unicode字符,包括中文、表情符号)。

  • [COLLATE ...]:为数据库设置排序规则,决定字符串比较和排序的规则(如是否区分大小写、重音)。


二、开始创建:从最简单的命令入手

让我们从最直接的方式开始。假设你想创建一个名为 my_first_db 的数据库,只需在 mysql> 命令行中输入:

CREATE DATABASE my_first_db;

执行后,如果看到提示 Query OK, 1 row affected (0.01 sec),就表示数据库创建成功了!简单吧?

更安全的方式:使用 IF NOT EXISTS

为了避免因数据库已存在而导致的错误,更稳健的写法是:

CREATE DATABASE IF NOT EXISTS my_first_db;

这样,即使 my_first_db 已经存在,命令也会顺利执行(显示一个警告),而不会报错。

指定字符集,让数据库“读懂”中文

在MySQL 5.7及更早版本中,默认字符集可能不支持完整的中文存储(如默认的 latin1 字符集)。为了确保万无一失,强烈建议在创建数据库时明确指定使用 utf8mb4 字符集。这是MySQL 8.0的默认设置,它能完美支持包括中文在内的所有Unicode字符。

CREATE DATABASE IF NOT EXISTS my_first_db 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;
  • CHARACTER SET utf8mb4:设置字符集为 utf8mb4

  • COLLATE utf8mb4_unicode_ci:设置排序规则为 utf8mb4_unicode_ci。这个规则是“不区分大小写(ci, Case Insensitive)的Unicode通用排序规则”,很适合中文和英文混合的场景。


三、查看与选择:确认并使用你的数据库

创建完成后,你肯定想看看它,然后开始使用它。

1. 查看所有数据库

使用 SHOW DATABASES; 命令,可以列出当前MySQL服务器上所有的数据库。

SHOW DATABASES;

你会发现,除了你刚创建的 my_first_db,列表里还有 information_schemamysqlperformance_schemasys 等系统自带的数据库。

2. 选择(进入)一个数据库

要在一个数据库里创建表或查询数据,必须先“进入”这个数据库,或者说“选择”它作为当前的工作上下文。使用 USE 命令:

USE my_first_db;

执行成功后,提示符可能会变化(某些客户端会显示数据库名),或者简单地显示 Database changed。这意味着后续所有操作(如建表)默认都会在这个数据库内进行。

你可以随时用 SELECT DATABASE(); 命令来查看当前正在使用哪个数据库

3. 删除一个数据库(请谨慎操作!)

如果某个数据库不再需要,可以使用 DROP DATABASE 命令删除它。这个操作会永久删除数据库及其内部所有数据,且无法撤销,请务必谨慎!

-- 删除数据库(危险!请确认后再执行)
DROP DATABASE my_first_db;

-- 更安全的删除方式(如果存在才删除)
DROP DATABASE IF EXISTS my_first_db;


四、完整实战:创建一个“图书管理系统”数据库

让我们通过一个连贯的案例,把上面的知识点串起来。假设你要为一个小型图书馆创建一个数据库。

1.第一步:创建数据库

-- 创建一个名为 `library` 的数据库,并确保它能完美支持中文
CREATE DATABASE IF NOT EXISTS library 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

2.第二步:查看是否成功

SHOW DATABASES;

在输出的列表中,你应该能找到 library

3.第三步:选择并开始使用

USE library;
SELECT DATABASE(); -- 确认当前数据库已切换为 `library`

恭喜!现在你已经在 library 数据库的“工作区”里了。接下来,你就可以在这个库里创建“图书表”、“读者表”、“借阅记录表”等等。


五、命令总结与最佳实践

任务

命令

说明与技巧

创建数据库

CREATE DATABASE db_name;

基础命令,如果数据库已存在会报错。

安全创建

CREATE DATABASE IF NOT EXISTS db_name ...;

推荐

,避免因重复创建导致的脚本中断。

指定字符集

... CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

强烈推荐

,确保数据库支持全球所有语言字符。

查看所有库

SHOW DATABASES;

列出服务器上的所有数据库。

选择数据库

USE db_name;

切换当前工作数据库,是执行建表等操作的前置步骤。

查看当前库

SELECT DATABASE();

显示当前正在使用的数据库名称。

删除数据库

DROP DATABASE db_name;

高危操作

,会永久删除整个数据库及其所有数据。

给初心的最佳实践建议:

  1. 命名规范:数据库名最好使用小写字母、数字和下划线的组合,做到见名知意(如 school_dbecommerce_platform)。

  2. 安全第一:在写SQL脚本时,对 CREATE 和 DROP 这类操作尽量加上 IF NOT EXISTS 或 IF EXISTS,让你的脚本更健壮。

  3. 字符集统一:除非有特殊需求,否则创建数据库时请坚持使用 CHARACTER SET utf8mb4,这是避免中文乱码的最佳保障。

  4. 先选择,后操作:记住,在创建表之前,一定要先用 USE 数据库名; 命令切换到目标数据库。

你已经成功迈出了管理数据的第一步——创建了一个专属的数据容器。这就像为你的信息世界打下了一块坚实的地基。


发表评论

昵称:
联系方式:
评论内容:

所有评论

关于我 备案号:蜀ICP备2023042032号-1