SQL——sqlzoo实例练习

2023-11-28 21:10

本文主要是介绍SQL——sqlzoo实例练习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

title: SQL-Learning
date: 2019-03-12 20:37:21
tags: SQL
adv:解决了网页翻译不佳的问题,使得题目更加清晰明了

一、Select基础


name:国家名称
continent:洲份

1、%是万用字元,可以用代表任何字元。
找出以Y 为开首的国家。
从世界各地选择名称,
名字LIK E’Y %’

SELECT name FROM worldWHERE name LIKE 'Y%'

2、找出以Y为结尾的国家。
从世界各地选择名称,例如

SELECT name FROM worldWHERE name LIKE '%Y'

3、找出所有国家,其名字包括字母x。
从世界各地选择名称,例如

SELECT name FROM worldWHERE name LIKE '%x%'

4、找出所有国家,其名字以land 作结尾。
从世界各地选择名称,例如

SELECT name FROM worldWHERE name LIKE '%land'

5、找出所有国家,其名字以C 作开始,ia 作结尾。
从世界上选择名称,例如

SELECT name FROM worldWHERE name LIKE 'C%ia'

6、找出所有国家,其名字包括字母oo。
从世界各地选择名称,例如

 SELECT name FROM worldWHERE name LIKE '%oo%'

7、找出所有国家,其名字包括三个或以上的a。
从世界各地选择名称,例如:

SELECT name FROM worldWHERE name LIKE '%a%a%a%'

8、你可以用底线符_当作单一个字母的万用字元
SELECT名称FROM世界
WHERE名称LIKE ‘_n%’
ORDER BY名
找出所有国家,其名字以t作第二个字母。
从世界各地选择名称, 按名称排序,例如

SELECT name FROM worldWHERE name LIKE '_t%'
ORDER BY name

9、 找出所有国家,其名字都有两个字母o,被另外两个字母相隔着。从世界各地选择名称,例如

SELECT name FROM worldWHERE name LIKE '%o__o%'

10、找出所有国家,其名字都是4 个字母的。
从世界上选择名称,在世界各地的
名称,例如:

SELECT name FROM worldWHERE name LIKE '____'

11、显示所有国家名字,其首都和国家名字是相同的。

SELECT nameFROM worldWHERE name LIKE  capital

12、“Mexico 墨西哥”的首都是”Mexico City”。
显示所有国家名字,其首都和是国家名字加上”City”。
concat函数
函数concat 可以用来合拼两个或以上的字串。

SELECT nameFROM worldWHERE capital like concat(name, ' City')

//City前必须有一个空格,否则会报错。
国家名+‘空格’+首都

13、找出所有首都和其国家名字,而首都要有国家名字中出现。
从世界中选择大写字母,名称,例如

SELECT capital,name FROM worldWHERE capital LIKE concat('%',name,'%')

//这题参考的别人的,实际思路就是 首都 in【国家名】。

14、找出所有首都和其国家名字,而首都是国家名字的延伸。
你应显示Mexico City,因它比其国家名字Mexico长。
你不应显示Luxembourg,因它的首都和国家名相是相同的。

SELECT name,capital FROM world 
WHERE  capital LIKE concat('%',name,'%_')
select name,capital 
from world 
where capital like concat('%',name,'%') and capital != name

15、“Monaco-Ville"是合并国家名字"Monaco"和延伸词”-Ville".
显示国家名字,及​​其延伸词,如首都是国家名字的延伸。
你可以使用SQL函数 REPLACE 或MID.

SELECT name, REPLACE(capital, name, '')
FROM world
WHERE capital LIKE CONCAT(name, '_%') ;

//参考别人的,空格替换掉首都中含有的国家名字;
//MID不是内置函数

select name,replace(capital,name,’’) ext from world where capital like concat(name,’%’),虽然只是条件中capital like concat(name,’%_’)有不同,但是因为‘%’匹配任意个数字符,会把没有延伸词的也显示出来(也就是会把首都名和国家名一样的这种情况的也显示出来)

补充(也可直接点击那个函数):
1,更换,REPLACE(f,s1,s2)
返回字符串f,其中所有出现的s1都替换为s2。

替换(‘vessel’,‘e’,‘a’)->‘vassal’ 在此示例中,从每个国家/地区的名称中删除所有“
a”。发生这种情况是因为字符串’a’被替换为 。

从bbc中选择名称
REPLACE(name,‘a’,’’)

2、SQL MID() 函数 MID() 函数 MID() 函数用于从文本字段中提取字符。

SQL MID() 语法 SELECT MID(column_name,start[,length]) FROM table_name;

参数 描述 column_name 必需。要提取字符的字段。 start 必需。规定开始位置(起始值是 1)。
length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。 SQL MID() 实例 下面的 SQL 语句从
“Websites” 表的 “name” 列中提取前 4 个字符:

实例 SELECT MID(name,1,4) AS ShortTitle FROM Websites;

3、SQL通配符在这里插入图片描述

二、SELECT from WORLD Tutorial/zh

1、查询人口大于2亿的国家。

SELECT name 
FROM world
WHERE population>200000000;

2、查询人口大于2亿的国家,及其国内人均生产总值

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

3、查询在South America南美洲的国家及其人口,人口数以百万为单位。

SELECT name,population / 1000000
FROM world
WHERE continent = 'South America';--别忘记单引号,代表字符串

4、查询法国,德国,意大利(France, Germany, Italy)的国家名称和人口

SELECT name,population
FROM world
WHERE name in ('France', 'Germany', 'Italy')--别忘记单引号,代表字符串

5、查询包含单词“United”的国家名

SELECT name
FROM world
WHERE name
LIKE '%United%';

6、查询大国(面积大于300万平方公里或者人口大于2.5亿)的名字,面积,人口

SELECT name,population,area
FROM world
WHERE area > 3000000 
OR population > 250000000;

7、美国,印度,中国(USA, India, China)是人口又大,同时面积又大的国家。排除这些国家。

查找以人口或面积为大国的国家,及其人口,面积。但不能要同时面积大且人口多的国家。

SELECT name,population,area
FROM world
WHERE (area > 3000000 AND population < 250000000)
OR (area < 3000000 AND population > 250000000);

8、查询并显示南美洲国家,及其人口、gdp。以百万计人口和以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
/ ROUND() 函数

9、查询国内生产总值国家为万亿元的国家及其人均国内生产总值,四舍五入到1000。

SELECT name,ROUND(gdp/population,-3)
FROM world
WHERE gdp > 1000000000000;

继续使用round函数。因为留一位小数1,不留小数是0,-1就好比153不留3,直接四舍五入150,同样-2就是153,不留53,直接四舍五入200.

注:非全部原创,有部分借鉴网上,于个人而言,仅为自己学习、复习使用。
有资料来源于:https://www.cnblogs.com/sunshinewang/p/10520017.html

这篇关于SQL——sqlzoo实例练习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/430266

相关文章

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Mysql如何解决死锁问题

《Mysql如何解决死锁问题》:本文主要介绍Mysql如何解决死锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录【一】mysql中锁分类和加锁情况【1】按锁的粒度分类全局锁表级锁行级锁【2】按锁的模式分类【二】加锁方式的影响因素【三】Mysql的死锁情况【1

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表