阅读量:0
MySQL Sakila 数据库简介
Sakila 是一个流行的开源数据库示例,用于演示如何在实际应用中使用 MySQL,它由五种主要的数据表组成,涵盖了电影租赁业务的基本需求,以下是对 Sakila 数据库的详细描述,包括数据表结构、字段信息以及表之间的关系。
1. 数据表结构
a. actor(演员表)
字段名 | 数据类型 | 说明 |
actor_id | smallint(5) | 演员ID,主键 |
first_name | varchar(45) | 名字 |
last_name | varchar(45) | 姓氏 |
last_update | timestamp | 最后更新时间 |
b. actor_info(演员信息表)
字段名 | 数据类型 | 说明 |
actor_id | smallint(5) | 演员ID,外键 |
info | text | 演员详细信息 |
c. address(地址表)
字段名 | 数据类型 | 说明 |
address_id | smallint(5) | 地址ID,主键 |
address | varchar(50) | 地址 |
district | varchar(20) | 区域 |
city_id | smallint(5) | 城市ID,外键 |
postal_code | varchar(10) | 邮编 |
phone | varchar(20) | 电话 |
last_update | timestamp | 最后更新时间 |
d. category(分类表)
字段名 | 数据类型 | 说明 |
category_id | smallint(5) | 分类ID,主键 |
name | varchar(25) | 分类名称 |
last_update | timestamp | 最后更新时间 |
e. city(城市表)
字段名 | 数据类型 | 说明 |
city_id | smallint(5) | 城市ID,主键 |
city | varchar(50) | 城市名称 |
country_id | smallint(5) | 国家ID,外键 |
last_update | timestamp | 最后更新时间 |
f. country(国家表)
字段名 | 数据类型 | 说明 |
country_id | smallint(5) | 国家ID,主键 |
country | varchar(50) | 国家名称 |
last_update | timestamp | 最后更新时间 |
g. customer(客户表)
字段名 | 数据类型 | 说明 |
customer_id | smallint(5) | 客户ID,主键 |
first_name | varchar(45) | 名字 |
last_name | varchar(45) | 姓氏 |
varchar(50) | 邮箱 | |
address_id | smallint(5) | 地址ID,外键 |
active | tinyint(1) | 是否活跃 |
create_date | date | 创建日期 |
last_update | timestamp | 最后更新时间 |
h. film(电影表)
字段名 | 数据类型 | 说明 |
film_id | smallint(5) | 电影ID,主键 |
title | varchar(255) | 电影标题 |
description | text | 电影描述 |
release_year | year | 发行年份 |
language_id | smallint(5) | 语言ID,外键 |
original_language_id | smallint(5) | 原始语言ID,外键 |
rental_duration | tinyint(3) | 租赁时长 |
length | smallint(3) | 片长(分钟) |
rating | enum('G','PG','PG13','R','NC17','PG','NR') | 评级 |
special_features | char(1) | 特殊特性(如“Trailers”) |
last_update | timestamp | 最后更新时间 |
i. film_actor(电影与演员关系表)
字段名 | 数据类型 | 说明 |
actor_id | smallint(5) | 演员ID,外键 |
film_id | smallint(5) | 电影ID,外键 |
last_update | timestamp | 最后更新时间 |
j. film_category(电影与分类关系表)
字段名 | 数据类型 | 说明 |
film_id | smallint(5) | 电影ID,外键 |
category_id | smallint(5) | 分类ID,外键 |
last_update | timestamp | 最后更新时间 |
k. inventory(库存表)
字段名 | 数据类型 | 说明 |
inventory_id | smallint(5) | 库存ID,主键 |
film_id | smallint(5) | 电影ID,外键 |
store_id | smallint(5) | 店铺ID,外键 |
last_update | timestamp | 最后更新时间 |
l. language(语言表)
字段名 | 数据类型 | 说明 |
language_id | smallint(5) | 语言ID,主键 |
name | varchar(20) | 语言名称 |
last_update | timestamp | 最后更新时间 |
m. payment(支付表)
字段名 | 数据类型 | 说明 |
payment_id | smallint(5) | 支付ID,主键 |
customer_id | smallint(5) | 客户ID,外键 |
staff_id | smallint(5) | 员工ID,外键 |
rental_id | smallint(5) | 租赁ID,外键 |
amount | decimal(10,4) | 金额 |
payment_date | date | 支付日期 |
last_update | timestamp | 最后更新时间 |
n. rental(租赁表)
字段名 | 数据类型 | 说明 |
rental_id | smallint(5) | 租赁ID,主键 |
rental_date | date | 租赁日期 |
inventory_id | smallint(5) | 库存ID,外键 |
customer_id | smallint(5) | 客户ID,外键 |
return_date | date | 返回日期 |
staff_id | smallint(5) | 员工ID,外键 |
last_update | timestamp | 最后更新时间 |
o. staff(员工表)
字段名 | 数据类型 | 说明 |
staff_id | smallint(5) | 员工ID,主键 |
first_name | varchar(45) | 名字 |
last_name | varchar(45) | 姓氏 |
address_id | smallint(5) | 地址ID,外键 |
varchar(50) | 邮箱 | |
store_id | smallint(5) | 店铺ID,外键 |
active | tinyint(1) | 是否活跃 |
username | varchar(16) | 用户名 |
password | varchar(40) | 密码(加密存储) |
last_update | timestamp | 最后更新时间 |
p. store(店铺表)
字段名 | 数据类型 | 说明 |
store_id | smallint(5) | 店铺ID,主键 |
manager_id | smallint(5) | 管理员ID,外键 |
address_id | smallint(5) | 地址ID,外键 |
last_update | timestamp | 最后更新时间 |
2. 表之间的关系
actor 和 film_actor 表通过 actor_id 关联。
film 和 film_category 表通过 film_id 关联。
address 和 customer 表通过 address_id 关联。
film 和 inventory 表通过 film_id 关联。