개인 공부 공간/SQL

MySQL 기본문법 정리(1)

Hoon Kang 2021. 3. 16. 17:13

이번 포스트에서는 프로그래머스 SQL 고득점 Kit문제들을 풀면서 사용한 MySQL 문법 위주로 정리 했습니다.


1. SELECT

# 테이블 전체
SELECT * 
FROM table_name;

# 특정 컬럼만
SELECT col_1, col_2
FROM table_name;

 

* 를 이용하면 테이블의 모든 데이터를 불러올 수 있고, 특정 컬럼들만 불러오고 싶은 경우 SELECT 뒤에 지정해주면 됩니다.

2. WHERE

# 하나의 조건
SELECT col_1
FROM table_name
WHERE 조건1;

# 둘 이상의 조건
SELECT col_1
FROM table_name
WHERE 조건1 AND 조건2;

# 조건이 범위인 경우 사용할 수 있는 문법
SELECT col_1
FROM table_name
WHERE 속성1 BETWEEN 조건1 AND 조건2;

 

WHERE 뒤에 조회하고 싶은 조건을 추가하면 그 조건에 대한 데이터만 조회합니다. 조건을 동시에 만족해야 하는 경우 AND 를 사용하고, 둘 중 하나의 조건만 만족해도 되는 경우에는 OR 을 사용합니다. 참고로 AND 연산이 OR 연산보다 우선순위가 더 높습니다.

조건을 적용하고 싶은 속성이 N과 M사이의 값인 경우를 조회하고 싶은 경우 BETWEEN 을 사용하는 것이 더 효율적입니다. 단순히 AND 를 이용한 경우 N과 M 사이의 값들을 각각 구해 교집합을 구하는 방법이지만 BETWEEN 은 N에서 시작해서 M보다 작은 값을 한번에 찾는 연산을 수행하기 때문입니다.

3. LIKE

# 하나인 경우(%)
SELECT col_1
FROM table_name
WHERE 속성1 LIKE %문자열1%;

# 복수인 경우(%)
SELECT col_1
FROM table_name
WHERE 속성1 LIKE %문자열1%문자열2%;

# 임의의 문자 하나(_)
SELECT col_1
FROM table_name
WHERE 속성1 LIKE 문자열1_;

 

특정 문자열을 포함하는 경우만 조회하고 싶은 경우 WHERE 절 뒤에 LIKE %문자열% 를 사용하면 됩니다.

SQL문법정리1.PNG

 

LIKE 문자열_ 을 사용하면 문자열 뒤에 임의의 길이가 1인 문자열만 올 수 있습니다. 예를 들어 LIKE H_ 의 경우 Hi라는 값은 조회하지만 His라는 값은 조회하지 않습니다. 또한 _ 의 갯수만큼 뒤에 오는 임의의 문자열 길이를 조정할 수 있게 됩니다.

4. ORDER BY

# 오름차순(default)
SELECT col_1, col_2
FROM table_name
WHERE 조건1
ORDER BY col_1;

# 내림차순
SELECT col_1, col_2
FROM table_name
WHERE 조건1
ORDER BY col_1 DESC;

# 여러 조건으로 정렬
SELECT col_1, col_2
FROM table_name
WHERE 조건1
ORDER BY col_1 DESC, col_2; # col_1로 내림차순 정렬, col_2로 오름차순 정렬

 

특정 컬럼으로 정렬을 하고 싶은 경우 WHERE 절 뒤에 ORDER BY col_1 을 이용하면 됩니다. ORDER BY 의 default는 오름차순(ASC) 이고, 내림차순으로 정렬하고 싶을시에는 뒤에 DESC 를 붙여주면 됩니다. 동시에 여러 컬럼들로 정렬도 가능합니다.