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행 테이블
반응형