大家好!我是只谈技术不剪发的 Tony 老师。今天给大家介绍几个我在 MySQL 学习过程中常用的几个示例数据库。
MySQL 官方网站提供了以下几个示例数据库:Sakila、Employees、world、world_x 以及 menagerie。这些数据库既可以用于日常学习和测试,也可以作为我们设计时数据库的一个参考。本文就来介绍一下这些数据库的模式结构以及如何下载和安装。
Sakila 是一个在线 DVD 出租商店数据库,为各种 MySQL 文档、书籍、教程、文章、示例等提供了一个标准数据库模式;同时,它还可以用于演示 MySQL 的其他功能特性,例如视图、存储过程和触发器。Sakila 数据库的模式结构如下图所示:
Sakila 数据库提供了以下数据表:
Sakila 数据库提供了以下视图:
Sakila 数据库提供了以下存储过程和函数:
Sakila 数据库包含了以下触发器:
Sakila 数据库的创建脚本可以点此下载,然后运行以下命令创建数据库并初始化数据:
1 shell> mysql -t < sakila-schema.sql; 2 3 shell> mysql -t < sakila-data.sql;
创建成功之后,可以执行以下语句进行验证:
1 mysql> USE sakila; 2 Database changed 3 4 mysql> SHOW FULL TABLES; 5 +----------------------------+------------+ 6 | Tables_in_sakila | Table_type | 7 +----------------------------+------------+ 8 | actor | BASE TABLE | 9 | actor_info | VIEW | 10 | address | BASE TABLE | 11 | category | BASE TABLE | 12 | city | BASE TABLE | 13 | country | BASE TABLE | 14 | customer | BASE TABLE | 15 | customer_list | VIEW | 16 | film | BASE TABLE | 17 | film_actor | BASE TABLE | 18 | film_category | BASE TABLE | 19 | film_list | VIEW | 20 | film_text | BASE TABLE | 21 | inventory | BASE TABLE | 22 | language | BASE TABLE | 23 | nicer_but_slower_film_list | VIEW | 24 | payment | BASE TABLE | 25 | rental | BASE TABLE | 26 | sales_by_film_category | VIEW | 27 | sales_by_store | VIEW | 28 | staff | BASE TABLE | 29 | staff_list | VIEW | 30 | store | BASE TABLE | 31 +----------------------------+------------+ 32 23 rows in set (0.01 sec) 33 34 mysql> SELECT COUNT(*) FROM film; 35 +----------+ 36 | COUNT(*) | 37 +----------+ 38 | 1000 | 39 +----------+ 40 1 row in set (0.00 sec) 41 42 mysql> SELECT COUNT(*) FROM film_text; 43 +----------+ 44 | COUNT(*) | 45 +----------+ 46 | 1000 | 47 +----------+ 48 1 row in set (0.00 sec)
关于 Sakila 数据库的详细介绍和使用可以查看官方文档。
Employees 示例数据库包含了 6 个表(dept_emp、dept_manager、titles、salaries、employees 以及 departments),大约 400 万条数据(需要约 160 MB 磁盘空间)。Employees 数据库的模式结构如下图所示:
Employees 数据库支持分区表。另外,它还提供了一个数据测试的脚本,可以用于验证初始数据的完整性。
Employees 数据库的初始化脚本可以点此下载,然后运行以下命令进行解压缩:
1 shell> unzip test_db-master.zip 2 shell> cd test_db-master/
Employees 数据库默认使用 InnoDB 存储引擎,如果需要使用其他引擎,可以修改 employees.sql 文件中的以下内容:
1 /*!50503 set default_storage_engine = InnoDB */;
然后执行以下命令创建数据库并加载数据:
1 shell> mysql -t < employees.sql