위의 테이블(members)을 기준으로 SQL 문법을 정리해 보았다.
SELECT *
SELECT * FROM members;
여기서 *
은 모든 columns
를 가져오는 것을 의미한다.
SELECT, 특정 columns
원하는 columns만 가져오고 싶을 때에는 * 대신 column 이름을 나열하면 된다.
SELECT id, age FROM members;
Where, 같은 값
테이블에서 특정 rows를 선택하기 위해서는 WHERE
키워드를 사용한다.
특정 열에서 어떠한 값과 일치하는 데이터를 찾고 싶을 때는 =
연산자를 사용한다.
SELECT * FROM members WHERE gender = 'male';
이렇게 하면 gender가 ‘male’로 지정된 모든 rows를 불러온다.
Where, 조건
=
대신 >
, <
, >=
, <=
를 사용하면 크기 비교를 하여 조건에 맞는 rows 만 불러온다.
SELECT * FROM members WHERE age >= 26;
이렇게 하면 나이가 26보다 크거나 같은 rows만 불러온다.
AND
WHERE
부분에서 AND
키워드를 사용하면 여러 속성으로 데이터를 검색할 수 있다.
SELECT * FROM members WHERE age >= 26 AND gender = 'male';
이렇게 하면 나이가 26보다 크거나 같고, gender가 ‘male’인 rows만 불러온다.
OR
AND
대신 OR
을 사용할 수도 있다. AND는 모든 조건이 다 맞아야 하지만, OR은 조건 중에 하나라도 맞는 데이터를 불러온다.
SELECT * FROM members WHERE age >= 26 OR gender = 'male';
이렇게 하면 나이가 26보다 크거나 같은 rows, 혹은 gender가 ‘male’인 rows만 불러온다.
IN
WHERE
부분에서 IN
키워드를 사용하면, 특정 column의 값이 특정 value list에 포함되는지 확인하는 조건을 줄 수 있다.
SELECT * FROM members WHERE name IN ('A', 'C', 'D');
이렇게 하면 이름이 A, C, D 중 하나인 rows를 불러온다.
반대로 NOT IN
키워드를 사용하면 포함되지 않는 rows만 불러온다.
SELECT * FROM members WHERE name NOT IN ('A', 'C', 'D');
DISTINCT
DISTINCT
는 중복제거를 할 때 사용하는 키워드이다.
SELECT DISTINCT gender FROM members;
이렇게 하게 되면, 중복되는 것들을 다 제외하고 2개의 row만 얻게 된다. (male과 female)
ORDER BY
ORDER BY
키워드를 이용하면 정렬된 데이터를 얻을 수 있다.
SELECT * from members ORDER BY age;
이렇게 하게 되면, age를 기준으로 오름차순 정렬된 데이터를 얻을 수 있다.
DESC
를 끝에 붙이면 내림차순으로 얻을 수 있다.
SELECT * from members ORDER BY age DESC;
→ age를 기준으로 내림차순 정렬