如何在MySQL Sakila数据库中高效查询电影租赁信息?

avatar
作者
猴君
阅读量:0

MySQL Sakila 数据库简介

如何在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) 姓氏
email 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,外键
email 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 关联。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!