SQL
SELECT name, continent, population FROM world
SELECT name FROM world WHERE population >= 200000000;
select name, gdp / population from world where population >= 200000000;
per capita GDP : gdp / populationn
select name, population / 1000000 from world where continent = 'South America';
select name, population from world where name in ('France', 'Germany', 'Italy');
where 조건절 내에 IN 연산자로, 해당 소괄호 내의 이름인 레코드의 필드값을 조회
select name from world where name like '%United%';
where조건절의 like를 통해 문자자열 내 United가 존재하는지 여부를 확인, 찾고자하는 부분 문자열 United위치가 상관없으면 '%United%' 앞뒤에
%
를 붙인다.select name, population, area from world where area >= 3000000 OR population >= 250000000;
select name, population, area from world where (area >= 3000000 AND population < 250000000) OR (area < 3000000 AND population >= 250000000);
XOR로 두 조건중 하나만 만족하는 경우를 조회하는 문제임
select name, ROUND(population / 1000000, 2), ROUND(gdp / 1000000000, 2) from world where continent = 'South America';
ROUND 함수는 반올림을 해주는 함수이다. ROUND(값 / 반올림 결과 보일 자리)로 할수있다.
select name, ROUND(gdp / population, -3) from world where gdp >= 1000000000000;
ROUND함수로 반올림을 하는데 이전문제와 다른 점은 소수부분에서 반올림하는게 아닌 정수부분에서 반올림을 하는 것이다.
select name, capital from world where LENGTH(name) = LENGTH(capital);
LENGTH 함수는 문자열의 길이를 반환한다.
select name, capital from world where LEFT(name, 1) = LEFT(capital, 1) AND name <> capital;
LEFT함수를 이용하면 문자열의 부분 문자열을 구할수있다. 맨왼쪽 문자부터 두번째 인자의 문자까지의 문자열을 추출할수있다.
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 '% %';
like를 이용해서 공백이 없는 문자열과, a e i o u를 포함하는 문자열을 찾았다.
quiz
- 5
- 4
- 2
- 4 (주어진 world 테이블과 비교하며 봐야함)
- 2
- 4 (두 row를 반환하므로 IN)
- 3
'sql' 카테고리의 다른 글
sqlzoo - SUM and COUNT (0) | 2021.07.23 |
---|---|
sqlzoo - SELECT in SELECT (0) | 2021.07.17 |
sqlzoo - SELECT from nobel (0) | 2021.07.16 |
sqlzoo - SELECT basics (0) | 2021.07.14 |