Skip to main content

SELECT


질의 작성기

  • 질의 작성기 (Query Builder): GUI를 통해 드래그 앤 드롭 방식으로 SQL 쿼리를 시각적으로 생성하는 도구
  • 사용 방법:
    1. 테이블을 마우스로 드래그하여 질의 작성기에 추가
    2. 원하는 열(컬럼) 선택
    3. 워크시트로 이동
    4. 명령문 실행(CTRL+ENTER)
    5. 질의 결과

SELECT 문의 기본 구조: SELECT 절과 FROM 절

  • SQL의 가장 기본적이고 중요한 명령어: 데이터베이스에서 원하는 데이터를 가져오는 역할
  • SELECT 절: 조회하고자 하는 열(컬럼)을 지정
  • FROM 절: 데이터가 위치한 테이블을 지정
  • 기본 문법:
SELECT column1, column2, ...
FROM table_name;
  • 예시: TB_COMPANY_MASTER 테이블에서 COMPANY_NM (업체명)과 CEO_NM (대표자명) 조회
SELECT COMPANY_NM, CEO_NM
FROM TB_COMPANY_MASTER;

SQL 실행 계획

  • SQL Developer에서 SQL 구문에 F10 키를 누르거나 다음 명령을 실행
EXPLAIN PLAN FOR SELECT * FROM TB_COMPANY_MASTER; -- 실행 계획 생성
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); -- 실행 계획 보기
  • OPTIONS: 처리 방법(FULL: 테이블 전체를 스캔)
  • CARDINALITY: 예상되는 실행 결과 행 수 (실제 결과와 크게 다를 경우 질의가 비효율적)
  • COST: 예상되는 실행 비용 (비용이 높으면 질의가 비효율적)

모든 열 조회 및 특정 열 선택 조회

  • 모든 열 조회 (* 와일드카드): 테이블의 모든 열을 빠르게 확인하고 싶을 때 사용
SELECT *
FROM TB_COMPANY_MASTER;
  • 특정 열 선택 조회: 필요한 데이터만 선택하여 효율적으로 조회
SELECT BIZ_REG_NO, COMPANY_NM, ESTABLISH_DT
FROM TB_COMPANY_MASTER;
  • 열의 순서: SELECT 절에 명시한 순서대로 결과가 표시됨

AS 키워드를 이용한 열 별칭(Alias) 지정

  • 열 별칭(Column Alias)의 필요성:
    • 조회 결과의 열 이름을 더 이해하기 쉽게 변경
    • 연산 결과나 함수 사용 시 결과 열에 의미 있는 이름 부여
    • 테이블 간 JOIN 시 동일한 열 이름 구분
  • AS 키워드 사용법:
    • 별칭에 공백이나 특수문자가 포함될 경우 큰따옴표(" ")로 묶어줌
SELECT original_column_name AS alias_name
FROM table_name;
  • 예시:
SELECT COMPANY_NM AS "회사명", CEO_NM AS "대표자 이름", ESTABLISH_DT AS "설립일"
FROM TB_COMPANY_MASTER;
SELECT COMPANY_NM 회사명, CEO_NM 대표자명 -- AS 생략
FROM TB_COMPANY_MASTER;

주석

코드에 대한 설명

/* 슬래시와 별표,
여러 줄에 걸쳐
주석을 작성할 때
사용 */
-- 빼기 두 번, 한 줄 주석을 작성할 때 사용

힌트

  • SQL 질의의 최적화를 위해 힌트를 추가할 수 있음
  • 힌트는 SELECT 뒤에 주석 형식으로 추가
  • 주석 기호 뒤에 공백 없이 + 표시를 붙임
SELECT /*+ FULL(TB_COMPANY_MASTER) */
*
FROM TB_COMPANY_MASTER;
  • 테이블 전체를 스캔하라는 힌트
    • 최적화를 위해 자동으로 테이블 일부만 스캔하는 경우가 있음
    • 테이블의 대부분 데이터를 읽어야 할 경우, 불필요한 최적화가 오히려 성능을 떨어트릴 수 있음

SELECT 절에서의 간단한 산술 연산

  • SELECT 절 내 연산: 숫자 데이터 타입의 열에 대해 기본적인 산술 연산(+, -, *, /) 가능
  • DUAL은 Oracle의 가상 테이블로, 임시 데이터 조회에 사용 (DBMS에 따라 생략 가능)
SELECT 1 + 1 FROM DUAL;

SELECT 3 - 2 FROM DUAL;

SELECT 2 * 3 FROM DUAL;

SELECT 4 / 2 FROM DUAL;

SELECT (4 + 3) * 2 AS "괄호 사용" FROM DUAL;
  • 활용: 기존 데이터를 가공하여 새로운 의미의 값 조회 (예: 할인율 적용 금액, 부가세 포함 금액 등)
SELECT BIZ_REG_NO, FS_YM, TOTAL_ASSETS, TOTAL_LIABILITIES,
(TOTAL_ASSETS - TOTAL_LIABILITIES) AS 순자산 -- 총자산 - 총부채
FROM TB_FINANCIAL_STATEMENT;
SELECT LOAN_ACCT_NO, LOAN_AMT, LOAN_AMT / 1000000000 AS "대출금액(십억원)"
FROM TB_LOAN_ACCOUNT;

퀴즈