[정보처리산업기사 실기] SQL 활용 - 2

파주상남자의엔지니어일기 ㅣ 2025. 3. 29. 10:38

반응형

DML - SELECT

가장 많이 사용되는 명령문

  • 일반 형식
# 표기 형식
SELECT [PREDICATE] [테이블명.]속성명 [AS  별칭][, [테이블명.]속성명, ...] [그룹함수 (속성명) [AS 별칭]] [, WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2, ... ORDER BY 속성명3, 속성명4, ...)] FROM 테이블명[, 테이블명, ...] [WHERE 조건] [GROUP BY 속성명, 속성명, ...] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC]];

SELECTPREDICATE : 검색할 튜플 수를 제한하는 명령어 기술
DISTICT : 중복된 튜플이 있으면 그 중 첫 번째 한 개만 표시속성명 : 검색을 통해 불러올 속성(열) 또는 속성을 이용한 수식 지정AS : 속성이나 연산의ㅡ 이름을 다른 이름으로 표시하기 위해 사용
FROM : 검색할 데이터가 들어있는 테이블 이름을 기술
WHERE : 검색할 조건 기술
ORDER BY : 데이터를 정렬하여 검색할 때 사용속성명 : 정렬의 기준이 되는 속성명 기술
ASC : 오름차순 정렬
DESC : 내림차순 정렬생략 : 오름차순 정렬그룹함수 : GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수 기술WINDOW 함수 : GROUP BY절을 이용하지 않고 속성의 값을 집계할 함수 기술
PARTITION BY : WINDOW 함수의 적용 범위가 될 속성 지정
ORDER BY : PARTITION 안에서 정렬 기준으로 사용할 속성 지정
GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용
HAVING : GROUP BY와 함께 사용되며, 그룹에 대한 조건 지정

  • 조건 연산자
    • 비교 연산자
    연산자 = <> > < >= <=
    의미 같다 같지 않다 크다 작다 크거나 같다 작거나 같다
    • 논리 연산자 : NOT, AND, OR
    • LIKE 연산자
    대표 문자 % _ #
    의미 모든 문자를 대표함 문자 하나를 대표함 숫자 하나를 대표함
  • 기본 검색
  • SELCET 절에 원하는 속성을 지정하여 검색
  • 조건 지정 검색
  • WHERE 절에 조건을 저징하여 조건에 만족하는 튜플만 검색
  • 정렬 검색
  • ORDER BY 절에 특정 속성을 지정해 지정된 속성으로 자료를 정렬 후 검색
  • 하위 질의
  • 조건절에 주어진 질의를 먼저 수행 후 그 검색 결과를 조거ㅏㄴ절의 피연산자로 사용
  • 복수 테이블 검색
  • 여러 테이블을 대상으로 검색 수행
  • 그룹 함수

함수 기능

COUNT(속성명) 그룹별 튜플 수를 구하는 함수
SUM(속성명) 그룹별 합계를 구하는 함수
AVG(속성명) 그룹별 평균을 구하는 함수
MAX(속성명) 그룹별 최대값을 구하는 함수
MIN(속성명) 그룹별 최소값을 구하는 함수
STDDEV(속성명) 그룹별 표준편자를 구하는 함수
ROLLUP(속성명, 속성명,...) n개의 속성을 n+1레벨까지 하위레벨에서 상위레벨 순으로 데이터를 집계해 그룹별 소계를 구하는 함수
CUBE(속성명, 속성명, ...) n개의 속성을 2n레벨까지 상위레벨에서 하위레벨 순으로 데이터를 집계해 모든 조합의 그룹별 소계를 구하는 함수
  • WINDOW 함수
  • ROW_NUMBER() : 윈도우별로 각 레코드에 대한 일련번호 반환RANK() : 윈도우별로 순위를 반환하며, 공동 순위 반영DENSE_RANK() : RANK()와 같지만 공동순위를 무시하고 순위를 부여
  • WINDOW 함수 이용 검색GROUP BY절을 이용하지 않고 함수의 인수로 지정한 속성을 범위로 하여 속성의 값을 집계
  • 그룹 지정 검색GROUP BY절에 지정한 속성을 기준으로 자료를 그룹화하여 검색
  • 집합 연산자를 이용한 통합 질의집합 연산자를 사용해 2개 이상의 테이블의 데이터를 하나로 통합UNION(합집합) : 두 SELECT문의 조회 결과를 통합 후 중복된 행은 한번만 출력하고 그 외는 모두 출력UNION ALL(합집합) : UNION과 동일하지만 중복된 행도 그대로 출력INTERSECT(교집합) : 두 SELECT문의 조회 결과 중 고옹된 행만 출력EXCEPT(차집합) : 첫 번째 SELECT문의 조회 결과에서 두 번째 SELECT문의 조회 결과를 제외한 행을 출력
  • # 표기 형식 SELECT 속성명1, 속성명2, ... FROM 테이블명 UNION | UNION ALL | INTERSECT | EXCEPT SELECT 속성명1, 속성명2, ... FROM 테이블명 [ORDER BY 속성명 [ASC | DESC]];

DML - JOIN

연관된 튜플을 결합하여, 하나의 새로운 릴레이션 반환

  • INNER JOIN
    • EQUI JOIN공통 속성을 기준으로 '='(equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN 방법
      # NATURAL JOIN절을 이용한 표기 형식
      SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 NATURAL JOIN 테이블명2;
      
      # JOIN~USING절을 이용한 표기 형식
      SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 JOIN 테이블명2 USING(속성명);
      
    • # WHERE절을 이용한 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2, ... WHERE 테이블명1.속성명 = 테이블명2.속성명;
    • NON-EQUI JOIN'='조건이 아닌 나머지 비교 연산자를 사용하는 JOIN 방법
    • # 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2, ... WHERE (NON-EQUI JOIN 조건);
  • OUTER JOINJOIN 조건에 만족하지 않는 튜플도 출력하기 위한 JOIN 방법
    • LEFT OUTER JOININNER JOIN의 결과를 구한 후 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여 결과에 추가
      # 표기 형식 2
      SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명 = 테이블명2.속성명(+);
      
    • # 표기 형식 1 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
    • RIGHT OUTER JOININNER JOIN의 결과를 구한 후 우측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여 결과에 추가
      # 표기 형식 2
      SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명(+) = 테이블명2.속성명;
      
    • # 표기 형식 1 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
    • FULL OUTER JOINLEFT 방법과 RIGHT 방법을 합친 것
    • # 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 FULL OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;

데이터 사전

  • 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보의 집합체
  • 데이터 사전 테이블

테이블명 메타 데이터 DBMS

TABLES 테이블에 대한 정보 My-SQL, Oracle
VIEWS 뷰에 대한 정보 My-SQL, Oracle
COLUMNS 속성에 대한 정보 My-SQL
TAB_COLUMNS 속성에 대한 정보 Oracle
TRIGGERS 트리거에 대한 정보 My-SQL, Oracle
  • My-SQL의 조회테이블들이 모여있는 INFORMATION SCHEMA로 이동 후 SHOW 명령으로 스키마 내의 테이블 목록을 확인USE INFORMATION_SCHEMA;'INFORMATION_SCHEMA'로 이동SHOW TABLES;'INFORMATION_SCHEMA'에 저장된 데이터 사전 테이블들의 목록을 조회메타 데이터를 저장하고 있는 데이터 사전 테이블이 조회SELECT * FROM [테이블];테이블에 있는 모든 속성 조회
  • # 표기 방식 USE INFORMATION_SCHEMA; SHOW TABLES; SELECT * FROM [테이블];
  • Oracle의 조회'영역'을 지정하여 정보 조회SELECT * : 모든 속성 표시FROM [영역][테이블] : <[영역][테이블]>에 해당하는 정보 조회영역 : DBA, ALL, USER 중 필요한 접근 권한 입력테이블 : 조회할 메타 데이터가 저장된 테이블 입력
  • # 표기 형식 SELECT * FROM [영역]_[테이블];
반응형