SQLZOO(SQL语句练习)
在练习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语句练习)相关推荐
- sql 两表数据合并_多表查询SQL语句
本篇文章中主要讲述以下内容: 一.表的加法 合并两张表的过程: 然后运用sql语句: select 课程号,课程名称 from course union select 课程号,课程名称 from co ...
- sql语句为什么大写居多_懂EXCEL就会SQL,从此查数不求人
小白如何学习SQL语言? 大部分的文章都是先从意义原理开始讲,再讲环境搭建.还没看到怎么操作就放弃了. 大部分人学习SQL的需求是什么? 而且,大多数人的使用场景是数据库是现成的,这就不涉及数据库的安 ...
- MySQL等 SQL语句在线练习
SQL语句在线练习 http://sample.jimstone.com.cn/xsql/ SQL语句测验 http://www.w3school.com.cn/quiz/quiz.asp?quiz= ...
- 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
SQL语句创建和删除基本表 1. 编写6个基本表 2. 修改基本表结构,完整性约束条件 3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系 ...
- 怎么查找执行比较慢的sql语句
一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_tim ...
- 练习用基础SQL语句
http://www.cnblogs.com/zxlovenet/p/3728842.html 本文语句大部分SQL语句来自<数据库系统概论>(第四版)王珊&萨师煊 ,是我们上课用 ...
- c语言解析sql语句_sql语句面试50题(Mysql版附解析)
本人最近在自学sql,从开始学到自己写完本练习50题大概花了12天的时间. 学习路径:<sql基础教程>第1遍(3天)→知乎中的sql网课+leetcode刷题(4天)→牛客网刷题(2天) ...
- mysql ef sql语句_EF to MySQL 的 Database.ExecuteSqlCommand 和 SqlQuery
一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为 -1 ,sqlserver 里面 还没有测试过(var ctx = MyDbContext()) { ct ...
- db2case语句_DB2 常用的SQL语句
1.组合语句执行 BEGINATOMIC 表达式1分号空格/回车 表达式2分号空格/回车 END 2.应该限制访问权限的表(应该撤销这些表PUBLIC SELECT访问权) SYSCAT.DBAUTH ...
最新文章
- 2020年百度人工智能创意组技术报告评阅
- android 运行在ui县城,Android基础:在UI线程中运行代码
- PHP 实现简单的 倒计时 时分秒
- Python爬虫实战02:分析Ajax请求并抓取今日头条街拍
- 打开eclipse报错 Version 1.7.0_80 of JVM is not suitable for this product
- 忽然感觉公司的工作环境有污染,墙壁和地面会散发异味,时间长了会头疼。...
- mysql中where的用法_详解MySQL中WHERE子句的用法
- android 平板怎么截图,在安卓手机或平板电脑上截屏的5种方法,学起来!
- 软件测试(四):软件测试用例设计
- 好友管理系统--python
- keil:官网下载安装MDK5的软件包
- Tableau计算同比和环比任意天数据
- 拼多多---多多果园怎么玩
- 终于打通了《火焰之纹章——烈火之剑》
- 超有趣的Python实战:将图片转成像素风!
- Python全栈(五)Web安全攻防之1.信息收集
- EV录屏怎么把自己的摄像头放进去,摄像头好的,但是人像很花,看不清人脸
- PS制作红色拟物化时钟icon图标
- 海龟交易法则12_脚踏实地地测试
- 什么是迅驰1、2、3、4代