[SQL ZOO] SELECT from WORLD
ROUND (Q9)
South America 소속 나라의 인구(population)와 GDP를 각각 나누고, 소수 둘째 자리까지 나타내시오.
SELECT name, ROUND(population/1000000, 2), ROUND(gdp/1000000000, 2)
FROM world
WHERE continent='South America'
- ROUND(attribute, n): 값을 반올림
- n = 2: 소수 둘째 자리까지 표기
- n = -2: 값을 100과 가장 가까운 단위로 나타냄(ex. 4530 -> 4500)
LEN / LENGTH (Q11)
나라(name)과 수도(capital)의 글자 수가 같은 나라의 name과 capital을 구하여라.
SELECT name, capital
FROM world
WHERE LEN(name) = LEN(capital);
- LEN(attribute): 해당 attribute의 글자 길이를 반환
- 서버에 따라 문법이 다름(LEN/LENGTH)
LEFT (Q12)
나라(name)과 수도(capital)의 첫 글자가 같은 나라의 name과 capital을 구하여라. 단, name과 capital이 완전히 일치하는 경우는 제외하여라.
SELECT name, capital
FROM world
WHERE LEFT(name, 1) = LEFT(capital, 1) AND name != capital;
- LEFT(attribute, n): 해당 attribute 문자의 왼쪽으로부터 n번째 까지의 문자를 뽑아냄
- n = 1: 문자열의 왼쪽부터 한자리까지의 문자를 뽑아냄
LIKE / NOT LIKE (Q13)
world 테이블에서 country name에 모음(a, e, i, o, u)가 들어가지 않은 name을 구하시오. 단, name이 두 단어 이상일 경우 해당 name도 제외하여야 한다.
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 '% %';
- attribute LIKE ‘%~%’: 주어진 문자열과 같이 생긴 문자에 대해 true 반환
- %: 아무 문자를 의미
- 공백을 건지고 싶을 때 문자와 마찬가지로 ‘% %’ 사용