본문 바로가기

문제풀기/프로그래머스 문제풀이

[MySQL 문법 정리] 프로그래머스 Level1 문제를 통한 쿼리문 사용법 정리(ORDER BY, IN절)

728x90
반응형

안녕하세요~ 오늘도 프로그래머스 문제들을 풀어보면서 공부한 쿼리문들에 관해서 정리해보겠습니다~!!

 

1. ORDER BY절

   ▷ 데이터를 정렬할 때 사용하는 쿼리문

 

◎ 사용법

1. WHERE절 제외한 정렬

SELECT 컬럼1, 컬럼2, ... 
	FROM 테이블명 
	ORDER BY 컬럼1 [ASC/DESC], 컬럼2 [ASC/DESC], ...;


▷ 원하는 컬럼들을 선택해서 출력할 때 컬럼1, 컬럼2 기준으로 정렬할 수 있습니다.
ASC(오름차순), DESC(내림차순 - 역순)
첫 번째 작성한 컬럼1 기준으로 먼저 정렬하고 동일한 값이 있다면 컬럼2 기준으로 정렬합니다.

◎ 예시

SELECT title, content FROM board ORDER BY title ASC, ID DESC;


▷ board 테이블에 id, title, content가 있다고 하면 title 기준으로 오름차순 정렬을 먼저합니다.
title이 동일하다면 ID를 기준으로 내림차순 정렬합니다.



2. WHERE절 포함한 정렬

SELECT 컬럼1, 컬럼2, ... 
	FROM 테이블명 
	WHERE 컬럼1 = 값1 and 컬럼2 = 값2,
	ORDER BY 컬럼1 [ASC/DESC], 컬럼2 [ASC/DESC], ...;


▷ WHERE절은 ORDER BY 앞쪽에 작성하시면 됩니다!
ORDER BY절을 여러개 사용할 때는 WHERE과 다르게 콤마(,)로 구분할 수 있습니다.
   ▶ WHERE 절은 and(여러 조건을 동시에 만족), or(여러 조건 중 하나만 만족) 등으로 구분합니다. 

WHERE절을 사용할 때 주의 사항

// ID = 2 인 것을 모두 찾습니다.
WHERE ID = 2;

// ID가 2가 아닌 것을 모두 찾습니다.
WHERE ID != 2;

 

 

2. IN절

   ▷ WHERE절에서 사용되며, 주어진 목록 중 하나와 일치하는 값을 선택하는 데에 사용하는 쿼리문

 

◎ 사용법

1. IN절 사용 예시1
SELECT * FROM 테이블명 WHERE 컬럼1 IN (조건1, 조건2, 조건3);


 테이블의 컬럼1=값1 또는 값2 또는 값3인 조건에 해당하는 데이터들을 조회할 수 있습니다.


◎ 예시
SELECT title FROM board WHERE id in (1, 2, 5);

board 테이블에 id, title, content가 있다고 하면 id가 1, 2, 5에 해당하는 title을 출력합니다.


2.  IN절 사용 예시2
SELECT * FROM 테이블명 WHERE 컬럼1 IN 
	(SELECT * FROM 테이블명 WHERE 컬럼1=조건1);

위와 같이 IN절을 SELECT문을 사용해서 조회할 수 있습니다.


◎ 예시
SELECT NAME FROM ANIMAL_INS
    WHERE DATETIME IN (
    SELECT MIN(DATETIME) FROM ANIMAL_INS);
 
▷ ANIMAL_INS 테이블의 NAME을 조회하는데 DATETIME이 최소(가장 빠른)인 NAME만 출력합니다.

 

 

프로그래머스 LEVEL1 문제들을 풀어보고 필요한 쿼리문들을 하나씩 정리해보니 사용하는 방법들에 대해 좀 더 잘 알 수 있어서 좋네요!!

 

IN절 같은 경우는 사용하는 방법이 좀 어렵긴한데 자주 사용하다 보면 익숙해지겠어요~!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

 

728x90
반응형