MySQL 기본문법 정리(1)
이번 포스트에서는 프로그래머스 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 %문자열%
를 사용하면 됩니다.
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
를 붙여주면 됩니다. 동시에 여러 컬럼들로 정렬도 가능합니다.