📅  最后修改于: 2023-12-03 14:41:11.458000             🧑  作者: Mango
FILM 数据库是一个典型的电影数据库,包含了电影、演员、导演等多个实体。在使用 SQL 对 FILM 数据库进行查询时,可以实现很多有趣的功能,如查找某个演员的所有电影、列出所有电影的评分排序等等。
下面是一些常见的 SQL 查询,可以为程序员提供一些灵感。
要查询某个演员出演的所有电影,可以使用下面的 SQL 语句:
SELECT film.title FROM film
JOIN film_actor ON film.film_id = film_actor.film_id
JOIN actor ON film_actor.actor_id = actor.actor_id
WHERE actor.first_name = 'Tom' AND actor.last_name = 'Hanks';
这个查询基于演员的名字,通过多个表之间的 JOIN 操作关联了电影和演员实体,最后只返回关联到的电影的标题。
要按照电影评分进行排序,可以这样做:
SELECT title, rating FROM film
ORDER BY rating DESC;
这个查询简单明了,只需要通过 ORDER BY
子句按评分倒序排序即可。
要查询某个导演拍摄的电影数量,可以使用这个 SQL 语句:
SELECT COUNT(*) FROM film
JOIN film_director ON film.film_id = film_director.film_id
JOIN director ON film_director.director_id = director.director_id
WHERE director.first_name = 'Martin' AND director.last_name = 'Scorsese';
这个查询使用了 COUNT(*)
函数来计算结果集的数量,通过 JOIN 操作把电影和导演实体关联起来,并按照导演名字进行筛选。
要查询某个电影的演员列表,可以使用下面的 SQL 语句:
SELECT actor.first_name, actor.last_name FROM actor
JOIN film_actor ON actor.actor_id = film_actor.actor_id
JOIN film ON film_actor.film_id = film.film_id
WHERE film.title = 'Forrest Gump';
这个查询使用了 JOIN 操作把演员、电影和电影-演员映射表关联起来,并按照电影名字进行查询,最终只返回那些关联到该电影的演员列表。
要查询某个类型的电影,可以使用下面的 SQL 语句:
SELECT title, category.name FROM film
JOIN film_category ON film.film_id = film_category.film_id
JOIN category ON film_category.category_id = category.category_id
WHERE category.name = 'Comedy'
ORDER BY film.title ASC;
这个查询使用了 JOIN 操作关联电影和电影-类型映射表,并按照类型名字进行查询,最终只返回那些关联到该类型的电影。此外,还使用了 ORDER BY
子句按照电影标题的字母升序排序。
要查询电影的详细信息,可以使用下面的 SQL 语句:
SELECT film.title, film.description, language.name AS language,
category.name AS category, film.rental_rate,
film.length, film.release_year, film.rating
FROM film
JOIN language ON film.language_id = language.language_id
JOIN film_category ON film.film_id = film_category.film_id
JOIN category ON film_category.category_id = category.category_id
WHERE film.title = 'Pulp Fiction';
这个查询使用了多个 JOIN 操作,将电影、语言、类型等多个实体关联起来,并按照电影名字进行筛选。最终返回了一份详细的电影信息列表。
以上是 FILM 数据库上的一些常见 SQL 查询,它们涉及到了 JOIN 操作、聚合函数、排序以及多个表之间的关联等多种功能。在实际的开发过程中,程序员可以根据需求灵活运用这些查询,从而让应用程序更加丰富多彩。