06 SQL 기초

SQL 개요

  • SQL(Structured Query Language)는 관계형 데이터베이스에서 데이터를 관리하고 처리하는 데 사용되는 표준 프로그래밍 언어

  • SQL은 데이터를 정의하고, 검색하며, 조작하는 기능을 제공함으로써 데이터베이스 관리 시스템(DBMS)에서 핵심적인 역할을 수행함

  • 데이터를 삽입(Insert), 조회(Select), 수정(Update), 삭제(Delete) 등 다양한 작업을 수행할 수 있음

SQL의 역할

  • 데이터 정의: 데이터베이스 스키마(테이블, 열, 데이터 타입 등)를 정의함

  • 데이터 조작: 테이블에 데이터를 삽입, 조회, 수정, 삭제할 수 있음

  • 데이터 제어: 데이터에 대한 권한을 제어하고 트랜잭션을 관리할 수 있음

  • 데이터 무결성 유지: 데이터의 정확성과 일관성을 보장함

SQL의 주요 구성 요소

  • SQL은 각 명령어가 데이터베이스에서 수행하는 작업의 성격에 따라 4 가지로 구분됨

    1. DDL (Data Definition Language) : 데이터베이스 구조를 정의하는 언어 (예: CREATE, ALTER, DROP)

    2. DML (Data Manipulation Language) : 데이터베이스 내의 데이터를 조작하는 언어 (예: SELECT, INSERT, UPDATE, DELETE)

    3. DCL (Data Control Language) : 데이터베이스의 권한을 관리하는 언어 (예: GRANT, REVOKE)

    4. TCL (Transaction Control Language) : 트랜잭션을 제어하는 언어 (예: COMMIT, ROLLBACK)

1. 데이터 정의 언어(DDL)

  • 데이터 정의 언어(DDL, Data Definition Language)는 데이터베이스의 구조(스키마)를 정의하거나 수정하는 명령어를 제공함. 주로 테이블이나 데이터베이스를 생성하거나 수정할 때 사용됨

  • 주요 명령어

    • CREATE : 새로운 데이터베이스 객체(테이블, 인덱스 등)를 생성

    • ALTER : 기존 데이터베이스 객체를 수정

    • DROP : 데이터베이스 객체를 삭제

CREATE

  • 새로운 데이터베이스 객체(테이블, 인덱스 등)를 생성필요한 컬럼과 각 컬럼의 타입 리스트를 정의해주어야 함

ALTER

  • 기존 데이터베이스 객체를 수정

  • Employees 테이블에 DATE 타입의 hire_date라는 컬럼 추가

DROP

  • 데이터베이스 객체를 삭제

  • 테이블 전체를 삭제함

2. 데이터 조작 언어(DML)

  • 데이터 조작 언어(DML, Data Manipulation Language)는 데이터베이스에 저장된 데이터를 조작하는 데 사용되는 명령어로, 데이터를 삽입, 수정, 삭제, 조회할 때 사용됨

    • 주요 명령어

    • SELECT: 데이터를 조회

    • INSERT: 새로운 데이터를 테이블에 삽입

    • UPDATE: 기존 데이터를 수정

    • DELETE: 데이터를 삭제

SELECT

  • 데이터베이스에서 데이터를 조회함

  • 조회하고자 하는 컬럼과 조건을 필터링할 수 있음

INSERT

  • 새로운 데이터를 테이블에 삽입함

UPDATE

  • 기존 데이터를 수정함

DELETE

  • 데이터를 삭제함

  • 삭제하고자 하는 데이터의 조건 입력

3. 데이터 제어 언어(DCL)

  • 데이터 제어 언어(DCL, Data Control Language)는 데이터베이스에 대한 접근을 제어하고, 사용자의 권한을 관리하는 데 사용됨

  • 주요 명령어

    • GRANT: 사용자에게 특정 권한을 부여

    • REVOKE: 사용자에게 부여된 권한을 취소

GRANT

  • 사용자에게 특정 권한을 부여함

  • 사용자에게 특정 권한을 부여하기 위해 우선 사용자를 생성함

  • 생성한 사용자 정보로 DB 접속

  • 사용자에게 부여되지 않은 권한을 실행하면 동작하지 않고 에러 발생

REVOKE

  • 사용자에게 부여된 권한을 취소함

  • 이전에는 실행되었던 INSERT가 더 이상 실행되지 않음

4. 트랜잭션 제어 언어(TCL)

  • 트랜잭션 제어 언어(TCL, Transaction Control Language)는 데이터베이스 트랜잭션을 제어하는 데 사용됨

  • 트랜잭션은 데이터베이스에서 수행하는 일련의 작업으로, 모든 작업이 성공하거나 실패할 때만 데이터가 변경되도록 보장함

  • 주요 명령어

    • COMMIT: 트랜잭션에서 수행한 모든 변경 사항을 저장

    • ROLLBACK: 트랜잭션에서 수행한 모든 변경 사항을 취소

    • SAVEPOINT: 트랜잭션 내에서 되돌릴 지점을 설정

COMMIT

  • 트랜잭션이 성공적으로 완료되었음을 데이터베이스에 알리고, 해당 트랜잭션의 모든 변경 사항을 확정함

ROLLBACK

  • 트랜잭션 중 문제가 발생했을 경우, 해당 트랜잭션에서 수행한 모든 변경 사항을 취소하고 이전 상태로 되돌림

  • 변경 사항 없음

Last updated