在练习sql语句的时候,sqlzoo是一个非常不错的练习地址:

SQLZOO:SELECT from WORLD Tutorial/zh - SQLZOO

今天我们对一些基本的select语句进行一些讲解(基于sqlzoo的题目)


1.在开始练习之前,先给出我们练习所需要用到的表:

name continent area population gdp
Afghanistan Asia 652230 25500100 20343000000
Albania Europe 28748 2831741 12960000000
Algeria Africa 2381741 37100000 188681000000
Andorra Europe 468 78115 3712000000
Angola Africa 1246700 20609294 100990000000

以及每一个属性的含义:

name:國家名稱
continent:洲份
area:面積
population:人口
gdp:國內生產總值


2.练习语句:

找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值:

SELECT name, gdp/population FROM world
WHERE population>=200000000

在我们的查询属性之中,由于有一个是人均国内生产总值,而表格中并没有直接的属性,需要通过gdp除以人口population才可以得到,在直接select后面加上这个属性在sql中是被允许的。


找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值:

SELECT name, population/1000000 FROM world
WHERE continent = 'South America'

与上一题目类似,但是需要注意的是在where条件后的属性值需要跟上‘’,不然就无法显示结果,因为这不是数字的条件。


顯示包含單詞“United”為名稱的國家:

SELECT name FROM world
WHERE name like'%United%'

一个非常基本的查询条件里包含xx的语句。like的用法是:比如以a开头的词语,我们需要用a%,以a结尾的,用%a,如果有明确指出a是在前几位或者后几位,就在前面或者后面加多少个%。


美國、印度和中國(USA, India, China)是人口又大,同時面積又大的國家。排除這些國家。

顯示以人口或面積為大國的國家,但不能同時兩者。顯示國家名稱,人口和面積:

SELECT name, population, area 
FROM (SELECT name, population, area FROM world
WHERE area > 3000000 or population > 250000000) as a 
WHERE name not in ('United States', 'India', 'China')

难度加大,这一题的难点在于不是普通筛选获取条件,在from后我们加了一个更精确的查找条件,这也叫做嵌套查询,然后把查询到的条件重命名为一个a的表,这就是select as的用法,而不包含的用法则是not in 直接在要查查找的列名后面加上not in ,后面跟上条件就可以了。


*显示名称和大陆-但用欧亚代替欧洲和亚洲;替代美国-代表北美、南美或加勒比海的每个国家。显示以A或B开头的国家/地区:

SELECT name,
CASE
WHEN continent in('Europe','Asia')THEN 'Eurasia'
WHEN continent in('North America','South America','Caribbean')THEN'America'
         ELSE continent END
  FROM world
 WHERE name LIKE 'A%' or name LIKE 'B%'

比较难的题目,这个题目的要点是case when,要记住的一点就是:CASE WHEN条件表达式函数:类似JAVA中的IF ELSE语句。if else应该大家都会比较明白,结果为true,就then输出‘’,为false,就执行别的结果。


以上就是关于sqlzoo中基本的sql查询语句的一些例子了,想要练习更多的小伙伴可以点击开头的地址去进行练习。

关注我,了解更多sql,excel,python机器学习以及数据方面的知识。


SQLZOO(SQL语句练习)相关推荐

  1. sql 两表数据合并_多表查询SQL语句

    本篇文章中主要讲述以下内容: 一.表的加法 合并两张表的过程: 然后运用sql语句: select 课程号,课程名称 from course union select 课程号,课程名称 from co ...

  2. sql语句为什么大写居多_懂EXCEL就会SQL,从此查数不求人

    小白如何学习SQL语言? 大部分的文章都是先从意义原理开始讲,再讲环境搭建.还没看到怎么操作就放弃了. 大部分人学习SQL的需求是什么? 而且,大多数人的使用场景是数据库是现成的,这就不涉及数据库的安 ...

  3. MySQL等 SQL语句在线练习

    SQL语句在线练习 http://sample.jimstone.com.cn/xsql/ SQL语句测验 http://www.w3school.com.cn/quiz/quiz.asp?quiz= ...

  4. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表

    SQL语句创建和删除基本表 1. 编写6个基本表 2. 修改基本表结构,完整性约束条件 3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系 ...

  5. 怎么查找执行比较慢的sql语句

    一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_tim ...

  6. 练习用基础SQL语句

    http://www.cnblogs.com/zxlovenet/p/3728842.html 本文语句大部分SQL语句来自<数据库系统概论>(第四版)王珊&萨师煊 ,是我们上课用 ...

  7. c语言解析sql语句_sql语句面试50题(Mysql版附解析)

    本人最近在自学sql,从开始学到自己写完本练习50题大概花了12天的时间. 学习路径:<sql基础教程>第1遍(3天)→知乎中的sql网课+leetcode刷题(4天)→牛客网刷题(2天) ...

  8. mysql ef sql语句_EF to MySQL 的 Database.ExecuteSqlCommand 和 SqlQuery

    一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过(var ctx =  MyDbContext()) { ct ...

  9. db2case语句_DB2 常用的SQL语句

    1.组合语句执行 BEGINATOMIC 表达式1分号空格/回车 表达式2分号空格/回车 END 2.应该限制访问权限的表(应该撤销这些表PUBLIC SELECT访问权) SYSCAT.DBAUTH ...

最新文章

  1. 2020年百度人工智能创意组技术报告评阅
  2. android 运行在ui县城,Android基础:在UI线程中运行代码
  3. PHP 实现简单的 倒计时 时分秒
  4. Python爬虫实战02:分析Ajax请求并抓取今日头条街拍
  5. 打开eclipse报错 Version 1.7.0_80 of JVM is not suitable for this product
  6. 忽然感觉公司的工作环境有污染,墙壁和地面会散发异味,时间长了会头疼。...
  7. mysql中where的用法_详解MySQL中WHERE子句的用法
  8. android 平板怎么截图,在安卓手机或平板电脑上截屏的5种方法,学起来!
  9. 软件测试(四):软件测试用例设计
  10. 好友管理系统--python
  11. keil:官网下载安装MDK5的软件包
  12. Tableau计算同比和环比任意天数据
  13. 拼多多---多多果园怎么玩
  14. 终于打通了《火焰之纹章——烈火之剑》
  15. 超有趣的Python实战:将图片转成像素风!
  16. Python全栈(五)Web安全攻防之1.信息收集
  17. EV录屏怎么把自己的摄像头放进去,摄像头好的,但是人像很花,看不清人脸
  18. PS制作红色拟物化时钟icon图标
  19. 海龟交易法则12_脚踏实地地测试
  20. 什么是迅驰1、2、3、4代

热门文章

  1. 一种可以穿透还原卡和还原软件的代码一种可以穿透还原卡和还原软件的代码
  2. 结果集没有当前行的解决方法
  3. ewebeditor文件上传漏洞2.8.0版本(漏洞复现)
  4. jquery选择器连续选择_jQuery选择器简介
  5. 磁盘阵列柜性能介绍(二)
  6. linux内核熵池,快速的给内核熵池喂随机数
  7. 基尔霍夫电流定律KCL和基尔霍夫电压定律KVL
  8. 超图对接伟景行osg数据使用说明
  9. Windows 清理本地端口占用
  10. window docker 找不到原先所有镜像和容器