MySQL Sakila数据库

Sakila是一个示例数据库,它是由MySQL官方提供的,主要用于学习和测试,这个数据库模拟了一个电影租赁商店的业务模型,其中包含了关于城市、电影、客户、员工、库存和租赁等的相关信息。
数据库结构
在Sakila数据库中,有16个表,每个表都有其特定的用途和功能,以下是一些主要表的简要描述:
actor: 存储演员的信息,如姓名、首字母等。
film: 存储电影的信息,如标题、替换成本、租赁时长等。
customer: 存储顾客的信息,如姓名、地址、邮件地址等。
rental: 存储租赁信息,包括租赁日期和时间,以及返回日期和时间。
staff: 存储员工信息,如姓名、地址、工资等。
store: 存储商店信息,如地址、经理的员工ID等。
查询实例
以下是一个查询实例,用于查找在2005年9月1日之后注册的所有客户:

SELECT * FROM customer WHERE create_date > '2005-09-01';
另一个实例是查找所有"Action"类别的电影:
SELECT * FROM film WHERE replacement_cost = 12.99 AND title LIKE '%ACTION%';
常见问题与解答
Q1: Sakila数据库中的'film'表有哪些字段?
A1: 'film'表有以下字段:
film_id: 影片的唯一标识符。
title: 影片的标题。
description: 影片的描述。
release_year: 影片的发行年份。
language_id: 影片的语言。
original_language_id: 影片的原始语言。
rental_duration: 影片的租赁时长。

rental_rate: 影片的租赁费率。
length: 影片的长度。
replacement_cost: 影片的替换成本。
rating: 影片的评级。
special_features: 影片的特殊特性。
last_update: 最后一次更新的时间戳。
Q2: 如何查找Sakila数据库中所有的员工和他们所在的商店?
A2: 你可以使用以下的SQL查询来找出所有的员工和他们所在的商店:
SELECT staff.first_name, staff.last_name, store.store_id FROM staff JOIN store ON staff.store_id = store.store_id;
这个查询首先从staff表中选择员工的名和姓,然后使用JOIN操作将staff表和store表连接起来,通过匹配staff表中的store_id和store表中的store_id,这样就可以得到每个员工所在的商店ID。