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.需要进行优化