sql语言实践之自学SQL网(SQL Lesson 0-7)

sql语言实践之自学SQL网(SQL Lesson 0-7)

这是一个目录


自学SQl网链接入口

SQL Lesson 0: SQL Lesson 0: 让我给SQL做个自我介绍

SQL lesson 0链接入口

练习 do it — 请完成如下任务

1.【初体验】这是第一题,请你先将左侧的输入框里的内容清空,然后请输入下面的SQL,您将看到所有电影标题:

SELECT title FROM movies

--请输入sql
SELECT title 
FROM movies;
2.【初体验】请输入如下SQL你将看到4条电影(切记先清空数据框且出错要耐心比对):

SELECT title,director FROM movies WHERE Id < 5

SELECT title,director 
FROM movies 
WHERE Id < 5
;
3.【初体验】输入如下SQL你将看到电影总条数:

SELECT count(*) FROM movies

SELECT count(*) 
FROM movies
;
4.【初体验】SQL可以直接做计算,下面的SQL计算1+1的和,请输入:

SELECT 1+1

SELECT 1+1
;

SQL Lesson 1: SELECT 查询 101

SQL lesson 1链接入口

练习 do it — 请完成如下任务

1.【简单查询】找到所有电影的名称title
SELECT title FROM movies;
2.【简单查询】找到所有电影的导演
SELECT Director FROM movies;
3.【简单查询】找到所有电影的名称和导演
SELECT title,Director FROM movies;
4.【简单查询】找到所有电影的名称和上映年份
SELECT Title,Year FROM movies;
;
5.【简单查询】找到所有电影的所有信息
SELECT * FROM movies;
;
6.【简单查询】找到所有电影的名称,Id和播放时长
SELECT Title,Id,Length_minutes FROM movies;

SQL Lesson 2: 条件查询(constraints)(Pt. 1)

SQL lesson 2链接入口

练习 do it — 请完成如下任务

1.【简单条件】找到id为6的电影
SELECT * 
FROM movies
WHERE Id=6
;
2.【简单条件】找到在2000-2010年间year上映的电影
SELECT * 
FROM movies
WHERE Year BETWEEN 2000 AND 2010
;
3.【简单条件】找到不是在2000-2010年间year上映的电影
SELECT * 
FROM movies
WHERE Year NOT BETWEEN 2000 AND 2010
;
4.【简单条件】找到头5部电影
SELECT * 
FROM movies
WHERE Id BETWEEN 1 AND 5
;
5.【简单条件】找到2010(含)年之后的电影里片长小于两个小时的片子
SELECT * 
FROM movies
WHERE Year>=2010 AND Length_minutes<120
;

SQL Lesson 3: 条件查询(constraints) (Pt. 2)

SQL lesson 3链接入口

练习 do it — 请完成如下任务

1.【复杂条件】找到所有Toy Story系列电影
SELECT * 
FROM movies
WHERE Title LIKE 'Toy Story%'
;
2.【复杂条件】找到所有John Lasseter导演的电影
SELECT * 
FROM movies
WHERE Director = 'John Lasseter'
;
3.【复杂条件】找到所有不是John Lasseter导演的电影
SELECT * 
FROM movies
WHERE Director <> 'John Lasseter'
;
4.【复杂条件】找到所有电影名为 “WALL-” 开头的电影
SELECT * 
FROM movies
WHERE Title LIKE 'WAL%'
;
5.【复杂条件】有一部98年电影中文名《虫虫危机》请给我找出来
SELECT * 
FROM movies
WHERE Year=1998 AND Title LIKE '%bug%'
;

SQL Lesson 4: 查询结果Filtering过滤 和 sorting排序

SQL lesson 4链接入口

练习 do it — 请完成如下任务

1.【结果排序】按导演名排重列出所有电影(只显示导演),并按导演名正序排列
SELECT DISTINCT Director
FROM movies
ORDER BY Director
;
2.【结果排序】列出按上映年份最新上线的4部电影
SELECT *
FROM movies
ORDER BY Year DESC
LIMIT 4 OFFSET 0
;
3.【结果排序】按电影名字母序升序排列,列出前5部电影
SELECT *
FROM movies
ORDER BY Title ASC
LIMIT 5 OFFSET 0
;
4.【结果排序】按电影名字母序升序排列,列出上一题之后的5部电影
SELECT *
FROM movies
ORDER BY Title ASC
LIMIT 5 OFFSET 5
;
5.【结果排序】如果按片长排列,John Lasseter导演导过片长第3长的电影是哪部,列出名字即可
SELECT Title
FROM movies
WHERE Director='John Lasseter'
ORDER BY length(Title)
LIMIT 1 OFFSET 4
;

SQL Review: 复习 SELECT 查询

SQL Review 链接入口

练习 do it — 请完成如下任务

1.【复习】列出所有加拿大人的Canadian信息(包括所有字段)
SELECT *
FROM north_american_cities
WHERE Country='Canada'
;
2.【复习】列出所有在Chicago西部的城市,从西到东排序(包括所有字段)
SELECT *
FROM north_american_cities
WHERE Longitude<(SELECT Longitude FROM north_american_cities WHERE City='Chicago')
ORDER BY Longitude 
;
3.【复习】用人口数population排序,列出墨西哥Mexico最大的2个城市(包括所有字段)
SELECT *
FROM north_american_cities
WHERE Country='Mexico'
ORDER BY population DESC
LIMIT 2 OFFSET 0
;
4.【复习】列出美国United States人口3-4位的两个城市和他们的人口(包括所有字段)
SELECT *
FROM north_american_cities
WHERE Country='United States'
ORDER BY Population DESC
LIMIT 2 OFFSET 2
;

SQL Lesson 6: 用JOINs进行多表联合查询

SQL Lesson 6 链接入口

练习 do it — 请完成如下任务

1.【联表】找到所有电影的国内Domestic_sales和国际销售额
SELECT * 
FROM movies INNER JOIN Boxoffice ON Id=Movie_id
;
2.【联表】找到所有国际销售额比国内销售大的电影
SELECT * 
FROM movies INNER JOIN Boxoffice ON Id=Movie_id
WHERE Domestic_sales<International_sales
;
3.【联表】找出所有电影按市场占有率rating倒序排列
SELECT * 
FROM movies INNER JOIN Boxoffice ON Id=Movie_id
ORDER BY Rating ASC
;
4.【联表】每部电影按国际销售额比较,排名最靠前的导演是谁,国际销量多少
SELECT Director,International_sales
FROM movies INNER JOIN Boxoffice ON Id=Movie_id
ORDER BY International_sales DESC
LIMIT 1
;

SQL Lesson 7: 外连接(OUTER JOINs)

SQL Lesson 7 链接入口

练习 do it — 请完成如下任务

1.【复习】找到所有有雇员的办公室(buildings)名字
SELECT DISTINCT Building_name
FROM  Buildings LEFT JOIN employees ON Building=Building_name
WHERE Name IS NOT NULL
;
2.【复习】找到所有办公室里的所有角色(包含没有雇员的),并做唯一输出(DISTINCT)
SELECT DiSTINCT Building_name,Role
FROM Buildings LEFT JOIN employees ON Building=Building_name
;
3.【难题】找到所有有雇员的办公室(buildings)和对应的容量
SELECT * 
FROM movies INNER JOIN Boxoffice ON Id=Movie_id
ORDER BY Rating ASC
;
4.【难题】找到所有有雇员的办公室(buildings)和对应的容量
SELECT DiSTINCT Building_name,Capacity
FROM Buildings LEFT JOIN employees ON Building=Building_name
WHERE Name IS NOT NULL
;

结尾 (其它参考答案)

sql语言实践之自学SQL网(SQL Lesson12)
sql语言实践之自学SQL网(SQL Lesson10,11)
sql语言实践之自学SQL网(SQL Lesson8,9)
sql语言实践之自学SQL网(SQL Lesson 0-7)

----------EOF----------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peng_YuJun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值