SQLZOO练习笔记

SELECT names

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
可与%通配符一起用于搜索包含某些字母的结果
通配符:

通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]或[!charlist]不在字符列中的任何单一字符

链接:link
1.找出以Y字母开头的国家

SELECT name FROM world
  WHERE name LIKE 'Y%'

2.以Y为结尾

SELECT name FROM world
  WHERE name LIKE '%Y'

3.包含字母X的

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

4.以land为结尾

SELECT name FROM world
  WHERE name LIKE '%land'

5.以 C 开头,ia 为结尾

SELECT name FROM world
  WHERE name LIKE 'c%ia'

6.包含字母oo

SELECT name FROM world
  WHERE name LIKE 'c%ia'

7.包含三个或以上a

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

8.t为第二个字母

SELECT name FROM world
 WHERE name LIKE '_t%'

_作为字母的万用子元
9.都有两个字母o且被另外两个字母隔着

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

10.都是4个字母

SELECT name FROM world
 WHERE name LIKE '____'

11.首都和国家相同

SELECT name
  FROM world
 WHERE capital = name

也可以用LIKE(效率低
12.首都是国家名字加上city
concat函数 用来合拼两个或以上的字符串concat()

SELECT name
  FROM world
 WHERE capital LIKE concat(name,' city')

13.找出首都和国家名字,并且首都中有国家名字出现

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

IN 操作符允许在 WHERE 子句中规定多个值(相当于=,判断是否等于规定的字符串中的某一个)在这里不能用IN
用concat函数连接 通配符加单引号,变量名不加

14.找出首都和国家名字并且首都是国家名字的延伸(首都名长于国家名,相同的不显示)

SELECT name,capital
  FROM world
 WHERE capital LIKE concat(name,'%') AND capital<>name

len()函数不可用 但可以直接比较capital和name的长度(因为是字符串字符串做比较时,是直接对它的ASCII码进行逐一比较
<> 是不等于 也可以用!=
也可以

SELECT name,capital
  FROM world
 WHERE capital LIKE concat(name,'%_') 

最后加下划线表示name后至少还有一个字母

15.显示国家名及其延伸词 首都是国家的延伸 “Monaco-Ville” “Monaco” 和"-Ville".

SELECT name,replace(capital, name, '') 
FROM world 
WHERE capital 
LIKE concat(name,'%_')

concat函数中注意最后加下划线(name后还要有别的字母 否则会将相同长度的也找出来
使用replace函数 replace(a,b,c) 将a中所有出现的b都替换为c

mid函数 MID 函数用于从文本字段中提取字符(这个方法还没试


SELECT from WORLD

记一些知识点
XOR异或运算符 满足几个条件中的有且只有一个
ROUND函数 用于把数值字段舍入为指定的小数位数 round(要舍入的字段,位数)
千分位上四舍五入 round(gdp/1000,0)*1000
LEFT(name,1) 表示name的第一个字母
13.需要进行优化在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值