setup_movies_db_zh.sql•4.91 kB
-- 电影数据库示例的设置脚本
-- 运行此脚本以创建示例的数据库和表
-- 创建数据库
CREATE DATABASE IF NOT EXISTS movies;
USE movies;
-- 如果表已存在则删除
DROP TABLE IF EXISTS movie_cast;
DROP TABLE IF EXISTS movie_genres;
DROP TABLE IF EXISTS movies;
DROP TABLE IF EXISTS actors;
DROP TABLE IF EXISTS genres;
-- 创建表
CREATE TABLE genres (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL UNIQUE
);
CREATE TABLE actors (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
birth_date DATE,
bio TEXT
);
CREATE TABLE movies (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
release_year INT,
rating DECIMAL(3,1),
director VARCHAR(100),
plot_summary TEXT,
runtime_minutes INT
);
CREATE TABLE movie_genres (
movie_id INT,
genre_id INT,
PRIMARY KEY (movie_id, genre_id),
FOREIGN KEY (movie_id) REFERENCES movies(id) ON DELETE CASCADE,
FOREIGN KEY (genre_id) REFERENCES genres(id) ON DELETE CASCADE
);
CREATE TABLE movie_cast (
movie_id INT,
actor_id INT,
character_name VARCHAR(100),
role ENUM('lead', 'supporting', 'cameo') DEFAULT 'supporting',
PRIMARY KEY (movie_id, actor_id, character_name),
FOREIGN KEY (movie_id) REFERENCES movies(id) ON DELETE CASCADE,
FOREIGN KEY (actor_id) REFERENCES actors(id) ON DELETE CASCADE
);
-- 插入示例数据
-- 电影类型
INSERT INTO genres (name) VALUES
('动作'),
('冒险'),
('动画'),
('喜剧'),
('犯罪'),
('纪录片'),
('剧情'),
('奇幻'),
('恐怖'),
('悬疑'),
('爱情'),
('科幻'),
('惊悚');
-- 演员
INSERT INTO actors (name, birth_date, bio) VALUES
('汤姆·汉克斯', '1956-07-09', '美国演员和电影制作人'),
('梅丽尔·斯特里普', '1949-06-22', '美国女演员'),
('莱昂纳多·迪卡普里奥', '1974-11-11', '美国演员和电影制作人'),
('詹妮弗·劳伦斯', '1990-08-15', '美国女演员'),
('丹泽尔·华盛顿', '1954-12-28', '美国演员、导演和制片人'),
('艾玛·斯通', '1988-11-06', '美国女演员'),
('布拉德·皮特', '1963-12-18', '美国演员和电影制作人'),
('维奥拉·戴维斯', '1965-08-11', '美国女演员和制作人'),
('小罗伯特·唐尼', '1965-04-04', '美国演员'),
('斯嘉丽·约翰逊', '1984-11-22', '美国女演员');
-- 电影
INSERT INTO movies (title, release_year, rating, director, plot_summary, runtime_minutes) VALUES
('肖申克的救赎', 1994, 9.3, '弗兰克·德拉邦特', '两个被监禁的男人在多年中建立友谊', 142),
('教父', 1972, 9.2, '弗朗西斯·福特·科波拉', '一个有组织犯罪王朝的老年家长将控制权转移给他的儿子', 175),
('盗梦空间', 2010, 8.8, '克里斯托弗·诺兰', '一个通过共享梦境技术窃取企业机密的窃贼', 148),
('阿甘正传', 1994, 8.8, '罗伯特·泽米吉斯', '一个智力低下但有良好意愿的人的生活旅程', 142),
('黑客帝国', 1999, 8.7, '沃卓斯基姐妹', '一个电脑黑客了解到现实的真相', 136),
('爱乐之城', 2016, 8.0, '达米恩·查泽雷', '一个钢琴家和一个女演员在追求梦想的同时相爱', 128),
('寄生虫', 2019, 8.6, '奉俊昊', '一个贫穷家庭设计成为一个富有家庭的雇员', 132),
('蝙蝠侠:黑暗骑士', 2008, 9.0, '克里斯托弗·诺兰', '蝙蝠侠面对小丑的最大挑战', 152),
('低俗小说', 1994, 8.9, '昆汀·塔伦蒂诺', '两个黑帮杀手、一个拳击手和一个黑帮老大妻子的生活交织', 154),
('玩具总动员', 1995, 8.3, '约翰·拉塞特', '一个牛仔玩偶受到新太空玩具到来的威胁', 81);
-- 电影类型关联
INSERT INTO movie_genres (movie_id, genre_id) VALUES
(1, 7), -- 肖申克:剧情
(2, 5), -- 教父:犯罪
(2, 7), -- 教父:剧情
(3, 1), -- 盗梦空间:动作
(3, 12), -- 盗梦空间:科幻
(3, 10), -- 盗梦空间:悬疑
(4, 7), -- 阿甘正传:剧情
(4, 11), -- 阿甘正传:爱情
(5, 1), -- 黑客帝国:动作
(5, 12), -- 黑客帝国:科幻
(6, 4), -- 爱乐之城:喜剧
(6, 7), -- 爱乐之城:剧情
(6, 11), -- 爱乐之城:爱情
(7, 4), -- 寄生虫:喜剧
(7, 7), -- 寄生虫:剧情
(7, 13), -- 寄生虫:惊悚
(8, 1), -- 黑暗骑士:动作
(8, 5), -- 黑暗骑士:犯罪
(8, 7), -- 黑暗骑士:剧情
(9, 5), -- 低俗小说:犯罪
(9, 7), -- 低俗小说:剧情
(10, 3), -- 玩具总动员:动画
(10, 2), -- 玩具总动员:冒险
(10, 4); -- 玩具总动员:喜剧
-- 电影演员关联
INSERT INTO movie_cast (movie_id, actor_id, character_name, role) VALUES
(4, 1, '福雷斯特·甘', 'lead'),
(6, 6, '米娅', 'lead'),
(3, 3, '科布', 'lead'),
(8, 5, '警探', 'supporting'),
(9, 7, '文森特·维加', 'lead'),
(5, 9, '尼奥', 'supporting'),
(7, 2, '家政妇', 'cameo'),
(10, 1, '胡迪', 'lead'),
(5, 10, '崔妮蒂', 'supporting'),
(3, 6, '阿里阿德涅', 'supporting');