SQL의 골조를 잡고자 새로 학습하면서 postgreSQL을 기본으로 하는 학습을 하였습니다.
저는 본래 mysql을 다루었는데 postgreSQL을 사용해 보며 시야를 조금 더 넓힐 수 있었습니다.
둘 모두 공통된 부분이 많고 서로 지원하지 않는 부분도 있어 이 글을 읽는 분들도 차이를 인지하고 자신이 사용하는 것에 맞게 SQL을 작성하시기 바랍니다.
이번 글은 데이터베이스에서 정보들을 불러오는 구문들 중 가장 쉽고 기본이 되는 것들에 대해 작성했습니다.
예시들을 보시고 이해에 도움이 되셨길 바랍니다.
SELECT
- 데이터베이스에서 데이터를 조회할 때 사용하는 기본적인 구문
SELECT DISTINCT
SELECT COUNT (DISTINCT column) FROM table —> 괄호가 있어야 한다
- 특정 열의 고유한 값들의 수를 세는데 사용된다
SELECT WHERE
- 조건에 따라 데이터를 필터링할 때 사용된다
- SELECT name,choice FROM table WHERE name = ‘David’ AND choice = ‘RED’
- SELECT title FROM film WHERE rental_rate > 4 AND replacement_cost >= 19.99 AND rating != 'R';
- SELECT * FROM film WHERE rating = 'R' OR rating = 'PG-13';
ORDER BY
- 결과를 정렬할 때 사용한다. ASC(오름차순) DESC(내림차순)을 사용하여 순서 지정
- SELECT column_1, column_2 FROM table ORDER BY column_1 ASC/DESC
- SELECT column_1, column_2, column_3 FROM table ORDER BY column_1, column_2
→ column_1에 대해 먼저 정렬하고 column_2를 이후에 정렬한다
- SELECT column_1, column_2, column_3 FROM table ORDER BY column_1 DESC, column_2 ASC
→ 개별로 가능
- SELECT 에 존재하지 않는 column도 ORDER BY 할 수 있지만 논리적으로 좋지 않다
LIMIT
- 쿼리 결과에 반환되는 행의 수를 제한하는 데 사용한다
- SELECT * FROM payment WHERE amount != 0 ORDER BY payment_date DESC LIMIT 10;
BETWEEN
- 주어진 범위에 값이 있는지 확인하는 데 사용한다
- SELECT * FROM payment WHERE amount BETWEEN 8 AND 9;
→ datetime에 관련, BETWEEN 2024-02-12 AND 2024-02-13 이라고 했을 때, 2월 13일 정보는 없다. 닫힌구간
IN
- 특정 값들 중 하나에 대해 일치하는 행을 선택할 수 있게 해 준다
- SELECT color FROM table WHERE color IN (’red’, ‘blue’);
- SELECT color FROM table WHERE color NOT IN (’red’, ‘blue’);
LIKE, ILIKE (패턴 매칭, 와일드카드 연산자<%, _, …>, LIKE는 대소문자 구분, ILIKE는 대소문자 구분 안 함)
- 문자열 패턴을 매칭하는 데 사용된다
- SELECT * FROM customer WHERE first_name NOT LIKE 'J%’
- SELECT * FROM customer WHERE first_name LIKE 'J%' AND last_name LIKE 'S%’
- ‘_her%’, ‘%her%’ etc