SQL入门练习(四)

本文介绍了SQL中如何进行查询结果的过滤和排序,包括使用DISTINCT去除重复、使用ASC和DESC进行升序和降序排序,以及使用LIMIT和OFFSET选取部分结果。还提供了实践练习,如按导演名去重、按上映年份筛选最新电影、按字母顺序排列电影等复杂查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL在线练习网址:SQL在线练习

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

基本语法

  1. 选取出唯一的结果:
SELECT DISTINCT column 
FROM mytable 
WHERE condition(s)

注意:DISTINCT关键字:指定某个或某些属性列唯一返回

  1. 结果排序:
SELECT column 
FROM mytable 
WHERE condition(s) 
ORDER BY column ASC/DESC

注意:
ASC(升序):如:1,2,3,… (数字)或者 A,B,C,…(字母)
DESC(降序):如: … 3,2,1.(数字)或者 …C,B,A.

  1. 选取部分结果:
SELECT column
FROM mytable 
WHERE condition(s) 
ORDER BY column ASC/DESC 
LIMIT num_limit OFFSET num_offset

注意:
LIMIT:指定只返回多少行结果
OFFSET:指定从哪一行开始返回
(你可以想象一下从一条长绳子剪下一小段的过程,我们通过 OFFSET 指定从哪里开始剪,用 LIMIT 指定剪下多少长度)

实践练习

依旧是上一节课练习的那张表格
Table(表): Movies

IdTitleDirectorYearLength_minutes
1Toy StoryJohn Lasseter199581
2A Bug’s LifeJohn Lasseter199895
3Toy Story 2John Lasseter199993
4Monsters, Inc.Pete Docter200192
5Finding NemoFinding Nemo2003107
6The IncrediblesBrad Bird2004116
7CarsJohn Lasseter2006117
8RatatouilleBrad Bird2007115
9WALL-EAndrew Stanton2008104
10UpPete Docter2009101
11Toy Story 3Lee Unkrich2010103
12Cars 2John Lasseter2011120
13BraveBrenda Chapman2012102
14Monsters UniversityDan Scanlon2013110
  1. 按导演名排重列出所有电影(只显示导演),并按导演名正序排列
SELECT DISTINCT director 
FROM movies
  1. 列出按上映年份最新上线的4部电影
SELECT * FROM movies 
WHERE year 
ORDER BY year DESC 
LIMIT 4

(注意:在此把“WHERE year”省去也是可以的)

  1. 按电影名字母序升序排列,列出前5部电影
SELECT * FROM movies 
ORDER BY title ASC 
LIMIT 5
  1. 按电影名字母序升序排列,列出上一题之后的5部电影
SELECT * FROM movies 
ORDER BY title ASC 
LIMIT 5 
OFFSET 5 
  1. 如果按片长排列,John Lasseter导演导过片长第3长的电影是哪部,列出名字即可
SELECT title FROM movies 
WHERE director LIKE "John Lasseter" 
ORDER BY Length_minutes ASC 
LIMIT 1 
OFFSET 2
  1. 按导演名字母升序,如果导演名相同按年份降序,取前10部电影给我
SELECT * from movies 
ORDER BY director ASC,year DESC 
LIMIT 10
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值