SQL은 Structured Query Language의 약어로 데이터베이스에서 사용되는 구조화된 쿼리 언어이다. 여기서 쿼리란 "질의문"으로 저장되어 있는 정보를 필터링하기 위한 질문으로 볼 수 있다.
또한 SQL은 데이터가 구조화된 테이블을 사용하는 데이터베이스 (RDB, Relation DataBase)에서 활용이 가능하다. 추가적으로 구조화되어 있지 않은 데이터베이스들은 NoSQL이라고 불린다.
SELECT는 데이터셋에 포함될 특성들을 선택하는 명령어이며, FROM과 세트로 사용된다.
SELECT * FROM table;
위의 쿼리는 table에서 모든 특성(*)을 검색하는 것은 뜻한다.
WHERE은 필터 역할을 하는 쿼리문이다. 특정 조건을 만족하는 데이터들만 조회될 수 있게 해주는 역할을 한다.
SELECT * FROM table
WHERE id > 5;
위의 쿼리는 id의 값이 5 이상인 데이터들만 검색이 되는 쿼리이다.
WHERE절은 AND 혹은 OR을 통해서 조건을 여러개 설정할 수도 있다.
SELECT * FROM table
WHERE id > 5 AND type = 2;
문자열에서 특정 값과 비슷한 값을 찾을 때는 아래와 같이 LIKE와 함께 '%'를 사용한다.
SELECT * FROM table
WHERE name LIKE '%떡%';
또한, 리스트의 값들과 일치하는 데이터를 필터링할 때는 "IN"을 사용하고, 값이 없는 경우를 찾을 때는 "IS"를 사용한다.
GROUP BY는 데이터를 그룹화해주는 쿼리이다.
SELECT type, COUNT(name) AS Count
FROM table
GROUP BY type;
HAVING은 GROUP BY로 조회된 결과에 대한 필터링을 해주는 역할을 한다.
SELECT type, COUNT(name) AS Count
FROM table
GROUP BY type
HAVING COUNT(name) >= 4;
CASE는 if문과 같은 기능을 해주는 쿼리문이다.
SELECT CASE
WHEN type = 1 THEN 'G1'
WHEN type = 3 THEN 'G3'
ELSE 'NONE'
END AS 'Group'
FROM table;