# MySQL教程 - 4 数据库操作
数据是保存在表中的,表是保存在数据库中的,所以首先学习的是数据库的操作,包括数据库的创建、删除等操作。
# 4.1 创建数据库
通过客户端软件,我们可以创建数据库,各个客户端软件操作大同小异,我这里使用 DBeaver
。
如下,右键新建数据库:
有的客户端软件可能叫 Create Schema,摸索一下,你可以的。
然后,填写数据库信息:
- 填写数据库的名称,我这里是
db_foooor
,名称自己定义,使用字母、数字、下划线,不能以数字开头。 字符集(Character Set)
:MySQL 中的utf8
并不是完整的 UTF-8 实现,它只能存储最多 3 个字节的字符,这意味着它无法表示所有的 Unicode 字符,所以是无法存储emoji
表情的,可以选择utf8mb4
,它是 MySQL 中完整的 UTF-8 实现,可以存储最多 4 个字节的字符。排序规则(Collation)
:表示排序规则,定义了数据库在进行文本比较和排序时的规则。它决定了在对字符串进行排序或比较时,哪些字符被认为是相等的,以及它们的排序顺序。
utf8mb4_unicode_ci:一种基于 Unicode 标准的排序规则,不区分大小写,
A
和a
在这种排序规则下是相等的。这种规则在处理多种语言的字符时,会按照语言习惯和 Unicode 标准来确定字符的顺序。utf8mb4_bin:一种严格区分大小写的二进制排序规则,直接根据字符的二进制值进行排序和比较。所以
A
和a
在这种排序规则下是不同的。因为是基于二进制编码,所以排序速度相对较快。urf8mb4_general_ci:一种不区分大小写的排序规则。它比 utf8mb4_unicode_ci 在排序上相对简单一些。在处理字符比较时,对于某些字符可能不会像 utf8mb4_unicode_ci 那样严格遵循 Unicode 标准的复杂规则,它在处理一些非 ASCII 字符时,可能会出现不符合某些语言习惯的排序情况。适用于对排序准确性要求不是极高的场景,并且需要不区分大小写的情况。
上面是使用客户端软件创建数据库,我们可以使用客户端软件创建库、创建表、修改表、添加数据等等的操作,但是这个课程主要讲解 SQL 的使用,所以后面就不介绍使用客户端软件怎么操作了,摸索一下就会了,你最棒!
使用 SQL 创建数据库,可以在客户端软件中打开 SQL 执行窗口:
在 SQL 窗口编写语句如下:
-- 创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名称 [CHARACTER SET 字符集名称] [COLLATE 排序规则名称];
-- 例如,创建 db_foooor 数据库
CREATE DATABASE db_foooor;
-- 例如,创建 db_foooor 数据库,并指定字符编码和排序规则
CREATE DATABASE db_foooor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 可以在创建的时候使用IF NOT EXISTS进行判断,不存在该数据库才创建
CREATE DATABASE IF NOT EXISTS db_foooor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2
3
4
5
6
7
8
9
10
11
这样就创建了一个 db_foooor
名称的数据库,有了库,就可以创建表了,这个后面再介绍。
MySQL8.0 不指定字符编码和排序规则,使用 utf8mb4
字符编码,排序规则是 utf8mb4_0900_ai_ci
,是 Unicode 9.0 标准,ai
表示不区分重音(Accent Insensitive)。ci
表示不区分大小写(Case Insensitive)。
有的时候,也会使用 create schema 命令创建数据库。
# 4.2 删除数据库
能创建自然能删除,使用如下命令就可以删除了:
-- 删除数据库
DROP DATABASE database_name;
-- 例如,删除db_foooor
DROP DATABASE db_foooor;
2
3
4
5
删除数据库是不可逆的操作 ,一旦数据库被删除,所有存储在其中的数据将永久丢失。所以在执行此操作之前,请确保已经备份了所有重要数据。
# 4.3 显示数据库
下面的命令可以查看 DBMS 管理了哪些数据:
-- 显示有哪些数据库
SHOW DATABASES; -- 这是MySQL中的命令,不同的数据库有区别
2
会显示已经存在的数据库,系统的数据库,不用管它:
# 4.4 使用数据库
可以使用如下命令使用某个数据库:
-- 切换数据库
USE database_name; -- 支持MySQL、MariaDB、SQL Server
-- 例如,使用db_foooor数据库
USE db_foooor;
2
3
4
5
USE database_name;
语句用于选择或切换到指定的数据库,使其成为当前会话的默认数据库。这意味着在后续的SQL语句中,如果不显式指定数据库名,操作将默认在当前选择的数据库上执行。例如查询操作的是当前数据库中的表。
我们在连接上数据库后,可以使用 USE
切换到指定的数据库,然后进行其他操作。
有时候无法确认当前使用的哪个数据库,可以下面的命令查看正在使用的是哪个数据库:
SELECT DATABASE(); -- 后面有括号
← 03-SQL语法规则 05-表操作 →