sqlzoo练习题答案
title: SQL-Learning
date: 2019-03-12 20:37:21
tags: SQL
这是关于在一个SQL学习网站的练习题答案记录:SQL教程
SQL基础
由一些简单的查询开始
这里的默认表格为WORLD表格 。
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:国内生产总值
SQL对大小写不敏感。
- 以显示德国德国的人口
SELECT population
FROM world
WHERE name = 'Germany'
- 查询面积为5,000,000以上平方公里的国家,对每个国家显示她的名字和人均国内生产总值(
gdp/population
)
SELECT name, gdp/population
FROM world
WHERE area > 5000000
- 查询“Ireland 爱尔兰”,“Iceland 冰岛”,“Denmark 丹麦”的国家名称和人口
SELECT name, population
FROM world
WHERE name IN ('Ireland', 'Iceland', 'Denmark');--IN 操作符允许我们在 WHERE 子句中规定多个值
- 面积为200,000及250,000之间的国家名称和该国面积
SELECT name, area
FROM world
WHERE area
BETWEEN 200000 AND 250000;
--操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SELECT国家名字
name | continent |
---|---|
Afghanistan | Asia |
Albania | Europe |
Algeria | Africa |
Andorra | Europe |
Angola | Africa |
.... |
name:国家名称 continent:大洲
SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist]或者[!charlist] | 不在字符列中的任何单一字符 |
- 找出以Y为开首的国家
SELECT name
FROM world
WHERE name LIKE 'Y%'
--LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
- 找出以Y为结尾的国家
SELECT name
FROM world
WHERE name LIKE '%Y'
- 找出包含字母x的所有国家
SELECT name
FROM world
WHERE name
LIKE '%x%'
- 找出名字以land结尾的所有国家
SELECT name
FROM world
WHERE name
LIKE '%land'
- 查找以C开头,ia结尾的所有国家
SELECT name
FROM world
WHERE name
LIKE 'C%ia'
- 找出名字包含双oo的国家
SELECT name
FROM world
WHERE name
LIKE '%oo%'
- 找出名字包含三个或三个以上a的国家
SELECT name
FROM world
WHERE name
LIKE '%a%a%a%'
- 找出名字第二个字母为t的国家
SELECT name
FROM world
WHERE name
LIKE '_t%'
ORDER BY name
- 找出所有国家,其名字都有两个字母 o,被另外两个字母相隔着
SELECT name
FROM world
WHERE name
LIKE '%o__o%'
10 . 找出名字是4个字母的国家
SELECT name
FROM world
WHERE name
LIKE '____'
- 找出首都和国家名字相同的国家
SELECT name
FROM world
WHERE name = capital; --可以加空格
- “Mexico 墨西哥”的首都是”Mexico City”。找出所有国家名字,其首都是国家名字加上”City”。
SELECT name
FROM world
WHERE capital = concat(name,' City');--注意City前面的空格
- 找出所有首都和其国家名字,而首都要有国家名字中出現。
SELECT capital,name
FROM world
WHERE capital
LIKE concat('%',name,'%')
- 找出所有首都和其国家名字,而首都是国家名字的延伸。
你愿显示 Mexico City,因它比其国家名字 Mexico 長。
你不愿显示 Luxembourg,因它的首都和国家名相是相同的。
SELECT name,capital
FROM world
WHERE capital
LIKE concat(name,'%') --注意审题,国家名字的延伸,那么国家名字应该在最前面。
AND capital != name;--这里也可以用"<>"
"Monaco-Ville"是合併國家名字 "Monaco" 和延伸詞"-Ville"
顯示國家名字,及其延伸詞,如首都是國家名字的延伸
你可以使用SQL函數 REPLACE 或 MID
SELECT name,replace(capital, name, '')
FROM world
WHERE capital
LIKE concat(name,'%_')
/*replace函数定义
replace(original-string,search-string,replace-string)
original-string: 被搜索的字符串。可为任意长度。
search-string: 要搜索并被 replace-string 替换的字符串。该字符串的长度不应超过 255 个字节。如果 search-string 是空字符串,则按原样返回原始字符串。
replace-string: 该字符串用于替换 search-string。可为任意长度。如果 replacement-string 是空字符串,则删除出现的所有 search-string。
说明
用字符串表达式3替换字符串表达式1中出现的所有字符串表达式2的匹配项。返回新的字符串。
如果有某个参数为 NULL,此函数返回 NULL。
*/
SQLZOO练习题之SELECT from WORLD Tutorial/zh
查询世界
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亿人口的国家。
SELECT name
FROM world
WHERE population>200000000;
- 查询大于2亿人口的国家,及国内生产总值
SELECT name,gdp/population
FROM world
WHERE population > 200000000;
- 查询在South America南美洲的国际爱和以百万为单位的人口數
SELECT name,population / 1000000
FROM world
WHERE continent = 'South America';--别忘记单引号,代表字符串
- 查询法国,德国,意大利(France, Germany, Italy)的国家名称和人口
SELECT name,population
FROM world
WHERE name in ('France', 'Germany', 'Italy')--别忘记单引号,代表字符串
- 查询包含单词“United”的国家
SELECT name
FROM world
WHERE name
LIKE '%United%';
- 查询大国(面积大于300万平方公里或者人口大于2.5亿)的名字,面积,人口
SELECT name,population,area
FROM world
WHERE area > 3000000
OR population > 250000000;
美国,印度,中国(USA, India, China)是人口又大,同时面积又大的國家。排除这些国家。
顯示以人口或面积为大国的國家,但不能同时面积大且人口多的国家名称,人口,面积。
SELECT name,population,area
FROM world
WHERE (area > 3000000 AND population < 250000000)
OR (area < 3000000 AND population > 250000000);
- 查询并显示南美洲国家以百万计人口和10亿计gdp(保留小数点2位)。
SELECT name,ROUND(population/1000000,2),ROUND(gdp/1000000000,2)
FROM world
WHERE continent = 'South America';
/*ROUND 函数用于把数值字段舍入为指定的小数位数。
SELECT ROUND(column_name,要保留的位数) FROM table_name*/
- 查询万亿元国内生产总值国家的人均国内生产总值,四捨五入到最近的$ 1000。
SELECT name,ROUND(gdp/population,-3)
FROM world
WHERE gdp > 1000000000000;
继续使用round函数。因为留一位小数1,不留小数是0,-1就好比153不留3,直接四舍五入150,同样-2就是153,不留53,直接四舍五入200.
sqlzoo练习题答案的更多相关文章
- 珍藏的数据库SQL基础练习题答案
自己珍藏的数据库SQL基础练习题答案 一,基本表的定义与删除. 题1: 用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC),这三张表的结构如表1-1到表1 ...
- 13.2 Go练习题答案
13.2 Go练习题答案 练习题1: 创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 package temp import "fmt" //创建一个gorou ...
- C++PRIMER第五版练习题答案第一章
C++PRIMER第五版练习题答案第一章 应该有很多小伙伴和我一样,闲来无事买了本C++的书自己啃,课后的练习题做的很揪心,这里我分享下我写的答案,希望能帮助到你,提供源码,就不跑了哈,毕竟现在是第一 ...
- mysql 练习题答案
一 题目 1.查询所有的课程的名称以及对应的任课老师姓名 2.查询学生表中男女生各有多少人 3.查询物理成绩等于100的学生的姓名 4.查询平均成绩大于八十分的同学的姓名和平均成绩 5.查询所有学生的 ...
- 算法设计与分析(李春保)练习题答案v1
1.1第1 章─概论 1.1.1练习题 1.下列关于算法的说法中正确的有(). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模 ...
- Python For嵌套循环 图形打印X型 nested loop - 练习题答案
上一篇:Python For嵌套循环 图形打印X型 nested loop - 练习题 上一篇留的Python For嵌套循环 图形打印X型练习题的答案. 由于网上很多嵌套循环都是C++语言写的,用P ...
- 【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)
目录 视频讲解: 一.数组的概述 二.一维数组的使用 三.Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下) 四.数组中的常见异常 五.一维数组练习题 六.彩蛋(本期视频使用的P ...
- Java编程思想第四版第二章练习题答案
练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化.将他们的值打印出来,以验证Java执行了默认初始化 public class JavaThinking { private ...
- 第六章第二十题(计算一个字符串中字母的个数)(Count the letters in a string) - 编程练习题答案
*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法头计算字符串中的字母个数: public static int countLetters(String s) 编写一个测试程序,提示 ...
随机推荐
- Python之如何删除pandas DataFrame的某一/几列
删除pandas DataFrame的某一/几列: 方法一:直接del DF['column-name'] 方法二:采用drop方法,有下面三种等价的表达式: 1. DF= DF.drop('co ...
- Django之model字段操作
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models import ...
- MySQL中文入库问题
中文测试没有问题了,此处bug源于MySQL自身编码的问题,创建数据库默认指定相关编码即可. 创建数据库时,指定utf8编码 CREATE DATABASE mydb DEFAULT CHARACTE ...
- Check for Palindromes
如果给定的字符串是回文,返回true,反之,返回false. 如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文). 注意你需要去掉字符串多 ...
- [转载]java获取word里面的文本
需求场景 开发的web办公系统如果需要处理大量的Word文档(比如有成千上万个文档),用户一定提出查找包含某些关键字的文档的需求,这就要求能够读取 word 中的文字内容,而忽略其中的文字样式.表格. ...
- 【小米oj】找出单独的数字
题目链接:https://code.mi.com/problem/list/view?id=2&cid=0&sid=26251#codearea 描述 给出N个数字.其中仅有一个数字出 ...
- SSM整合Redis
前言 服务端缓存的意义大多数在于减轻数据库压力,提供响应速度,而缺点也是显而易见的,会带来缓存与数据库一致性问题.当然,Redis还可以作为分布式锁. Redis 想在项目中使用Redis需要做的事情 ...
- node 封装db层
var db = {}; var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: , host: '1 ...
- 【Seajs源码分析】3. 工具方法2
util-request.js 动态加载模块 /** * util-request.js - The utilities for requesting script and style files * ...
- 控制图片在latex中的位置
如何做到自己控制图片在latex中的位置? 方法:在 \begin{figure} 后面加参数 [h!] 即 \begin{figure}[h!] % Requires \usepackage{gra ...