-
[SQL] DDL / DML / DCL / TCLDatabase 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';'Database' 카테고리의 다른 글
[SQL] 옵티마이저 (0) 2023.07.06 [SQL] 소프트 파싱 / 하드 파싱 (0) 2023.07.05 [SQL] 인덱스 스캔 방식 (0) 2023.07.05 [SQL] 내장 함수 - 문자형 함수 (0) 2023.07.04 [SQL] 내장 함수 - 단일행 함수(Single-Row Function) (0) 2023.07.04