Language: English  • 中文
name continent
Afghanistan Asia
Albania Europe
Algeria Africa
Andorra Europe
Angola Africa
....

name:国家名称
continent:洲份

Pattern Matching Strings

此教程使用LIKE运算子来检查国家名字,我们会在world表格中运用SELECT语句:

Summary
 
1.

你可以用WHERE name LIKE 'B%'来找出以B为开首的国家。
%是万用字元,可以用代表任何字完。

找出以Y 为开首的国家。

select name from world where name like 'Y%';

2.

找出以Y 为结尾的国家。

select name from world where name like '%Y';

3.

“Luxembourg 卢森堡”中有一个x字母,还有一个国家的名字中有x。列出这两个国家。

找出所有国家,其名字包括字母x。

select name from world where name like '%x%';

4.

“Iceland 冰岛”和“Switzerland 瑞士”的名字都是以”land”作结束的。还有其他吗?

找出所有国家,其名字以land 作结尾。

select name from world where name like '%land'

5.

“Columbia 哥伦比亚”是以C 作开始,ia 作结尾的。还有两个国家相同。

找出所有国家,其名字以C 作开始,ia 作结尾。

select name from world where name like 'C%'
and name like '%ia';

6.

“Greece 希腊”中有双e 字。哪个国家有双o 字呢?

找出所有国家,其名字包括字母oo。

select name from world where name like '%oo%';

7.

“Bahamas 巴哈马”中有三个a,还有吗?

找出所有国家,其名字包括三个或以上的a。

SELECT  name  FROM  world
WHERE name LIKE '%a%a%a%'

8.

“India印度”和”Angola安哥拉”的第二个字母都是n。
你可以用底线符_当作单一个字母的万用字元。

SELECT  name  FROM  world
WHERE name LIKE '_n%'
ORDER BY name

找出所有国家,其名字以t作第二个字母。

SELECT name FROM world
WHERE name LIKE '_t%'

9.

“Lesotho 赖索托”和”Moldova 摩尔多瓦”都有两个字母o,被另外两个字母相隔着。

找出所有国家,其名字都有两个字母o,被另外两个字母相隔着。

SELECT name FROM world
WHERE name LIKE '%o__o%'

10.

“Cuba古巴”和”Togo 多哥”都是4 个字母。

找出所有国家,其名字都是4 个字母的。

SELECT name FROM world
WHERE LENGTH(name)=4

更困难的问题

如你觉得以上题目太容易了,非常好。Well done for getting this far. 下面的题目更困难,更有挑战性!

 

11.

“Luxembourg 卢森堡”的首都capital 都同样叫“Luxembourg”。

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

SELECT name FROM world
WHERE name=concat(capital,'');

12.

“Mexico 墨西哥”的首都是”Mexico City”。

显示所有国家名字,其首都是国家名字加上”City”。

concat函数
SELECT name FROM world
WHERE capital=concat(name,' City');

 
 
 
13.

找出所有首都和其国家名字,而首都要有国家名字中出现。

SELECT capital,name FROM world
WHERE capital like concat('%',name,'%');

 
 
 
 
14.

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

SELECT name,capital FROM world
WHERE capital like concat('%',name,'%') and LENGTH(capital)<>LENGTH(name);

15.

"Monaco-Ville"是合并国家名字"Monaco" 和延伸词"-Ville".

显示国家名字,及​​其延伸词,如首都是国家名字的延伸。

你可以使用SQL函数REPLACE或MID.

select name,replace(capital, name, '') from world where capital Like concat(name,'%_')  

 
 
 

mysql----SELECT names/zh的更多相关文章

  1. sqlzoo练习答案--SELECT names/zh

    name continent Afghanistan Asia Albania Europe Algeria Africa Andorra Europe Angola Africa .... name ...

  2. mysql set names 命令和 mysql 字符编码问题

    先看下面的执行结果: (root@localhost)[(none)]mysql>show variables like 'character%'; +--------------------- ...

  3. mysql select 格式化输出

    select * from test\G; MySQL的客户端命令行工具,有很多方便使用者的特性,某些方面甚至可以说比Oracle的sqlplus更加人性化.当然从整体来说,还是sqlplus更加方便 ...

  4. mysql set names 命令和 mysql字符编码问题

    先看下面的执行结果: (root@localhost)[(none)]mysql>show variables like 'character%'; +--------------------- ...

  5. mysql select日期格式

    mysql表中datatime类型存储为2016-01-10,C#直接select 后,在datatable里面看,变成01/10/2016,需要还原回去,使用select DATE_FORMAT(列 ...

  6. mysql select

    select 查询: 赋值:赋值不能应用在where中,因为where操作的是磁盘上的文件,可以应用在having筛选中. 例:select (market_price-shop_price) as ...

  7. mysql SELECT FOR UPDATE语句使用示例

    以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LO ...

  8. MySQL select into 和 SQL select into

    现在有张表为student,我想将这个表里面的数据复制到一个为dust的新表中去,虽然可以用以下语句进行复制,总觉得不爽,希望各位帮助下我,谢谢.  answer 01: create table d ...

  9. mysql SELECT FOUND_ROWS()与COUNT(*)用法区别

    在mysql中 FOUND_ROWS()与COUNT(*)都可以统计记录,如果都一样为什么会有两个这样的函数呢,下面我来介绍SELECT FOUND_ROWS()与COUNT(*)用法区别   SEL ...

  10. php学习之道:mysql SELECT FOUND_ROWS()与COUNT(*)使用方法差别

    在mysql中 FOUND_ROWS()与COUNT(*)都能够统计记录.假设都一样为什么会有两个这种函数呢.以下我来介绍SELECT FOUND_ROWS()与COUNT(*)使用方法差别 SELE ...

随机推荐

  1. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  2. HttpServetRequest读取body只能一次的问题

    HTTP请求中的是字符串数据: //字符串读取 void charReader(HttpServletRequest request) { BufferedReader br = request.ge ...

  3. 飞跃式发展的后现代 Python 世界

    飞跃式发展的后现代Python世界 如果现代Python有一个标志性特性,那么简单说来便是Python对自身定义的越来越模糊.在过去的几年的许多项目都极大拓展了Python,并重建了“Python”本 ...

  4. Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken

    前言 前面已经写了两篇关于docker的博文了,在工作中有关docker的基本操作已经基本讲解完了.相信现在大家已经能够熟练配置docker以及使用docker来创建镜像以及容器了.本篇博客将会讲解如 ...

  5. [翻译]一个新式的基于文本的浏览器 Browsh

    介绍 什么是Browsh? Browsh是一个纯文本浏览器,可以运行在大多数的TTY终端环境和任何浏览器.目前1 ,终端客户端比浏览器客户端更先进2. TTY 客户端 终端客户端即时更新和交付,以便于 ...

  6. [转]ERROR: http://rancherserver/v1 is not accessible

    本文转自:http://securityer.lofter.com/post/1d0f3ee7_10c465cc 安装rancher agent时出现以下报错 [root@localhost ~]# ...

  7. 【转载】ASP.NET工具类:文件夹目录Directory操作工具类

    在ASP.NET开发网站的过程中,有时候会涉及到文件夹相关操作,如判断文件夹目录是否存在.删除文件夹目录.创建文件.删除文件.复制文件夹等等.这一批有关文件目录的操作可以通过Directory类.Fi ...

  8. asp.net-基础-20180321

    C#与.NET的关系 C#不是语言,.net是平台.

  9. C语言异常处理之 setjmp()和longjmp()

    异常处理之除0情况 相信大家处理除0时,都会通过函数,然后判断除数是否为0,代码如下所示: double divide(doublea,double b) { const double delta = ...

  10. Java线程池 Executor框架概述

    线程池的意义 循环利用线程资源,避免重复创建和销毁线程 线程池的任务是异步执行的,只要提交完成就能快速返回,可以提高应用响应性 Java线程池还有一个很重要的意义:Java线程池就是JDK 5 推出的 ...