SQL 기본 문법 및 개념

보히·2024년 8월 2일
  • SQL 명령어의 종류
    Data Definition Language (DDL): 테이블, 인덱스 등의 데이터베이스 구조를 정의하거나 변경하는 명령어
    예: CREATE, ALTER, DROP, TRUNCATE

Data Manipulation Language (DML): 테이블의 데이터에 대해 삽입, 수정, 삭제를 수행하는 명령어
예: INSERT, UPDATE, DELETE, SELECT

Data Control Language (DCL): 사용자 권한을 제어하는 명령어
예: GRANT, REVOKE

Transaction Control Language (TCL): 트랜잭션의 처리 과정을 제어하는 명령어
예: COMMIT, ROLLBACK, SAVEPOINT

  1. Drop, Truncate, Delete
    1-1. DROP
    기능: 테이블, 뷰, 인덱스 등을 완전히 삭제합니다.
    명령어: DROP TABLE 테이블명;
    특징:
    테이블이 삭제되어 구조와 데이터가 모두 제거됩니다.
    복구할 수 없으며, 테이블을 다시 만들려면 CREATE TABLE을 사용해야 합니다.

1-2. TRUNCATE
기능: 테이블의 모든 데이터를 삭제합니다.
명령어: TRUNCATE TABLE 테이블명;
특징:
테이블 구조는 그대로 남고 데이터만 제거됩니다.
빠르게 데이터 삭제가 가능하며, 로그가 적게 남습니다.
DELETE와 달리 WHERE 조건을 사용할 수 없습니다.
DDL문으로 처리되며, 자동으로 COMMIT이 수행됩니다.

1-3. DELETE
기능: 테이블에서 특정 조건을 만족하는 데이터만 삭제합니다.
명령어: DELETE FROM 테이블명 WHERE 조건;
특징:
조건에 맞는 데이터만 선택적으로 삭제할 수 있습니다.
삭제 후 COMMIT을 수행해야 변경 사항이 확정됩니다.
데이터 삭제 시 로그가 남아, 롤백이 가능합니다.
트랜잭션의 일환으로 처리되며, ROLLBACK으로 취소할 수 있습니다.

  1. COMMIT
    기능: 트랜잭션의 모든 변경 사항을 데이터베이스에 영구적으로 저장합니다.
    명령어: COMMIT;
    특징:
    트랜잭션을 종료하고, 변경된 데이터를 다른 사용자와 공유합니다.
    모든 작업이 정상적으로 처리되었음을 확정합니다.

  2. ROLLBACK
    기능: 트랜잭션에서 발생한 변경 사항을 취소하고, 이전 상태로 되돌립니다.
    명령어: ROLLBACK;
    특징:
    트랜잭션의 처리 과정에서 문제가 발생하면 전체 작업을 취소합니다.
    COMMIT 이전 상태로 되돌리며, SAVEPOINT를 사용하여 특정 시점으로 복구할 수도 있습니다.
    비정상적인 종료 시 자동으로 롤백이 발생할 수 있습니다.

  3. COMMIT과 ROLLBACK의 장점
    데이터 무결성 보장: 연관된 작업을 하나의 트랜잭션으로 묶어 작업의 일관성을 유지합니다.
    작업 그룹화: 논리적으로 관련된 작업을 그룹화하여 관리할 수 있습니다.

  4. 자동 ROLLBACK
    비정상 종료: 데이터베이스가 비정상적으로 종료되면, 최근 트랜잭션 변경 사항이 자동으로 롤백됩니다.

  5. 자동 COMMIT
    DDL 구문: CREATE, ALTER, DROP, TRUNCATE와 같은 DDL 명령어는 자동으로 COMMIT이 수행됩니다.
    DCL 구문: GRANT, REVOKE 명령어도 자동으로 COMMIT됩니다.
    트랜잭션 종료: INSERT, UPDATE, DELETE 작업 후 COMMIT을 하지 않고 데이터베이스를 정상 종료하면, 변경 사항이 자동으로 저장됩니다.

  6. 데이터 제어어 (Data Control Language, DCL)
    GRANT: 사용자에게 특정 권한을 부여하는 명령어

예: GRANT SELECT, INSERT ON 테이블명 TO 사용자명;
REVOKE: 사용자에게 부여된 권한을 취소하는 명령어

예: REVOKE SELECT, INSERT ON 테이블명 FROM 사용자명;

0개의 댓글