본문 바로가기
Data Analysis/정보처리기사

[3과목 데이터베이스 구축] 03. SQL 활용

by suvii 2024. 4. 19.

[Sec 1. 기본 SQL 작성]

SQL문의 특징
- 여러 줄에 나누어 입력이 가능하다.
- 문장 끝에는 세미콜론(;)을 붙인다.
- 키워드는 대소문자를 구분하지 않는다.
- 정렬순서의 기본값은 오름차순이다.


DDL (데이터 정의어)

  • 객체 유형
    : 스키마, 도메인, 테이블, 뷰, 인덱스
  • 조작 방법
    • CREATE : 데이터베이스 객체 생성 (CREATE .. AS ..)
    • ALTER : 기존에 생성된 데이터베이스 객체의 구조 변경
    • DROP : 데이터베이스 객체 삭제
    • TRUNCATE : 테이블의 모든 데이터 삭제, 구조만 남김
  • 제약 조건
    : PRIMARY KEY(개체 무결성), FOREIGN KEY(참조 무결성), UNIQUE, NOT NULL, CHECK

 

DML (데이터 조작어)

  • 조작 방법
    • SELECT : 데이터 조회
      SELECT * FROM TABLE / WHERE .. AND .. / GROUP BY .. HAVING .. / ORDER BY ..
      ** Wild Card : %, _ → LIKE과 함께 쓰임
    • UPDATE : 테이블의 기존 데이터 갱신
      UPDATE TABLE SET .. WHERE
    • INSERT : 테이블에 데이터 추가
      INSERT INTO TABLE(A, B) VALUES (’A’, ‘B’)
    • DELETE : 테이블에서 데이터 삭제
      DELETE FROM TABLE WHERE

 

DCL (데이터 제어어)

  • 조작 방법
    • GRANT : 사용자에게 권한을 부여
      GRANT [주고자 하는 권한] ON [테이블] TO [사용자] (WITH GRANT OPTION)
      ** WITH GRANT OPTION : 지정된 권한을 다른 유저에게 부여할 수 있도록 함
    • REVOKE : 사용자로부터 권한을 회수
      REVOKE [회수하고자 하는 권한] ON [테이블] TO [사용자] (CASCADE)
      ** CASCADE : 사용자가 부여한 모든 사용자의 권한도 같이 회수

 

TCL (트랜잭션 제어어)

  • COMMIT : 트랜잭션 정상 처리 시, 그 결과를 데이터베이스에 반영하는 명령어
  • ROLLBACK : 오류 발생 시 변경 사항을 되돌리고 데이터를 이전 상태로 복구하는 명령어
  • SAVEPOINT : 트랜잭션 중 특정 지점에 대해 저장점을 생성하는 명령어

트랜잭션 : 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위, 또는 한꺼번에 모두 수행되어야 할 일련의 연산들

  • 성질(ACID)
    • 원자성(Atomicity) : 트랜잭션 내 모든 연산은 모두 반영/모두 미반영이어야 한다.
    • 일관성(Consistency) : 트랜잭션 완료 후에는 DB가 일관된 상태를 유지해야 한다.
    • 격리성·독립성(Isolation) : 동시에 실행되는 여러 트랜잭션은 서로 간섭할 수 없다.
    • 영속성(Durability) : 트랜잭션이 한 번 COMMIT되면, 그 결과는 영구적으로 반영된다.
  • 상태
    • 활동(Active) : 트랜잭션이 실행 중이지만 아직 완료되지 않은 상태
    • 부분 완료(Partially Commited) : 트랜잭션의 마지막 연산이 실행된 직후의 상태, 모든 연산의 처리는 끝났지만 최종 결과를 데이터베이스에 반영하지 않은 상태
    • 완료(Committed) : 트랜잭션이 성공적으로 완료되어 변경 사항이 데이터베이스에 영구적으로 반영된 상태
    • 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
    • 철회(Aborted) : 트랜잭션이 실패하여 롤백이 이루어진 상태, 트랜잭션 재시작 가능

 

 

[Sec 2. 고급 SQL 작성]

  • 집합 연산자 : 여러 개의 SQL 쿼리 결과를 결합하는 데 사용
    조인을 사용하지 않고 연관된 데이터 조회
    SELECT 절의 칼럼수가 동일해야, 같은 위치에 있는 칼럼들은 데이터 타입 호환이 가능해야
    • 종류 : UNION, UNION ALL, INTERSECT, EXCEPT(MINUS)
  • 조인 : 두 개 이상의 테이블을 결합하여 데이터를 검색하는 방법
    관련 있는 칼럼 기준으로 행을 합쳐주는 연산
    주로 Primary Key 또는 Foreign Key를 이용하여 두 테이블 연결
    • Inner Join : 공통으로 존재하는 데이터만 추출, 공통 칼럼 별개로
    • Natural Join : 동일한 이름의 칼럼을 기준으로 자동 조인, 공통 칼럼 하나로
    • Full Outer Join : 좌측 및 우측 테이블의 데이터 모두 포함, 중복 데이터는 하나로
    • Left Outer Join : 좌측 테이블 기준 외부 조인
    • Right Outer Join : 우측 테이블 기준 외부 조인
    • Cross Join : 두 테이블 데이터의 모든 조합을 변환, 조인 조건이 없는 조인
  • 서브쿼리 : SELECT 문 안에 또 다른 SELECT 문이 포함된 형태

  • 그룹 내 집계 함수(Aggregation Function) : 여러 행의 값을 집계하여 단일 값으로 반환하는 함수
    • SELECT절이나 HAVING절에만 사용 가능
    • 종류 : SUM, AVG, MAX, MIN, COUNT
  • OLAP(실시간 데이터 분석 처리, On-Line Analytical Processing)
    • 롤업(Roll-Up) : 작은 단위 → 큰 단위 이동
    • 드릴다운(Drill-Down) : 큰 단위 → 작은 단위 세분화
    • 드릴어크로스(Drill-Across) : 큐브 간 전환
    • 드릴스루(Drill-Through) : 상세 데이터에 접근
    • 슬라이스(Slice, Slicing) : 축을 중심으로 차원 자르기
    • 다이스(Dice, Dicing) : 부분 큐브 선택
    • 피벗(Pivot) : 데이터 축 회전