SQL SELECT 문 데이터 조회의 모든 것
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 별칭 |
필드 또는 테이블에 임시 이름 지정 |
질문 정리
- SELECT 문에서 WHERE 절은 필수인가요?
- 아니요. WHERE는 선택 사항입니다. 조건 없이 모든 데이터를 조회할 수 있습니다.
- CONCAT() 함수는 어떤 역할을 하나요?
- 문자열을 이어 붙이는 함수입니다. 예:
CONCAT('이름: ', Name)→이름: 홍길동
- 문자열을 이어 붙이는 함수입니다. 예:
- DISTINCT는 여러 필드에도 적용 가능한가요?
- 가능합니다.
SELECT DISTINCT Name, RoomNum처럼 사용하면 두 필드가 모두 동일한 경우에만 중복 제거됩니다.
- 가능합니다.
- ORDER BY는 항상 SELECT 마지막에 와야 하나요?
- 네, SQL 문법상
ORDER BY는 SELECT 문 마지막에 위치해야 합니다.
- 네, SQL 문법상
- 필드 이름에 공백이 있다면 어떻게 하나요?
- 따옴표 또는 백틱(
)으로 감싸야 합니다. 예:SELECTUser NameFROM Users;``
- 따옴표 또는 백틱(
댓글남기기