【SQL入门系列一】SQLZOO-SELECT

table

0 SELECT basics

WHERE

SELECT population FROM world
WHERE name = 'Germany'

IN list中的多项是否存在

SELECT name, population FROM world
  WHERE name IN ('Sweden', 'Norway', 'Denmark');

BETWEEN 范围

SELECT name, area FROM world
  WHERE area BETWEEN 200000 AND 250000

1 SELECT name

LIKE
模糊查询

// 以B开头
SELECT name FROM world
  WHERE name LIKE 'B%'
  
// 以B结尾
SELECT name FROM world
  WHERE name LIKE '%B'
  
// 包含x
SELECT name FROM world
  WHERE name LIKE '%x%'
  
SELECT name FROM world
  WHERE name LIKE 'C%ia'
  
// name中有连续两个o
SELECT name FROM world
  WHERE name LIKE '%oo%'
  
// name中有三个及以上的a
SELECT name FROM world
  WHERE name LIKE '%a%a%a%'

_
表示单个字符的通配符

// 第二个字母为t
SELECT name FROM world
 WHERE name LIKE '_t%'
ORDER BY name

concat
组合多个字符串

//capital = name+City
SELECT name FROM world
 WHERE capital = concat(name,' City')

//capital中包含name
SELECT capital, name FROM world
WHERE capital LIKE concat('%',name,'%')

//capital是name的延伸,且capital和name不一样
SELECT capital, name FROM world
WHERE capital LIKE concat(name,'%') AND capital!=name

SELECT capital, name FROM world
WHERE capital LIKE concat(name,'_%') //_至少有一个字符

REPLACE(f, s1, s2)
把f中的s1替换为s2

2 SELECT from world

XOR???

ROUND function
ROUND(population/1000000,2)保留两位小数

// per-capita GDP 最接近的1000
SELECT name,ROUND(GDP/population,-3) FROM world
WHERE GDP>=1000000000000

LENGTH function
字符数
在这里插入图片描述
LEFT
LEFT(s,n) 左边的n个字符
<>表示不等于
在这里插入图片描述

// 包括所有的元音,但是不包括空格
SELECT name FROM world
WHERE name LIKE '%a%'
  and name LIKE '%e%'
  and name LIKE '%i%'
  and name LIKE '%o%'
  and name LIKE '%u%'
  AND name NOT LIKE '% %'

3 SELECT from Nobel

4 SELECT within SELECT

//population大于Russia的国家name
SELECT name FROM world
 WHERE population >
    (SELECT population FROM world
     WHERE name='Russia')

List the name and continent of countries in the continents containing either Argentina or Australia. Order by name of the country.

SELECT name,continent FROM world
WHERE continent in 
    (SELECT continent FROM world
       WHERE name in ('Argentina','Australia'))
ORDER by name

BETWEEN 是闭区间

SELECT name,population FROM world
WHERE population BETWEEN
(SELECT population FROM world
 WHERE name='Canada') 
AND 
(SELECT population FROM world
 WHERE name='Poland') 

SELECT name,population FROM world
WHERE population >
(SELECT population FROM world
 WHERE name='Canada') 
AND population <
(SELECT population FROM world
 WHERE name='Poland') 

在这里插入图片描述
ALL
Which countries have a GDP greater than every country in Europe? [Give the name only.] (Some countries may have NULL gdp values)

SELECT name 
FROM world
WHERE GDP > =ALL(SELECT GDP
                FROM world
               WHERE continent='Europe' AND gdp>0)

Find the largest country (by area) in each continent, show the continent, the name and the area:

SELECT continent,name,area FROM world x
 WHERE area>= ALL
   (SELECT area FROM world y
       WHERE y.continent=x.continent
         AND area>0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值