Database

[MySQL] WHERE, ORDER BY, LIMIT

비번변경 2022. 6. 9. 20:05

SELECT

SELECT 문은 테이블 내의 데이터를 조회하는 명령어다.

SELECT *
	FROM <table_name>;

 

아래로는 SELECT문에서 사용하는 키워드를 몇 가지 정리해둔다.

 

 

WHERE

조건에 해당하는 데이터만 조회한다. 

 

연산자, 키워드에 따른 의미는 아래 표와 같다.

조건 의미
= 같다
> 크다
< 작다
>= 크거나 같다
<= 작거나 같다
!= 같지 않다
<> 같지 않다
BETWEEN a AND b a와 b 사이에 있다
NOT 부정
LIKE 문자열 비교. 와일드카드는 %
IN (a, b) (a, b) 내에 있다

 

사용 예시)

-- =
SELECT ANIMAL_ID, NAME
    FROM ANIMAL_INS
    WHERE INTAKE_CONDITION = 'Sick';
  
-- <>
SELECT ANIMAL_ID, NAME
    FROM ANIMAL_INS 
    WHERE INTAKE_CONDITION <> 'Aged'

 

ORDER BY

지정한 컬럼을 기준으로 데이터를 정렬한다.

기본적으로 오름차순이며 명시적으로 지정할 때는 ASC 키워드를 사용한다. 내림차순으로 정렬할 때는 DESC 키워드를 사용한다.

-- ASC
SELECT *
    FROM ANIMAL_INS
    ORDER BY ANIMAL_ID;
    
-- DESC
SELECT NAME, DATETIME
    FROM ANIMAL_INS 
    ORDER BY ANIMAL_ID DESC;

정렬 기준이 여럿일 때는 기준과 방향을 쉼표로 구분하여 나열한다.

아래의 예시는 name 순으로 정렬한 후, name이 같은 경우 datatime 역순으로 출력하기 위한 SQL다.

SELECT ANIMAL_ID, NAME, DATETIME
    FROM ANIMAL_INS 
    ORDER BY NAME ASC, DATETIME DESC;

 

LIMIT

조회할 데이터의 수를 지정한다. 아래의 예시는 첫번째 행부터 두 개의 데이터를 출력한다.

SELECT NAME
    FROM ANIMAL_INS 
    ORDER BY DATETIME
    LIMIT 2;

OFFSET 옵션을 지정하면 몇 번째 행부터 데이터를 조회할지 지정할 수 있다. OFFSET은 0부터 시작한다. 아래의 예시는 다섯번째 행부터 2개의 데이터를 출력한다.

SELECT NAME
    FROM ANIMAL_INS 
    ORDER BY DATETIME
    LIMIT 4, 2;

 

 

참고 문서

https://programmers.co.kr/learn/courses/30/parts/17042

https://chunggaeguri.tistory.com/entry/MySQL-Limit%EC%99%80-Offset-%EC%82%AC%EC%9A%A9%EB%B2%95