SQL 연습 가능한 사이트
https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial#nobel_Nobel_Laureates
SQL은 이론을 보고 코드를 볼 줄 아는 것도 중요하지만,
실전이 더 중요하다
그래서 'sqlzoo'의 SELECT from Nobel Tutorial 3번 아인슈타인 문제를 풀다가 헷갈리는 개념이 있어 가져와봤다.
Show the year and subject that won 'Albert Einstein' his prize.
('알버트 아인슈타인'이 우승한 년도와 수상부문을 출력하세요)
select yr, subject
from nobel
where winner in 'Albert Einstein';
>>Error: Incorrect syntax near 'Albert Einstein'.
그런데 in 연산자를 썼더니 계속 틀리다고 나왔다.
where column name in (value1, value2,...) 가 맞는데 아니어서 당황했었다.
그런데 다시 알아보니,
in 연산자 : 찾고자 하는 값이 복수 일 때
비교연산자 '=' : 두 개의 값이 같은지 확인
비교하고자하는 값이 하나니까 비교연산자 '=' 를 써야했다.
아래는 올바른 연산자를 쓴 것이다.
select yr, subject
from nobel
where winner = 'Albert Einstein';
>> yr subject
1921 Physics
SQL은 python과 달리 문법이 매우 직관적이나,
비슷한 연산자들이 많아서 헷갈린다.
코드를 많이 짜보면서 연습을 하는 것 말고는 답이 없는 것 같다.