SELECT 기본
Table 이란?
테이블은 DB에서 데이터를 저장해두는 공간입니다. 엑셀의 sheet와 비슷하며, 차이점은 미리 컬럼의 이름과 데이터 형식을 정해둔다는 것 입니다. 대표적인 데이터 형식은 int(숫자), text(텍스트), timestamp(날짜)가 있습니다.
1
Heehong Moon
1986-08-20
2
Sunny Kim
1989-10-04
3
Morning Moon
2022-09-05
일반적으로 각 테이블에는 숫자로 된 id를 가지도록 테이블을 디자인 합니다. id는 고유값으로 특정한 row를 지칭할때 사용됩니다.
SELECT의 기본 모양
테이블에 정의된 모든 컬럼을 가져오기 위해서 아래와 같이 간단하게 * 을 사용할 수 있습니다.
조건식
전체 테이블에서 어떠한 조건을 만족하는 데이터만 가져오기 위해서는 WHERE 절을 이용합니다.
숫자나 텍스트 형식에 사용할수 있는 다양한 조건 오퍼레이터가 있습니다. 대표적으로 사용되는 오퍼레이터 예제입니다.
=, !=
같다 또는 다르다.
col_name != 3
>, >=, <, <=
크다, 크거나 같다, 작다, 작거나 같다
col_name >= 10
IN (...)
하나라도 같은게 있다
col_name IN (3, 6, 9)
NOT IN (...)
... 중 같은게 하나도 없다.
col_name NOT IN (3, 6, 9)
여러가지 조건을 동시에 만족하는 행만 리턴하기 위해서는 AND 또는 OR 를 사용합니다. AND는 두 조건 모두 만족하는 경우, OR는 두 조건 중 하나만 만족해도 결과에 포함됩니다.
텍스트를 조건으로 사용할때는 항상 Single Quote(')를 사용하여 묶어야 합니다. Double Quote(")를 사용하면 정상동작 하지 않습니다.
NULL
데이터가 없는 없을 의미할때 NULL을 사용합니다. 주의 해야 할점은 데이터가 없는 조건을 걸때는 등호(=, !=)로 쿼리하면 안되고 IS, IS NOT 오퍼레이터를 사용해야 합니다.
IS NULL
데이터가 없음
col_name IS NULL
IS NOT NULL
데이터가 있음
col_name IS NOT NULL
정렬
조건식에 맞는 행을 어떤 순서로 정렬할지 정할수 있습니다. 특정 컬럼의 오름차순 또는 내림 차순으로 정렬할 수 있습니다.
기본값은 오름차순이며, 오름차순일때는 ASC, 내림 차순은 DESC 로 지정합니다.
정렬 순서를 여러개 지정하려면 콤마로 할수 있습니다.
LIMIT
쿼리에서 가져오는 데이터 개수를 제한합니다. 쿼리의 조건식에 부합하는 행이 100개 라도 LIMIT 10을 하면 10개만 가져옵니다.
연습
데이터
id : 고유 id
kakao_id : 카카오로 가입한 유저의 id
fb_id : 페이스북으로 가입한 유저의 id
google_id : 구글로 가입한 유저의 id
name : 유저 이름
created_time : 가입일
last_login : 마지막 로그인 시간
문제
id가 207751 보다 큰 유저
이름이 Lois Wagner 인 유저
구글로 가입한 유저 10명
카카오로 가입한 유저 3명을 가입일 내림차순으로 정렬
페이스북으로 가입한 유저 중 2020-12월 이후 로그인 한 유저
Last updated