SQLZOO More JOIN

1、列出1962年首影的電影, [顯示 id, title]。

SELECT  id,title
 FROM movie
 WHERE yr=1962;

2、電影大國民 ‘Citizen Kane’ 的首影年份。

select yr from movie where title =  'Citizen Kane' ;

3、列出全部Star Trek星空奇遇記系列的電影,包括id, title 和 yr(此系統電影都以Star Trek為電影名稱的開首)。按年份順序排列。

select id,title,yr from movie
where title like 'Star Trek%'
order by yr;

4、id是 11768, 11955, 21191 的電影是什麼名稱?

select title from movie where id in (11768, 11955, 21191);

5、女演員’Glenn Close’的編號 id是什麼?

select id from actor where name='Glenn Close';

6、電影北非諜影’Casablanca’ 的編號 id是什麼?

select id from movie where title = 'Casablanca' ;

7、列出電影北非諜影 'Casablanca’的演員名單。


select name from actor 
where id in 
(select distinct actorid from actor a
join casting c on a.id = c.movieid
where movieid=11768);

8、顯示電影異型’Alien’ 的演員清單。

select name from actor 
where id in (
select actorid from casting c join movie m on movieid = id
where id = (
select id from movie where title like 'Alien' 
));

9、列出演員夏里遜福 ‘Harrison Ford’ 曾演出的電影。

select title from movie m join casting c on m.id= c.movieid
join actor a on c.actorid = a.id
where  a.name = 'Harrison Ford' ;

10、列出演員夏里遜福 ‘Harrison Ford’ 曾演出的電影,但他不是第1主角。

select title from movie where
id in (select distinct movieid from casting 
join actor on actorid = id
where name = 'Harrison Ford'  and ord <> 1);

11、列出1962年首影的電影及它的第1主角。

select m.title,a.name from movie m
join casting c on m.id = c.movieid
join actor a on c.actorid = a.id
where m.yr = 1962 and c.ord = 1;

12、尊·特拉華達’John Travolta’最忙是哪一年? 顯示年份和該年的電影數目。

SELECT yr, COUNT(title) 
FROM movie 
JOIN casting ON movie.id=movieid
JOIN actor ON actorid=actor.id
WHERE name='John Travolta'
GROUP BY yr HAVING COUNT(title)=(
  SELECT MAX(c) FROM (
    SELECT yr,COUNT(title) AS c 
    FROM movie 
    JOIN casting ON movie.id=movieid
    JOIN actor   ON actorid=actor.id
    WHERE name='John Travolta'
    GROUP BY yr) AS t)

12、列出演員茱莉·安德絲’Julie Andrews’曾參與的電影名稱及其第1主角。

select title,name from movie join casting on movie.id =  movieid
join actor on actorid = actor.id
where movie.id in 
(SELECT movieid FROM casting
WHERE actorid IN (
  SELECT id FROM actor
  WHERE name='Julie Andrews' )) and casting.ord = 1;

14、列出按字母順序,列出哪一演員曾作30次第1主角。

select name from 
(select name,count(actorid) from actor 
join casting on id= actorid
where ord= 1
group by name
having count(actorid) >= 30
order by name) as t;

15、列出1978年首影的電影名稱及角色數目,按此數目由多至少排列。

select title,a from movie join
 (select id ,count(actorid) as a from movie
join casting on id= movieid
where yr = 1978
group by id
) as t  using (id)
order by a desc;
### SQLZOO 使用指南 SQLZOO 是一个在线学习 SQL 的平台,提供了一系列的练习题和教程,帮助用户掌握 SQL 查询语言。以下是关于 SQLZOO 的使用方法及教程内容的详细介绍。 #### 1. 平台概述 SQLZOO 提供了从基础到高级的 SQL 学习路径,涵盖了 SELECT 基础、JOIN 操作、聚合函数(如 SUM 和 COUNT)、NULL 处理以及更多复杂查询技巧。用户可以通过其提供的交互式界面直接编写和运行 SQL 代码[^1]。 #### 2. 主要教程模块 以下是 SQLZOO 的主要教程模块及其功能描述: - **SELECT 基础** 这一模块专注于 SQL 中最基本的 SELECT 语句,帮助用户理解如何从数据库中提取数据[^2]。 - **SELECT from WORLD Tutorial** 在这一部分,用户将学习如何从一个名为 `WORLD` 的数据库中查询国家信息,例如人口、面积等[^2]。 - **SELECT from Nobel Tutorial** 该模块通过诺贝尔奖得主的数据集,教授如何进行条件筛选和排序操作[^2]。 - **SELECT within SELECT Tutorial** 教授嵌套查询的用法,即在一个查询中使用另一个查询的结果作为条件[^2]。 - **SUM and COUNT** 针对聚合函数的使用,包括统计总数、求和等功能。 - **The JOIN operation** 讲解如何使用 JOIN 将多个表的数据组合在一起。 - **More JOIN operations** 深入探讨更复杂的 JOIN 操作,例如 LEFT JOIN、RIGHT JOIN 等。 - **Using Null** 介绍如何处理数据库中的 NULL 值,包括判断和替换 NULL 的方法[^2]。 - **Self join** 展示如何在同一个表内进行自连接操作,以解决特定的查询需求。 #### 3. 注意事项 - SQL 不区分大小写,因此在书写时可以灵活调整格式[^1]。 - 如果遇到中文版题目检测有误的情况,建议切换至英文原版进行验证。 - 对于字符串连接操作,可以使用 `CONCAT` 函数,但需要注意任一参数为 NULL 时,结果也会是 NULL[^3]。 #### 4. 示例代码 以下是一个简单的 SQL 查询示例,展示如何从 `world` 数据库中查找包含所有元音字母且不包含空格的国家名称: ```sql SELECT name FROM world WHERE name LIKE '%a%' AND name LIKE '%e%' AND name LIKE '%i%' AND name LIKE '%o%' AND name LIKE '%u%' AND name NOT LIKE '% %'; ``` 此代码片段来源于 SQLZOO 的练习题之一[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值