SELECT DISTINCT

중복값이 결과에 많아질때, Unqiue 한 값만 Select 하고싶을때 사용한다.

1
2
 SELECT DISTINCT language
FROM films;

SELECT COUNT

COUNT 문장은 조건에 맞는 칼럼의 수를 리턴함.

1
2
SELECT COUNT(*)
FROM people;

만약 특정한 컬럼의 non-missing 값을 카운팅하고싶다면, COUNT(칼럼이름)을 하면된다.

1
2
SELECT COUNT(birthdate)
FROM people;

중복되지 않은 값만 카운트하고 싶다면

1
2
SELECT COUNT(DISTINCT birthdate)
FROM people;

WHERE 키워드

테이블 안의 문장 그리고 숫자 값 기반으로 필터링한다.

1
2
3
4
5
6
= equal
<> not equal
< less then
> greater then
<= less than or equal to
>= greater than or equal to

예를 들면,

1
2
3
SELECT title
FROM films
WHERE title = 'Metropolis';

숫자 필터링

1
2
3
SELECT *
FROM films
WHERE budget > 10000;

텍스트 필터링

1
2
3
SELECT title
FROM films
WHERE country = 'China';

2개의 WHERE 절

1
2
3
4
SELECT title
FROM films
WHERE release_year > 1994
AND release_year < 2000;
  • 1994년과 2000년 사이에 나온 영화의 타이틀 리턴

WHERE AND절과 OR절

1
2
3
4
SELECT title
FROM films
WHERE release_year = 1994
OR release_year = 2000;
  • 1994년작 또는 2000년작의 영화 리턴
1
2
3
4
SELECT title
FROM films
WHERE (release_year = 1994 OR release_year = 1995)
AND (certification = 'PG' OR certification = 'R');
  • 1994년작 또는 1995년작 이고, 인증이 PG이거나 R인 영화의 이름.

BETWEEN

1
2
3
4
5
6
7
8
SELECT title
FROM films
WHERE release_year >= 1994
AND release_year <= 2000;

SELECT title
FROM films
WHERE release_year
  • 위의 SQL문을 BETWEEN 1994 AND 2000; 로 표현가능

WHERE IN

1
2
3
4
5
6
7
8
9
10
11
SELECT name
FROM kids
WHERE age = 2
OR age = 4
OR age = 6
OR age = 8
OR age = 10;

SELECT name
FROM kids
WHERE age IN (2, 4, 6, 8, 10);
  • 위의 SQL문을 아래의 SQL문으로 사용가능함. 단, OR 연산만 가능함.

NULL, is NULL

NULL = 없거나, 알수없는 값. NULL은 IS NULL로 체크가 가능하다.

1
2
3
SELECT COUNT(*)
FROM people
WHERE birthdate IS NULL;

만약 NULL이 아닌 값만 출력하고 싶다면, IS NOT NULL을 사용한다.

1
2
3
SELECT name
FROM people
WHERE birthdate IS NOT NULL;

LIKE, NOT LIKE

와일드카드 %d을 사용하여, 조건절에서 문자열을 검사함.

1
2
3
SELECT name
FROM companies
WHERE name LIKE 'Data%';
  • 이름이 Data로 시작하면 출력

NOT LIKE을 쓰면 해당 조건이 아닌것이 출력
‘_r%’ 언더라인은 무시하는 값, 즉 이건 두번째가 r로 시작하는 문자열