最近发现了一个SQL 在线练习平台:http://xuesql.cn/
题目难度比较有层次,适合用来巩固SQL相关知识,花了两天的时间把平台所有的题目刷了一遍,还挺有收获的。
SQL Lesson 1: SELECT 查询 101
这部分整体非常简单,中间进行相同操作的题目省略了
1.找到所有电影的名称title
1
| SELECT title FROM movies;
|
5.找到所有电影的所有信息
7.请列出所有电影的ID,名称和出版国(即美国)
1 2
| SELECT Id,Title,"美国" Country FROM movies;
|
SQL Lesson 2: 条件查询 (constraints) (Pt. 1)
1.找到id为6的电影
1
| SELECT * FROM movies WHERE id=6;
|
2.找到在2000-2010年间year上映的电影
1
| SELECT * FROM movies WHERE Year>=2000 AND Year<=2010;
|
3.找到不是在2000-2010年间year上映的电影
1
| SELECT * FROM movies WHERE Year<2000 OR Year>2010;
|
4.找到头5部电影
1
| SELECT * FROM movies LIMIT 5;
|
5.找到2010(含)年之后的电影里片长小于两个小时的片子
1
| SELECT * FROM movies WHERE Year>=2010 AND Length_minutes<120;
|
6.找到99年和09年的电影,只要列出年份和片长看下
1
| SELECT Year,Length_minutes FROM movies WHERE Year=1999 OR Year=2009;
|
SQL Lesson 3: 条件查询(constraints) (Pt. 2)
1.找到所有Toy Story系列电影
1
| SELECT * FROM movies WHERE Title LIKE "Toy Story%";
|
2.找到所有John Lasseter导演的电影
1
| SELECT * FROM movies WHERE Director="John Lasseter";
|
3.找到所有不是John Lasseter导演的电影
1
| SELECT * FROM movies WHERE Director!="John Lasseter";
|
4.找到所有电影名为 “WALL-“ 开头的电影
1
| SELECT * FROM movies WHERE Title LIKE "WALL-%";
|
5.有一部98年电影中文名《虫虫危机》请给我找出来
1
| SELECT * FROM movies WHERE Year=1998;
|
6.找出所有Pete导演的电影,只要列出电影名,导演名和年份就可以
1
| SELECT Title,Director,Year FROM movies WHERE Director LIKE "Pete%";
|
7.John Lasseter导演了两个系列,一个Car系列一个Toy Story系列,请帮我列出这John Lasseter导演两个系列千禧年之后的电影
1
| SELECT * FROM movies WHERE Year>=2000 AND Director="John Lasseter";
|
SQL Lesson 4: 查询结果Filtering过滤 和 sorting排序
1.导演名排重列出所有电影,并按导演名正序排列
1
| SELECT DISTINCT Director FROM movies ORDER BY Director;
|
2.列出按上映年份最新上线的4部电影
1
| SELECT * FROM movies ORDER BY Year DESC LIMIT 4;
|
3.按电影名字母序升序排列,列出前5部电影
1
| SELECT * FROM movies ORDER BY Title LIMIT 5;
|
4.按电影名字母序升序排列,列出上一题之后的5部电影
1
| SELECT * FROM movies ORDER BY Title LIMIT 5,5;
|
5.如果按片长排列,John Lasseter导演导过片长第3长的电影是哪部,列出名字即可
1 2 3
| SELECT Title FROM movies WHERE Director="John Lasseter" ORDER BY Length_minutes DESC LIMIT 2,1;
|
6.按导演名字母升序,如果导演名相同按年份降序,取前10部电影给我
1
| SELECT * FROM movies ORDER BY Director,Year DESC LIMIT 10;
|
SQL Review: 复习 SELECT 查询
1.列出所有加拿大人的Canadian信息(包括所有字段)
1
| SELECT * FROM north_american_cities WHERE country="Canada";
|
2.列出所有美国United States的城市按纬度从北到南排序(包括所有字段)
1 2
| SELECT * FROM north_american_cities WHERE country="United States" ORDER BY Latitude DESC;
|
3.列出所有在Chicago西部的城市,从西到东排序(包括所有字段)
1
| SELECT * FROM north_american_cities WHERE Longitude<-87.629798;
|
4.用人口数population排序,列出墨西哥Mexico最大的2个城市(包括所有字段)
1 2
| SELECT * FROM north_american_cities WHERE Country="Mexico" ORDER BY Population DESC LIMIT 2;
|
5.列出美国United States人口3-4位的两个城市和他们的人口(包括所有字段)
1 2
| SELECT * FROM north_american_cities WHERE Country="United States" ORDER BY Population DESC LIMIT 2,2;
|
6.北美所有城市,请按国家名字母序从A-Z再按人口从多到少排列看下前10位的城市(包括所有字段)
1 2
| SELECT * FROM north_american_cities ORDER BY Country,Population DESC LIMIT 10;
|