sqld
SELECT 문
자격증원톱
2026. 2. 23. 12:08
반응형
SELECT 문
반응형

1) SELECT vs SELECT DISTINCT
SELECT
- 테이블에서 원하는 컬럼을 조회합니다.
- 기본은 중복이 있어도 그대로 전부 출력(ALL) 입니다.
SELECT ENAME, JOB
FROM EMP;
SELECT DISTINCT
- 조회 결과에서 중복을 제거하고 “고유한 값만” 보여줍니다.
SELECT DISTINCT JOB
FROM EMP;
✅ 예시
EMP에 JOB이 MANAGER가 여러 번 있어도, DISTINCT를 쓰면 MANAGER는 1번만 나옵니다.
2) *(별표)의 의미
- SELECT * 는 모든 컬럼을 전부 조회입니다.
SELECT *
FROM EMP;
⚠️ 실무에서는 컬럼을 명시하는 걸 더 권장합니다(불필요한 데이터까지 가져오기 쉬움).
3) 별칭(ALIAS) 사용
- 컬럼/테이블에 임시 이름을 붙여서 결과를 보기 좋게 하거나 쿼리를 짧게 합니다.
컬럼 별칭
SELECT
EMPNO AS 사번,
ENAME AS 사원이름
FROM EMP;
- 별칭에 공백이 있으면 DB에 따라 따옴표가 필요할 수 있음(오라클은 "사원 번호" 형태).
테이블 별칭(조인에서 많이 씀)
SELECT A.EMPNO, A.ENAME
FROM EMP A;
4) 산술 연산자(+, -, *, /, % 또는 MOD)
- 숫자 컬럼끼리 계산해서 “새 컬럼”을 만들 수 있습니다.
예시: 총 보상(월급 + 커미션)
커미션이 NULL이면 계산이 NULL이 될 수 있으니 NVL로 0 처리를 같이 씁니다.
SELECT
ENAME,
SAL,
COMM,
(SAL + NVL(COMM, 0)) AS TOTAL_COMP
FROM EMP;
나머지 연산
- MySQL/PostgreSQL은 % 가능
- 오라클은 보통 MOD() 사용
SELECT
ENAME,
EMPNO,
CASE WHEN MOD(EMPNO, 2) = 0 THEN '짝수' ELSE '홀수' END AS ID_TYPE
FROM EMP;
5) 문자 합성(문자열 결합)
- 여러 문자열을 붙여서 하나의 문장처럼 만들 수 있습니다.
오라클: ||
SELECT
ENAME || ' is a ' || JOB AS EMPLOYEE_INFO
FROM EMP;
✅ 결과 예시
KING is a PRESIDENT
- SQL Server는 보통 +로 문자열 결합을 많이 씁니다.
- DB 공통으로는 CONCAT()도 사용 가능(지원 범위는 DB마다 다름).
6) 오라클의 DUAL 테이블
- 오라클에는 FROM이 필요할 때가 많아서,
- “임시로 한 줄을 제공하는” 특수 테이블이 DUAL입니다.
예시
SELECT SYSDATE
FROM DUAL;
SELECT SQRT(16)
FROM DUAL;
✅ 용도
- 시스템 날짜 확인, 함수 테스트, 간단 계산 결과 확인할 때 자주 씁니다.
초간단 요약
- SELECT: 조회(중복 포함)
- DISTINCT: 중복 제거
- ALIAS: 결과 보기 좋게 이름 붙이기
- 산술 연산: 계산 컬럼 만들기(+ NVL로 NULL 처리)
- 문자 합성: 오라클은 ||
- DUAL: 오라클에서 함수/계산 테스트용 1행 테이블
반응형