文章目录
Sakila 数据库
Employees 数据库
world 数据库
world_x 数据库
menagerie 数据库
总结
今天给大家介绍几个我在 MySQL 学习过程中常用的几个示例数据库。
MySQL 官方网站提供了以下几个示例数据库:Sakila、Employees、world、world_x 以及 menagerie。这些数据库既可以用于日常学习和测试,也可以作为我们设计时数据库的一个参考。本文就来介绍一下这些数据库的模式结构以及如何下载和安装。
Sakila 数据库
Sakila 是一个在线 DVD 出租商店数据库,为各种 MySQL 文档、书籍、教程、文章、示例等提供了一个标准数据库模式;同时,它还可以用于演示 MySQL 的其他功能特性,例如视图、存储过程和触发器。Sakila 数据库的模式结构如下图所示:
Sakila 数据库提供了以下数据表:
actor,演员信息表。通过 film_actor 表和 film 表进行关联。
film,电影信息表。film 引用了 language 表,同时被 film_category、film_actor 以及 inventory 表引用。
film_actor,电影演员表。film 表和 actor 表之间的多对多关系。
film_category,电影分类表。film 表和 category 表之间的多对多关系。
category,分类表。通过 film_category 表和 film 表进行关联。
inventory,电影库存表。每部电影在不同商店里的库存,被 rental 表引用。
film_text,电影描述表。包含了 film 表中的 film_id、title 以及 description 三个字段,通过 film 表上的触发器进行数据同步。
language,语言信息表。language 表被 film 表引用。
address,地址信息表。其中主键字段 address_id 是 customer、staff 以及 store 表上的外键引用字段,同时引用了 city 表。
city,城市信息表。引用了 country 表,同时被 address 表引用。
country,国家信息表。country 表被 city 表引用。
customer,客户信息表。引用了 address 和 store 表,同时被 payment 和 rental 表引用。
payment,付款信息表。引用了 customer、staff 以及 rental 表。
rental,租赁信息表,每个 DVD 每次被租赁的信息。引用了 inventory、customer 以及 staff 表,同时被 payment 表引用。
staff,员工信息表。引用了 store 和 address 表,同时被 rental、payment 以及 store 表引用。
store,商店信息表,引用了 staff 和 address 表,同时被 staff、customer 以及 inventory 表引用。
Sakila 数据库提供了以下视图:
actor_info,包含了所有的演员,以及他们演出过的电影。
customer_list,客户和地址信息列表。
film_list,电影信息和参与的演员。
nicer_but_slower_film_list,电影信息和参与的演员,演员的姓名调整为首字母大写。
sales_by_film_category,按照不同电影分类统计的销售金额,同一个电影可能被分为多个类别。
sales_by_store,按照商店统计的销售金额。
staff_list,员工列表,包括地址和所属的商店。
Sakila 数据库提供了以下存储过程和函数:
film_in_stock,存储过程,获取指定电影在指定商店内未出租的 DVD。