1. 创建与管理数据库

空~2022年8月22日
  • MySQL
大约 5 分钟

1. 创建与管理数据库

数据库可以看成是一个存储数据对象的容器。这些数据对象包括表、视图、触发器、存储过程等。其中数据表是最基本的数据对象,用于存放数据。

命令行登录数据库:

mysql -u{username} -p{password}

使用:

show databases;

语句来查看当前所有存在的数据库。

创建数据库

在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下:

CREATE DATABASE [IF NOT EXISTS] <数据库名>

[[DEFAULT] CHARACTER SET <字符集名>]

[[DEFAULT] COLLATE <校对规则名>];

[]中的内容是可选的。语法说明如下:

  • <数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。

    提示

    在 MySQL 中不区分大小写。

  • IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
  • [DEFAULT] CHARACTER SET:指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
  • [DEFAULT] COLLATE:指定字符集的默认校对规则。

MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式。

最简单的创建 MySQL 数据库的语句。

在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句:

CREATE DATABASE test_db;

即可创建一个数据库,输入的 SQL 语句与执行结果如下。

202208222016304

Query OK, 1 row affected (0.12 sec);提示中,Query OK表示上面的命令执行成功,1 row affected表示操作只影响了数据库中一行的记录,0.01 sec则记录了操作执行的时间。

若再次输入:

CREATE DATABASE test_db;

语句,则系统会给出错误提示信息,如下所示:

202208222016632

提示不能创建test_db数据库,数据库已存在。MySQL 不允许在同一系统下创建两个相同名称的数据库。

可以加上IF NOT EXISTS从句,就可以避免类似错误,如下所示:

202208222017897

创建 MySQL 数据库时指定字符集和校对规则。

查看数据库支持的所有校对规则:

SHOW COLLATION;

使用 MySQL 命令行工具创建一个测试数据库,命名为 test_db_char,指定其默认字符集为 utf8,默认校对规则为 utf8_unicode_ci(简体中文,不区分大小写),输入的 SQL 语句与执行结果如下所示:

202208222017937

可以使用:

SHOW CREATE DATABASE

查看 test_db_char 数据库的定义声明。

管理数据库

选择数据库

在 MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。

在 MySQL 中,USE 语句用来完成一个数据库到另一个数据库的跳转。

当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格式为:

USE <数据库名>

该语句可以通知 MySQL 把<数据库名>所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到语段的结尾,或者直到遇见一个不同的 USE 语句。

只有使用 USE 语句来指定某个数据库作为当前数据库之后,才能对该数据库及其存储的数据对象执行操作。

  • 修改数据库

    在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。

    在 MySQL 中,可以使用:ALTER DATABASE来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:

ALTER DATABASE [数据库名] {

[ DEFAULT ] CHARACTER SET <字符集名> |

[ DEFAULT ] COLLATE <校对规则名>

}

语法说明如下:

  • ALTER DATABASE 用于更改数据库的全局特性。
  • 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
  • 数据库名称可以忽略,此时语句对应于默认数据库。
  • CHARACTER SET 子句用于更改默认的数据库字符集。

删除数据库

当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。

在 MySQL 中,当需要删除已创建的数据库时,可以使用 DROP DATABASE 语句。其语法格式为:

DROP DATABASE [ IF EXISTS ] <数据库名>

语法说明如下:

  • <数据库名>:指定要删除的数据库名。
  • IF EXISTS:用于防止当数据库不存在时发生错误。
  • DROP DATABASE:删除数据库中的所有表格并同时删除数据库。使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。

提示

MySQL 安装后,系统会自动创建名为 information_schemamysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果删除了这两个数据库,MySQL 将不能正常工作。

  1. 查看数据库

    在 MySQL 中,可使用 SHOW DATABASES 语句来查看或显示当前用户权限范围以内的数据库。查看数据库的语法格式为:

SHOW DATABASES [LIKE '数据库名'];

语法说明如下:

  • LIKE 从句是可选项,用于匹配指定的数据库名称。LIKE 从句可以部分匹配,也可以完全匹配。
  • 数据库名由单引号' '包围。