SQL문장종류 - DML, DDL, DCL, TCL

김두나·2023년 8월 28일

데이터베이스

목록 보기
2/6

NO.1

1. SQL문장 종류

명령어 종류명령어설명
데이터 조작어
(DML: Data Manipulation Language)
SELECT데이터베이스에 들어있는 데이터를 조회하거나 검색
INSERT
UPDATE
DELETE
데이터베이스의 테이블에 들어있는 데이터를 변형 (새로운행 삽입 / 수정 / 삭제)
데이터 정의어
(DDL:Data Definition Language)
CREATE
ALTER
DROP
RENAME
테이블과 같은 데이터 구조를 정의
( 구조를 생성 / 변경 / 삭제 / 이름변경 )
데이터 제어어
(DCL:Data Control Language)
GRANT
REVOKE
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수
트랜잭션 제어어
(TCL:Transaction Control Language)
COMMIT
ROLLBACK
논리적인 작업단위를 묶어서 DML에 이희 조작된 결과작업단위 (트랜잭션) 별로 제어

NO.2

1. 테이블 컬럼 정의 변경

  • ORACLE

    ALTER TABLE 테이블명 MODIFY ( 컬럼명 데이터타입(사이즈) NULL여부 );

    --> MODIFY ( 컬럼명~)
  • SQL Server

    ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 데이터타입(사이즈) NULL여부;

    --> ALTER COLUMN 컬럼명~

2. Delete Action 명령어

  • Casecade : 부모 테이블 삭제 시 자식 테이블도 같이 삭제
  • Set Null : 부모 테이블 삭제 시 자식 테이블의 해당 필드를 Null값 처리
  • Set Default : 부모 테이블 삭제 시 자식 테이블 해당 필드 값을 기본 값으로 처리
  • Restrict : 자식 테이블에 PK값이 없는 경우만 부모 테이블 삭제 허용
  • No Action : 참조 무결성을 위반하는 삭제/수정 액션을 취하지 않음

3. Insert Action 명령어

  • Automatic : 부모 테이블에 PK가 없는 경우 부모 테이블 PK를 생성 후 자식 데이터를 입력
  • Set Null/Set Default : Delete 명령과 비슷
    -> 단 부모 테이블에 PK가 없는 경우를 전제함.
  • Dependent : 부모 테이블에 PK가 존재할 때만 자식 테이블 입력 허용
  • NO Action : 참조 무결성을 위반하는 입력 액션 취하지 않음

    NO.3

    1. 기본 용어

  • 트랜잭션 : 데이터베이스의 논리적 연산 단위 -> 분리될 수 없는 한개 이상의 데이터베이스 조작
    • BEGIN TRANSACTION : 트랜잭션 시작
    • COMMIT : 데이터에 대한 변경사항을 데이터 베이스에 영구적으로 반영
    • ROLLBACK : COMMIT 되지 않은 사우이의 모든 트랜잭션을 모두 롤백
    • SAVE TRANSATION '저장점 이름' : 롤백 시, 전체 롤백을 막기 위한 저장점 지정 -> 현시점에서 저장점까지 일부만 롤백
      ->SAVEPOINT는 전체 ROLLBACK을 막음
      -> 특정 SAVEPOINT를 지정한 부분까지 롤백하면 그 이후의 명령어는 모두 무시

[오라클]
SAVEPOINT SVPT1;
...
ROLLBACK TO SVPT1;

[SQL Server]
SAVE TRANSACTION SVTR1;
...
ROLLBACK TRANSACTION SVTR1;

0개의 댓글