Yeonnnnny

[2과목] 2-2. SELECT문 본문

SQLD

[2과목] 2-2. SELECT문

yeonny_do 2024. 3. 5. 09:43

■ SELECT문 구조

  • SELECT문은 다음과 같이 6개 절로 구성
  •  각 절의 순서대로 작성해야 함(GROUP BY와 HAVING은 서로 바꿀 수 있지만 보통 사용하지 않음)
  • SELECT 문의 내부 파싱(문법적 해석) 순서는 나열된 순서와는 다름
  •  FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY   순서대로 실행됨

 

 

 SELECT 절

  • SELECT 문장을 사용하여 불러올 컬럼명, 연산 결과를 작성하는 절
  • (*)을 사용하여 테이블 내 전체 컬럼명을 불러올 수 있음
  • 원하는 컬럼을 (,)로 나열하여 작성 가능(순서대로 출력됨)
  • 표현식이란 원래의 컬럼명을 제외한 모든 표현 가능한 대상(연산식, 기존 컬럼의 함수 변형식 포함)
  • SELECT 절에서 표시할 대상 컬럼에 Alias(별칭) 지정 가능
  • 대소문자를 구분하지 않아도 인식함

 

 

 컬럼 Alias(별칭)

  • 컬럼명 대신 출력할 임시 이름 지정(SELECT 절에서만 정의 가능, 원본 컬럼명은 변경되지 않음)
  • 컬럼명 뒤에 AS와 함께 컬럼 별칭 전달 (AS는 생략  가능)
  • SELECT문보다 늦게 수행되는 ORDER BY 절에서만 컬럼 별칭 사용 가능(그 외 절에서 사용 시 에러 발생)
  • 한글 사용 가능(한글 지원 캐릭터셋 설정 시)
  • 이미 존재하는 예약어는 별칭으로 사용 불가  ex) avg, count, decode, SELECT, FROM 등
  • 아래의 경우 별칭에 반드시 쌍따옴표 전달
    1. 별칭에 공백을 포함하는 경우
    2. 별칭에 특수문자를 포함하는 경우("_"는 제외)
    3. 별칭 그대로 전달할 경우(입력한 대소를 그대로 출력하고자 할 때)

 

 

 FROM 절

  • 데이터를 불러올 테이블명 또는 뷰명 전달
  • 테이블 여러 개 전달 가능(콤마로 구분) → 조인 조건 없이 테이블명만 나열시 카티시안 곱 발생 주의 !
  • 테이블 별칭 선언 가능(AS 쓰지 않음)
    • 테이블 별칭 선언 시, 컬럼 구분자는 테이블 별칭으로만 전달(테이블명으로 사용 시 에러 발생)
    • 즉, 테이블 별칭을 선언한 경우 컬럼참조(동일한 이름의 컬럼을 구분하기 위해 테이블명 또는 별칭을 컬럼명 앞에 전달)는 테이블 명으로 사용 불가
    •  
  • ORACLE에서는 FROM절 생략 불가 (의미상 필요 없는 경우 DUAL 테이블 선언) (23c 버전부터는 생략 가능)
  • MSSQL에서는 FROM절 필요 없을 경우 생략 가능(오늘 날짜 조회 시)

※ 뷰 : 테이블과 동일하게 데이터를 조회할 수 있는 객체이지만 테이블처럼 실제 데이터가 저장된 것이 아닌, SELECT문 결과에 이름을 붙여 그 이름만으로 도회가 가능하도록 한 기능

'SQLD' 카테고리의 다른 글

[2과목] 2-4. where 절  (0) 2024.03.05
[2과목] 2-3. 함수  (0) 2024.03.05
[2과목] 2-1. 관계형 데이터 베이스 개요  (0) 2024.03.05
[1과목] 1-10. 본질식별자  (1) 2024.03.04
[1과목] 1-9. null 속성의 이해  (0) 2024.03.04