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는 두 조건 중 하나만 만족해도 결과에 포함됩니다.
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
Was this helpful?