3 분 소요

SQLD를 취득하기 위해 공부하는 과정에 작성한 ‘관리 구문’ 관련 정리이다.

DML (Data Manipulation Language) : 데이터를 입력·수정·삭제·조회하는 명령어

INSERT : 테이블에 데이터를 입력하는 명령어

INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES (데이터1, 데이터2, ...);
INSERT INTO 테이블명 VALUES (전체 컬럼에 입력될 데이터 리스트);

UPDATE : 테이블에 이미 저장된 데이터를 수정하는 명령어

UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 (WHERE 수정할 데이터에 대한 조건);

DELETE : 테이블에 이미 저장된 데이터를 삭제하는 명령어

DELETE FROM 테이블명 (WHERE 삭제할 데이터에 대한 조건);

MERGE : 테이블에 새로운 데이터를 입력하거나, 이미 저장된 데이터에 대한 변경 작업을 한번에 처리하는 명령어

MERGE
    INTO 타겟테이블명
    USING 비교테이블명
    ON 조건
    WHEN MATCHED THEN
        UPDATE
            SET 컬럼명 = 새로운 데이터 [, 컬럼명 = 새로운 데이터...]
    WHEN NOT MATCHED THEN
        INSERT [(컬럼명1, 컬럼명2...)]
        VALUES [(데이터1, 데이터2...)]

TCL (Transaction Control Language) : 트랜잭션을 제어하는 명령어

트랜잭션 (Transaction) : 쪼개질 수 없는 업무 처리의 논리적인 단위

  • 원자성 (Atomicity) : 트랜잭션으로 묶인 일련의 동작들은 모두 성공하거나 모두 실패해야 한다.
  • 일관성 (Consistency) : 트랜잭션이 완료된 후에도 데이터베이스가 가진 데이터에 일관성이 있어야 한다.
  • 고립성 (Isolation) : 하나의 트랜잭션은 고립된어 수행되어야 한다.
  • 지속성 (Durability) : 트랜잭션이 성공적일때 트랜잭션이 변경한 데이터가 영구적으로 저장되어야 함을 의미한다.

COMMIT : INSERT, DELETE, UPDATE 후 변경된 내용을 확정·반영하는 명령어

COMMIT;

ROLLBACK : INSERT, DELETE, UPDATE 후 변경된 내용을 취소하는 명령어

ROLLBACK TO A;

SAVEPOINT : ROLLBACK을 수행할 때 전체 작업을 되돌리는 대신 일부만 되돌리는 명령어

SAVEPOINT A;

DDL (Data Definition Language) : 데이터를 정의하는 명령어

  • 문자 : CHAR, VARCHAR, CLOB
  • 숫자 : NUMBER
  • 날짜 : DATE

CREATE : 테이블을 생성하는 명령어

  • 테이블 생성 시 반드시 지켜야 하는 규칙 : 지키지 않으면, 에러 발생!
    • 테이블명은 고유해야 함
    • 한 테이블 내에서 컬럼명은 고유해야 함
    • 컬럼명 뒤에 데이터 유형과 데이터 크기가 명시되어야 함
    • 컬럼에 대한 정의는 괄호 () 안에 기술되어야 함
    • 각 컬럼들은 콤마 ,로 구분됨
    • 테이블명과 컬럼명은 숫자로 시작될 수 없음
    • 마지막은 세미콜론 ;으로 끝남
CREATE TABLE 테이블명 (
    컬럼1 데이터타입 (NULL|DEFAULT 옵션)
    ...
)
CREATE TABLE 테이블명 AS SELECT * FROM 복사대상테이블명;

제약조건 (CONSTRAINT) : 테이블에 저장될 데이터의 무결성 (정확성·일관성)을 유지하고, 데이터의 결함이 없음을 보증

  • CREATE로 테이블을 생성할 때, 향후 테이블에 저장될 데이터에 대해 일정 제한을 걸 수 있음

기본 키 (PRIMARY KEY) : 테이블에 저장된 각각의 ROW에 대한 고유성 보장 (NULL 값 불가)

고유 키 (UNIQUE KEY) : 테이블에 저장된 각각의 ROW에 대한 고유성 보장 (NULL 값 허용)

NOT NULL : 해당 컬럼에 NULL 값이 입력되는 것을 금지

CHECK : 컬럼에 저장될 수 있는 값의 범위를 제한

외래 키 (FOREIGN KEY) : 하나의 테이블이 다른 테이블ㅇ르 참조할 때 정의

  • CASCADE : 부모 값을 삭제할 때, 자식 값도 같이 삭제
  • SET NULL : 부모 값을 삭제할 때, 자식의 컬럼을 NULL로 처리
  • SET DEFAULT : 부모 값을 삭제할 때, 자식의 해당 컬럼을 DEFAULT 값으로 변경
  • RESTRICT : 자식 테이블에 해당 데이터가 PK로 존재하지 않는 경우에만 부모 값 삭제·수정 가능
  • NO ACTION : 참조 무결성 제악이 걸린 경우 삭제·수정 불가

ALTER : 테이블의 구조를 변경하는 명령어

ADD COLUMN : 새로운 컬럼을 추가하는 명령어

ALTER TABLE 테이블명 ADD 컬럼명 데이터유형;

DROP COLUMN : 기존에 있는 컬럼을 삭제하는 명령어

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

MODIFY COLUMN : 기존에 있는 컬럼을 변경하는 명령어

ALTER TABLE 테이블명 MODIFY (컬럼명1 데이터유형 [DEFAULT 옵션] [NOT NULL 옵션]...);

RENAME COLUMN : 기존에 있는 컬럼의 이름을 변경하는 명령어

ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;

ADD CONSTRAINT : 제약조건을 추가하는 명령어

ADD TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명); 

DROP TABLE : 테이블을 삭제하는 명령어

DROP TABLE 테이블명 [CASCADE CONSTRAINT];

RENAME TABLE : 테이블을 변경하는 명령어

RENAME 기존테이블명 TO 변경테이블명;

TRUNCATE TABLE : 테이블에 저장된 데이터를 모두 제거하는 명령어

TRUNCATE TABLE 테이블명;

DCL (Data Control Language) : 사용자 (USER)를 생성하고 권한 및 역할을 부여하는 명령어

  • 하나의 데이터베이스는 여러 사용자들을 가질 수 있음

사용자 관련 명령어

CREATE USER : 사용자를 생성하는 명령어

CREATE USER 사용자명 IDENTIFIED BY 패스워드;

ALTER USER : 사용자를 변경하는 명령어

ALTER USER 사용자명 IDENTIFIED BY 패스워드;

DROP USER : 사용자를 삭제하는 명령어

DROP USER 사용자명;

권한 관련 명령어

GRANT : 사용자에 권한을 부여하는 명렁어

GRANT 권한 TO 사용자명;

REVOKE : 사용자에 권한을 회수하는 명렁어

REVOKE 권한 FROM 사용자명;

역할 관련 명령어

ROLE을 이용한 권한 부여

CREATE ROLE 역할명;
GRANT 권한 TO 역할명;
GRANT 역할명 TO 사용자명;

태그:

업데이트: