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

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

这是一个目录

  • sql语言实践之自学SQL网(SQL Lesson 0-7)
    • SQL Lesson 0: SQL Lesson 0: 让我给SQL做个自我介绍
      • 练习 do it — 请完成如下任务
        • 1.【初体验】这是第一题,请你先将左侧的输入框里的内容清空,然后请输入下面的SQL,您将看到所有电影标题:
        • 2.【初体验】请输入如下SQL你将看到4条电影(切记先清空数据框且出错要耐心比对):
        • 3.【初体验】输入如下SQL你将看到电影总条数:
        • 4.【初体验】SQL可以直接做计算,下面的SQL计算1+1的和,请输入:
    • SQL Lesson 1: SELECT 查询 101
      • 练习 do it — 请完成如下任务
        • 1.【简单查询】找到所有电影的名称title
        • 2.【简单查询】找到所有电影的导演
        • 3.【简单查询】找到所有电影的名称和导演
        • 4.【简单查询】找到所有电影的名称和上映年份
        • 5.【简单查询】找到所有电影的所有信息
        • 6.【简单查询】找到所有电影的名称,Id和播放时长
    • SQL Lesson 2: 条件查询(constraints)(Pt. 1)
      • 练习 do it — 请完成如下任务
        • 1.【简单条件】找到id为6的电影
        • 2.【简单条件】找到在2000-2010年间year上映的电影
        • 3.【简单条件】找到不是在2000-2010年间year上映的电影
        • 4.【简单条件】找到头5部电影
        • 5.【简单条件】找到2010(含)年之后的电影里片长小于两个小时的片子
    • SQL Lesson 3: 条件查询(constraints) (Pt. 2)
      • 练习 do it — 请完成如下任务
        • 1.【复杂条件】找到所有Toy Story系列电影
        • 2.【复杂条件】找到所有John Lasseter导演的电影
        • 3.【复杂条件】找到所有不是John Lasseter导演的电影
        • 4.【复杂条件】找到所有电影名为 "WALL-" 开头的电影
        • 5.【复杂条件】有一部98年电影中文名《虫虫危机》请给我找出来
    • SQL Lesson 4: 查询结果Filtering过滤 和 sorting排序
      • 练习 do it — 请完成如下任务
        • 1.【结果排序】按导演名排重列出所有电影(只显示导演),并按导演名正序排列
        • 2.【结果排序】列出按上映年份最新上线的4部电影
        • 3.【结果排序】按电影名字母序升序排列,列出前5部电影
        • 4.【结果排序】按电影名字母序升序排列,列出上一题之后的5部电影
        • 5.【结果排序】如果按片长排列,John Lasseter导演导过片长第3长的电影是哪部,列出名字即可
    • SQL Review: 复习 SELECT 查询
      • 练习 do it — 请完成如下任务
        • 1.【复习】列出所有加拿大人的Canadian信息(包括所有字段)
        • 2.【复习】列出所有在Chicago西部的城市,从西到东排序(包括所有字段)
        • 3.【复习】用人口数population排序,列出墨西哥Mexico最大的2个城市(包括所有字段)
        • 4.【复习】列出美国United States人口3-4位的两个城市和他们的人口(包括所有字段)
    • SQL Lesson 6: 用JOINs进行多表联合查询
      • 练习 do it — 请完成如下任务
        • 1.【联表】找到所有电影的国内Domestic_sales和国际销售额
        • 2.【联表】找到所有国际销售额比国内销售大的电影
        • 3.【联表】找出所有电影按市场占有率rating倒序排列
        • 4.【联表】每部电影按国际销售额比较,排名最靠前的导演是谁,国际销量多少
    • SQL Lesson 7: 外连接(OUTER JOINs)
      • 练习 do it — 请完成如下任务
        • 1.【复习】找到所有有雇员的办公室(buildings)名字
        • 2.【复习】找到所有办公室里的所有角色(包含没有雇员的),并做唯一输出(DISTINCT)
        • 3.【难题】找到所有有雇员的办公室(buildings)和对应的容量
        • 4.【难题】找到所有有雇员的办公室(buildings)和对应的容量
    • 结尾 (其它参考答案)
  • ----------EOF----------

自学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----------

你可能感兴趣的:(数据库原理,sql,数据库,database)