ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL] DDL / DML / DCL / TCL
    Database 2023. 7. 4. 22:51
    데이터 정의어 (DDL)
    CREATE
    데이터베이스 개체 생성
    ALTER
    데이터베이스 개체 수정
    DROP
    데이터베이스 개체 삭제
    RENAME
    데이터베이스 개체 이름 변경
    TRANCATE
    테이블의 모든 행 삭제
    데이터 조작어 (DML)
    SELECT
    데이터 조회
    INSERT
    데이터 삽입
    UPDATE
    데이터 수정
    DELETE
    데이터 삭제
    데이터 제어어(DCL)
    GRANT
    특정 사용사에게 특정 작업에 대한 권한 부여
    REVOKE
    특정 사용사에게 특정 작업에 대한 권한 취소
    트랜젝션 제어(TCL)
    COMMIT
    트랜젝션의 작업결과를 저장 반영
    ROLLBACK
    트렌잭션 작업 취소
    데이터베이스를 마지막 commit된 시점의 상태로 복원
    SAVEPOINT
    현 시점에서 savepoint 까지의 트랜젝션만 rollback하기 위한 명령어

    데이터 정의어 (DDL:Data Definition Language)

    : 데이터베이스 생성 스키마 정의, 수정 또는 삭제하기 위해 사용되는 언어

    #Oracle
    CREATE TABLE employees( 
          employee_id    NUMBER(6)
          first_name     VARCHAR2(20),
          last_name      VARCHAR2(25),
          email          VARCHAR2(25),
          hire_date      DATE,
          job_id         VARCHAR2(10),
          manager_id     NUMBER(6)
        ) ;
    
    ALTER TABLE employees ADD (department_id NUMBER(4));
    
    TRUNCATE TABLE employees; -- 테이블의 데이터를 모두 삭제
    
    DROP TABLE employees; -- 테이블을 삭제
     

     

    데이터 조작어 (DML:Data Manipulate Language)

    : 데이터의 삽입, 삭게, 수정, 검색 등의 처리를 요구하기 위해 사용하는 언어

    SELECT * FROM employees;
    
    INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, manager_id, department_id )  VALUES (100, 'King', 'kim', 'SKING', '14-FEB-2011', 'AD_PRES', 100, 90);
    INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, manager_id, department_id )  VALUES (101, 'Kochhar', 'choi', 'KOCH', '21-SEP-2015', 'AD_VP', 100, 90);
    INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, manager_id, department_id )  VALUES (102, 'Hann', 'pack', 'LDEH', '13-JAN-2017', 'AD_VP', 102, 90);
    INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, manager_id, department_id )  VALUES (104, 'AHUNOLD', 'kim', 'HUNO', '28-FEB-2020', 'IT_PROG', 102, 60);
    
    UPDATE employees SET department_id=100 WHERE employee_id=104;
    
    DELETE FROM employees WHERE employee_id=104;

     

     

    데이터 제어어 (Data Contral Language)

    : 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용하는 언어

    GRANT SELECT ON employees TO user1;
    REVOKE SELECT ON employees FROM user1;

     

    트랜잭션 제어어 (TCL:Transaction Control Language)

    : 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션)별로 제어하는 명령어

    ALTER TABLE employees ADD ( salary NUMBER(6) );
    UPDATE employees SET salary=9000 WHERE employee_id=100;
    UPDATE employees SET salary=9000 WHERE employee_id=101;
    UPDATE employees SET salary=9000 WHERE employee_id=102;
    
    SET TRANSACTION NAME 'Update salaries';
    
    SAVEPOINT before_salary_update;
    
    UPDATE employees SET salary=9100 WHERE employee_id=100;
    
    ROLLBACK TO SAVEPOINT before_salary_update;
    
    UPDATE employees SET salary=9200 WHERE employee_id=100;
    
    COMMIT COMMENT 'Updated salaries';

     

Designed by Tistory.