SELECT — 원하는 데이터를 꺼내는 첫 번째 문

SELECT 문이란?
SELECT는 데이터베이스에서 필요한 데이터를 조회할 때 사용하는 명령어다.
데이터를 조건에 따라 필터링(WHERE) 하고, 별명(ALIAS) 을 부여하거나
연산, 정렬, 연결을 수행하여 원하는 형태로 뽑아낼 수 있다.
SELECT는 SQL의 본질이자 시작점이다.
데이터를 보고 싶다면, 어떻게든 SELECT를 써야 한다.
SELECT를 잘 안다는 건 단순히 구문을 외운다는 게 아니다.
데이터를 어떻게 바라볼 것인지, 어떤 기준으로 추출할 것인지,
그리고 그 결과를 어떻게 구조화할 것인지를 판단한다는 뜻이다.
✅ SELECT 기본 문법
SELECT 컬럼1 [, 컬럼2, ...]
FROM 테이블1 [, 테이블2, ...]
WHERE 조건;
이 세 줄 안에 대부분의 데이터 조회 패턴이 담겨 있다.
FROM은 기준 테이블을 정하고,
WHERE는 조건으로 행을 거르고,
SELECT는 보여줄 컬럼을 선택한다.
예시:
SELECT A.회원번호, B.예약번호
FROM 회원 A, 예약 B
WHERE A.회원명 = B.예약자;
🔍 해설
- 회원 테이블을 A, 예약 테이블을 B로 별칭 부여
- A.회원명과 B.예약자가 같은 데이터만 필터링
- 그에 해당하는 A.회원번호, B.예약번호를 출력
이 구조는 테이블 간 조인을 통해 관계 데이터를 결합하는 기본 방식이다.
SQL은 관계의 언어다.
테이블이 분리된 이유는 구조화된 관계를 만들기 위해서고,
SELECT는 그 관계를 ‘읽는’ 첫 단계다.
✅ Alias (별칭) 사용하기
별칭은 AS 키워드를 통해 컬럼명이나 테이블에 별명을 부여하는 방법이다.
가독성을 높이고, 연산 결과에 명확한 이름을 붙이기 위해 사용된다.
SELECT 회원번호 AS ID, 회원명
FROM 회원;
- 회원번호 컬럼에 대해 ID라는 별칭을 부여한 예시
- AS는 생략 가능 → 회원번호 ID로도 표현 가능
🔍 해설
- 회원 테이블에서
- 회원번호를 ID로 표시
- ID, 회원명을 함께 출력
✅ SELECT 실행 순서 Tip 🧠
SQL 문법은 우리가 작성하는 순서와 실행되는 순서가 다르다.
정확한 흐름을 이해하면 복잡한 쿼리도 쉽게 해석할 수 있다.
1. FROM 👉 어떤 테이블을 기준으로 할지 결정
2. WHERE 👉 조건에 맞는 행(Row)만 필터링
3. GROUP BY 👉 데이터를 그룹핑
4. HAVING 👉 그룹핑된 결과에 조건을 적용
5. SELECT 👉 필요한 컬럼을 선택
6. ORDER BY 👉 정렬
✅ 산술 연산자 사용하기
SQL에서는 숫자 데이터를 대상으로 *산술 연산(+, -, , /, %) 을 수행할 수 있다.
SELECT 수학, 영어,
수학 + 영어 AS 총점,
(수학 + 영어) / 2 AS 평균
FROM 성적;
🔍 해설
- 수학 + 영어 → 총점으로 표시
- (수학 + 영어) / 2 → 평균으로 표시
- 수학, 영어, 총점, 평균을 함께 출력
⚠️ 주의
- Null과 산술연산 → 결과는 항상 Null
- 0으로 나누기 → 오류 발생!
✅ 문자열 합성 연산자 (||)
||는 문자열을 이어 붙이는 연산자다.
문자열과 문자열, 문자열과 칼럼 등 조합이 가능하다.
SELECT FNAME || ' ' || LNAME AS FULL_NAME
FROM MEMBER;
🔍 해설
- FNAME과 LNAME 사이에 공백 ' ' 삽입
- 이름 전체를 하나의 문자열로 만든 후 FULL_NAME이라는 별칭 부여
✨ 정리하며 — SELECT는 데이터 탐색의 시작점이다
SELECT는 단순한 조회 이상의 의미를 가진다.
우리는 SELECT를 통해 수많은 데이터 중 진짜 필요한 정보만을 걸러내고,
필요하다면 가공하고, 정리하고, 의미를 부여한다.
좋은 SELECT 문은 요구사항을 가장 효율적이고 명확하게 표현하는 문장이다.
그리고 그것은 SQL의 문법을 아는 것보다,
데이터의 구조와 흐름을 이해하는 능력에서 비롯된다.
📮 BeanSight | 해피빈(HappyBin)
데이터의 본질은 식별에서 시작된다.
관계는 흐름을 만들고, 식별자는 구조를 완성한다.
'IT 공부 > SQL' 카테고리의 다른 글
| SQL - (13) WHERE절 (4) | 2025.07.31 |
|---|---|
| SQL - (12) 함수 (2) | 2025.07.30 |
| SQLD - (10) 관계형 데이터베이스 개요 (1) | 2025.07.26 |
| SQLD - (9) 식별자 (2) | 2025.07.25 |
| SQLD - (8) 모델이 표현하는 트랜잭션의 이해 (0) | 2025.07.24 |