Sakila 数据库

市面上最好的示例数据库之一是 Sakila 数据库,它最初由 MySQL 创建,并已根据 BSD 许可证 的条款开源。

Sakila 数据库是一个很好的规范化模式,用于模拟 DVD 租赁商店,其中包含电影、演员、电影-演员关系以及连接电影、商店和租赁的中央库存表。

The Sakila Database ERD

该数据库允许执行如下的出色示例查询,例如查找拥有电影数量最多的演员(PostgreSQL 语法)

SELECT first_name, last_name, count(*) films
FROM actor AS a
JOIN film_actor AS fa USING (actor_id)
GROUP BY actor_id, first_name, last_name
ORDER BY films DESC
LIMIT 1;

 

first_name    last_name    films
--------------------------------
GINA          DEGENERES       42

或者,让我们计算所有商店的累计收入(PostgreSQL 语法)

SELECT payment_date, amount, sum(amount) OVER (ORDER BY payment_date)
FROM (
  SELECT CAST(payment_date AS DATE) AS payment_date, SUM(amount) AS amount
  FROM payment
  GROUP BY CAST(payment_date AS DATE)
) p
ORDER BY payment_date;

 

payment_date       amount         sum
-------------------------------------
2005-05-24          29.92       29.92
2005-05-25         573.63      603.55
2005-05-26         754.26     1357.81
2005-05-27         685.33     2043.14
2005-05-28         804.04     2847.18
2005-05-29         648.46     3495.64
2005-05-30         628.42     4124.06
2005-05-31         700.37     4824.43
2005-06-14          57.84     4882.27
2005-06-15        1376.52     6258.79
2005-06-16        1349.76     7608.55
2005-06-17        1332.75     8941.30
...

想尝试 Sakila 数据库吗?我们在 GitHub 上托管了原始数据库的几个移植版本,包括以下版本的数据库:

  • DB2
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server
  • SQLite
The jOOQ Logo