상세 컨텐츠

본문 제목

[개미의 걸음 SQLD 2과목] SQL(Structured Query Language)

자격증/SQLD

by IT개미 데이터 2020. 12. 17. 07:07

본문

728x90

SQL[Structured Query Language]

관계형 데이터베이스에 대해 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 언어

  • SQL문은 관계형 데이터베이스에서 데이터를 CRUD처리하기 위해 사용하는 질의 언어
        → 임의의 조건에 맞는 데이터 전체를 한꺼번에 CRUD 처리 가능
              ※ CRUD[Create, Read, Update, Delete]
  • SQL문을 사용하면 데이터베이스를 누구나 쉽게 사용 가능
  • SQL문은 ANSI/ISO 표준을 준수하기 때문에 데이터베이스 관리 시스템이 변경되어도 그대로 사용 가능
        → SQL는 표준 언어이므로 RDBMS 제품의 종류에 구애받지 않고 사용가능하나 제품별로 사용법이 조금씩 다름

# CRUD[Create Read Update Delete]

더보기

대부분의 컴퓨터 소프트웨어가 가지고 있는 기본적인 데이터 처리 기능
Create[생성], Read[읽기], Update[갱신], Delete[삭제]를 의미

# 제품별로 SQL 사용법이 다른 이유

더보기

 

1970년대 후반에 RDBMS 상용 제품이 출시된 뒤, 다양한 제품들이 등장

하지만 1986년이 되어서야 ANSI[American National Standards Institute]에서 SQL 표준인 'SQL-87'을 제정

RDBMS 제조사들이 버전을 업데이트하면서 가급적 표준을 준수하는 방향으로 나아갔지만 아직 약간의 차이 존재

 

SQL 표준

ANSI/ISO SQL 표준 INNER JOIN NATURAL JOIN, USING 조건, ON 조건절을 사용
ANSI/ISO SQL3 표준 DBMS 벤더별로 차이가 있던 SQL을 표준화하여 제정

 

SQL의 종류

DDL
[Data Definition Language]

테이블, 뷰, 인덱스, 시퀀스, 동의어 등의 데이터베이스 객체들을 생성*삭제*수정하는데 사용되는 SQL문[데이터를 저장할 구조를 정의하는 언어]
  * CREATE  : 객체 생성
  * DROP    : 객체 삭제
  * ALTER    :  객체 변경
  * RENAME : 객체 이름 변경
  * TRUNCATE TABLE : 테이블 내의 데이터 전부 삭제[복구 불가]
DML
[Data Manipulation Language]

데이터를 직접 조작하는 것이 가능해 가장 많이 사용하는 SQL문
  * SELECT  : 테이블이나 뷰에서 데이터 조회
  * INSERT  : 데이터 입력
  * UPDATE : 기존에 저장된 데이터 수정
  * DELETE  : 테이블 내의 데이터 삭제[조건에 맞는 데이터만 삭제 가능, 복구 가능]
  * MERGE  : 조건에 따라 INSERT와 UPDATE 수행
TCL
[Transaction Control Language]

트랜잭션을 처리하는 SQL문
  * COMMIT   : DML로 변경된 데이터를 DB에 적용
  * ROLLBACK : DML로 변경된 데이터를 변경 이전 상태로 되돌림
  * SAVEPOINT : 오류 복구 처리에 효과적인 방법
                         전체 트랜잭션을 ROLLBACK하지 않고도 오류 복귀 가능
DCL
[Data Control Language]

객체에 대한 권한을 할당하거나 회수하는 SQL문
  * CRANT  : 객체에 대한 권한을 할당
  * REVOKE : 객체에 할당된 권한을 회수
  * TRUNCATE : 개별 행 삭제를 로깅하지 않고 테이블 또는 테이블의 지정된 파티션에서 모든 행을 제거

※ DCL로 데이터 베이스의 사용자에게 권한 부여

      → 권한이 부여되면 DDL로 데이터 구조 정의

            → 데이터 구조가 정의되면 DML로 데이터 입력 및 조회

                  → TCL로 변경된 데이터를 적용하거나 오류를 복구시킴

※ TRUNCATE는 테이블 자체가 삭제되는 것이 아니고 해당 테이블에 들어있던 모든 행이 제거되고 저장공간을 재사용 가능하도록 제거

※ TRUNCATE는 삭제 로그를 남기지 않음[삭제 로그가 필요할 경우 DELETE로 삭제]

# 트랜잭션[Transaction]

더보기

데이터베이스의 작업을 처리하는 단위

 

SQL문의 실행순서

파싱[Parsing] → 실행[Execution] → 인출[Fetch]

1. 파싱[Parsing] SQL문의 문법을 확인하고 구문분석
구분분석한 SQL문은 Library Cache에 저장
2. 실행 [Execution] 옵티마이저[Optimizer]가 수립한 실행 계획에 따라 SQL을 실행
3. 인출[Fetch] 데이터를 읽어서 전송

 

728x90

관련글 더보기

댓글 영역