2 분 소요

SELECT 문은 SQL에서 가장 많이 사용하는 명령어로, 데이터베이스 테이블에서 데이터를 검색하고 조회할 때 사용합니다. 이 글에서는 SELECT 문의 기본 문법부터 정렬, 조건, 중복 제거, 별칭까지 실전 예제와 함께 쉽게 설명드립니다.


1. SELECT 문 기본 문법

SELECT 필드이름
FROM 테이블이름
[WHERE 조건];
  • SELECT: 조회할 필드(열)를 지정
  • FROM: 데이터를 조회할 테이블 이름
  • WHERE: 조건에 맞는 레코드만 필터링 (선택적)

2. SELECT 문 기본 사용법

2.1. 테이블의 모든 필드 조회

SELECT * FROM Reservation;
  • 는 모든 열을 의미하며, 테이블의 전체 데이터를 조회합니다.

2.2. 특정 필드만 조회

SELECT Name, RoomNum FROM Reservation;
  • 쉼표로 구분하여 원하는 필드만 선택적으로 조회할 수 있습니다.

2.3. 조건을 사용한 조회 (WHERE 절)

SELECT * FROM Reservation
WHERE Name = '홍길동';

복합 조건 사용 예시:

SELECT * FROM Reservation
WHERE ID <= 3 AND ReserveDate > '2025-02-01';

3. 데이터 정렬 (ORDER BY)

ORDER BY 절을 사용하면 조회한 데이터를 오름차순(ASC) 또는 내림차순(DESC)으로 정렬할 수 있습니다.

3.1. 오름차순 정렬 (기본값)

SELECT * FROM Reservation
ORDER BY ReserveDate;

3.2. 내림차순 정렬

SELECT * FROM Reservation
ORDER BY ReserveDate DESC;

3.3. 다중 필드 정렬

SELECT * FROM Reservation
ORDER BY ReserveDate DESC, RoomNum ASC;

4. 중복 제거 (DISTINCT)

중복된 값을 제거하고 고유한 값만 조회하고 싶을 때 DISTINCT를 사용합니다.

SELECT DISTINCT Name FROM Reservation;

같은 이름이 여러 번 등장해도 한 번만 출력됩니다.


5. 별칭 사용 (Alias)

AS 키워드를 사용하면 필드나 테이블에 임시 이름(별칭)을 붙일 수 있습니다.

5.1. 필드 별칭

SELECT ReserveDate, CONCAT(RoomNum, " : ", Name) AS ReserveInfo
FROM Reservation;
  • CONCAT() 함수는 문자열을 결합합니다.
  • ReserveInfo는 새로 만든 가상의 열 이름입니다.

5.2. 테이블 별칭

SELECT R.Name, R.RoomNum
FROM Reservation AS R;
  • Reservation 테이블을 R로 간단히 참조할 수 있게 합니다.

6. SELECT 문 실전 예제

6.1. 조건 조회

SELECT Name, ReserveDate
FROM Reservation
WHERE ID <= 3 AND ReserveDate > '2025-02-01';

6.2. 내림차순 정렬

SELECT * FROM Reservation
ORDER BY ReserveDate DESC;

6.3. 중복 제거

SELECT DISTINCT Name
FROM Reservation;

6.4. 필드 결합 + 별칭

SELECT ReserveDate, CONCAT(RoomNum, " - ", Name) AS ReservationDetails
FROM Reservation;

7. SELECT 문 요약 정리

항목 문법 예시 설명
모든 필드 조회 SELECT * FROM 테이블; 테이블 전체 데이터 조회
특정 필드 조회 SELECT 필드1, 필드2 FROM 테이블; 원하는 열만 조회
조건 조회 SELECT * FROM 테이블 WHERE 조건; 조건에 맞는 행만 필터링
정렬 조회 ORDER BY 필드 ASC/DESC 정렬 조건 지정
중복 제거 SELECT DISTINCT 필드 FROM 테이블; 중복 제거
별칭 사용 AS 별칭 필드 또는 테이블에 임시 이름 지정

질문 정리

  1. SELECT 문에서 WHERE 절은 필수인가요?
    • 아니요. WHERE는 선택 사항입니다. 조건 없이 모든 데이터를 조회할 수 있습니다.
  2. CONCAT() 함수는 어떤 역할을 하나요?
    • 문자열을 이어 붙이는 함수입니다. 예: CONCAT('이름: ', Name)이름: 홍길동
  3. DISTINCT는 여러 필드에도 적용 가능한가요?
    • 가능합니다. SELECT DISTINCT Name, RoomNum처럼 사용하면 두 필드가 모두 동일한 경우에만 중복 제거됩니다.
  4. ORDER BY는 항상 SELECT 마지막에 와야 하나요?
    • 네, SQL 문법상 ORDER BY는 SELECT 문 마지막에 위치해야 합니다.
  5. 필드 이름에 공백이 있다면 어떻게 하나요?
    • 따옴표 또는 백틱()으로 감싸야 합니다. 예: SELECT User Name FROM Users;``

카테고리:

업데이트:

댓글남기기