2025-08-18 00:13

Tags: SQL

SELECT

  • 데이터 조회하는 가장 기본적인 SQL 명령어
  • FWGHSO: FW 가(G) 했(H)쏘(S)오(O)
SELECT * | 컬럼명  | 표현식
FROM 테이블명 또는 뷰명
WHERE 조회 조건
GROUP BY 그룹핑컬럼명
HAVING 그룹핑 필터링 조건
ORDER BY 정렬컬럼명
  1. FROM: 어떤 테이블 가져와야 하는지 파악, 데이터를 가져올 테이블 지정 또는 명 전달
  2. WHERE: 조건에 맞는 데이터만 필터링,선택적 절, 조건을 지정해 조회할 데이터를 필터링
  3. GROUP BY: 필터링 된 데이터를 그룹화
  4. HAVING: 그룹화된 결과에서 다시 필터링 진행
  5. 여기까지 와서야 SELECT 로 필요한 컬럼 추리고,조회할 열 지정
  6. 마지막에 시간 복잡도 높은 ORDER BY 로 정렬

SELECT 문 산술연산자

원본 테이블

ProductIDProductNamePriceQuantity
1Apple10010
2Banana5020
3Cherry20015
4Date15025

더하기(+)

SELECT ProductName, Price, Quantity, (Price + Quantity) AS PricePlusQuantity
FROM Products;

결과 테이블

ProductNamePriceQuantityPricePlusQuantity
Apple10010110
Banana502070
Cherry20015215
Date15025175

빼기(-)

SELECT ProductName, Price, Quantity, (Price - Quantity) AS PriceMinusQuantity
FROM Products;

결과 테이블

ProductNamePriceQuantityPriceMinusQuantity
Apple1001090
Banana502030
Cherry20015185
Date15025125

AS 별칭

  • 컬럼이나 테이블에 임시로 이름 부여
  • SELECT 보다 늦게 사용되는 ORDER BY 절에서만 사용 가능, HAVINGWHERE 에선 에러
  • 오라클에선 테이블 별칭 명시할 때 AS 사용 못함

SELECT (ALL/DISTINCT)

  • ALL: 기본값, 중복 있어도 모두 출력
  • DISTINCT: 중복된 데이터 있는 경우 하나만

FROM 절

  • 데이터 불러올 테이블이나 뷰명 전달
  • 별칭 사용 시 해당 테이블 참조할 때 반드시 별칭 사용
  • 오라클에서는 FROM 절 생략 불가
  • 의미상 테이블 필요 없으면 DUAL 테이블 선언

주의 사항

  • 문자 상수, 날짜 상수 홑따옴표
  • 오라클은 문자상수 대소문자 구분O
  • MYSQL은 문자상수 대소문자 구분X
  • MYSQL은 비교 검색 수행 시 기본적으로 대소문자 구분 없이 가능