본문 바로가기
DB/DB 문법

SELECT

by oneny 2023. 5. 15.
SELECT은 가장 많이 사용되는 SQL 문장으로, 테이블에서 정보를 검색하는데 사용된다.

 

SELECT 문 예제

SELECT column_name FROM table_name;
SELECT * FROM table_1;
SELECT c1, c2 FROM table_2;

일반적으로, 모든 열을 포함한 테이블의 전체 정보가 필요하지 않은 경우 *(asterisk)를 사용하지 않는 것이 좋다.

쿼리 서버와 응용 프로그램 간의 트래픽이 증가하여 검색 결과가 느려질 수 있기 때문에 필요한 컬럼만 조회하는 것이 좋다. 모든 열을 포함한 테이블의 전체 정보가 정말 필요한 경우에만 *(asterisk)를 사용한다.

 

SELECT DISTINCT

SELECT DISTINCT column FROM table;
SELECT DISTINCT(column) FROM table;

테이블에서 중복값을 가진 컬럼이 포함된 경우, 고유/중복되지 않은 값을 나열하고자 하는 상황이 발생할 때 사용할 수 있다. DISTINCT 키워드를 사용하여 컬럼에서 고유한 값만 반환할 수 있다. DISTINCT가 적용되는 컬럼을 명확히 하기 위해 괄호를 사용할 수도 있다.

 

COUNT

COUNT 함수는 쿼리의 특정 조건과 일치하는 행의 수를 반환한다.

특정 열에 COUNT를 적용하거나 COUNT(*)을 전달할 수 있으며 결과는 동일하다.

 

SELECT WHERE

SELECT과 WHERE은 기본적인 SQL 문장에서 자주 사용된다.

WHERE 문은 반환되는 행에 대한 열 조건을 지정할 수 있다.

WHERE 절은 SELECT 문의 FROM 절 바로 다음에 나타난다.

 

ORDER BY

PostgreSQL이 가끔 쿼리 결과를 다른 순서로 반환할 수 있다. 즉, DB에서는 데이터가 입력되는 순서는 큰 의미가 없다.

ORDER BY를 사용하여 컬럼 값에 따라 행을 오름차순 또는 내림차순으로 정렬할 수 있다. ORDER BY의 기본값은 ASC 이다. 여러 열을 기준으로 정렬을 할 수도 있다.

ORDER BY는 쿼리의 끝 부분에 위치시켜서 선택 및 필터링을 먼저 수행한 후 최종적으로 정렬한다.

 

LIMIT

LIMIT 명령은 쿼리에서 반환되는 행의 수를 제한하는데 사용한다. 테이블의 모든 행을 반환하지 않고, 상위 몇 개의 행만 보고 테이블 레이아웃을 파악하려는 경우 유용한다.

LIMIT은 쿼리 요청의 맨 끝에 위치하여 마지막으로 실행된다. 이는 WHERE 문으로 필터링하고 ORDER BY로 정렬하고, 쿼리하려는 모든 조건이나 필터를 적용한 후에 LIMIT을 통해 최종적으로 몇 개의 행으로 표시하고 싶은지를 지정한다.

 

BETWEEN

BETWEEN 연산자는 값을 값의 범위와 일치시키는데 사용할 수 있다. => value_1 BETWEEN low AND high

NOT 논리 연산자와 결합하여 BETWEEN을 사용할 수도 있다. => value_1 NOT BETWEEN low AND high

 

날짜에 대한 BETWEEN 연산자를 사용할 때는 타임스탬프 정보도 포함된 경우

BETWEEN, <=, >= 비교 연산자를 사용하는데 주의해야 한다. 이는 날짜/시간이 00:00에서 시작하기 때문이다.

2023년 3월 정보를 얻기 위해서는 다음과 같이 작성해야 한다.

SELECT * FROM table_name WHERE created_at BETWEEN '2023-03-01' AND '2023-04-01';

2023-03-31로 작성하면 2023-03-31 00:00:00 이전의 정보들을 가져오기 때문에 2023-04-01로 작성해야 한다.

'DB > DB 문법' 카테고리의 다른 글

JOINS와 집합 연산자  (0) 2023.05.16
서브쿼리(Sub Query)  (1) 2023.05.16
시간 데이터 유형  (0) 2023.05.16
GROUP BY와 집계 함수  (0) 2023.05.15
비교 연산자 및 기타  (1) 2023.05.15