Data Definition Language
의 약자이다. 데이터의 구조를 정의하기 위한 테이블 생성, 삭제와 같은 명령어가 포함된다. CREATE, DROP, ALTER, TRUNCATE
등이 있다.()
안에 테이블에 포함될 열과 각 열의 데이터 타입을 나열한다.
CREATE TABLE EMPLOYEES( EMPLOYEE_ID NUMBER(10), NAME VARCHAR2(20), SALARY NUMBER(7,2) );
AS
를 사용해 이미 존재하는 테이블을 복사한 테이블을 생성할 수 있다.
CREATE TABLE EMPLOYEES2 AS SELECT * FROM EMPLOYEES e ; );
ADD
를 사용해 테이블에 컬럼을 추가할 수 있다.
ALTER TABLE EMPLOYEES ADD( MANAGER_ID VARCHAR2(10) );
MODIFY
를 사용해 존재하는 컬럼을 수정할 수 있다.
ALTER TABLE EMPLOYEES MODIFY( MANAGER_ID VARCHAR2(20) );
RENAME COLUMN ~ TO ~
를 사용해 컬럼의 이름을 수정할 수 있다.
ALTER TABLE EMPLOYEES RENAME COLUMN NAME TO EMP_NAME;
DROP TABLE EMPLOYEES2 ;
ALTER
와 함께 사용하면 테이블에 존재하는 컬럼을 삭제할 수 있다.
ALTER TABLE EMPLOYEES DROP COLUMN MANAGER_ID;
DROP
했다가 CREATE
하는 작업으로 모든 행을 삭제할 때는 가장 빠르고 효율적인 작업이다.
TRUNCATE TABLE EMPLOYEES;
Data Manipulation Language
의 약자이다. 데이터의 조회 및 변형을 위한 명령어로, SELECT, INSERT, UPDATE, DELETE
등이 있다.INSERT INTO
다음 데이터를 입력할 테이블을 지정한다.VALUES
만 나열하면 되고, 특정 컬럼에 값을 입력할 때는 테이블명 뒤에 컬럼을 함께 명시해야 한다.
INSERT INTO EMPLOYEES VALUES (1,'테스트',30000); // 전체 컬럼 INSERT INTO EMPLOYEES(EMPLOYEE_ID, EMP_NAME) VALUES (2,'테스트2'); // 특정 컬럼
UPDATE 테이블명 SET
다음 수정할 컬럼과 대입할 값을 나열해서 사용한다. 주로 WHERE
으로 수정할 데이터 조건을 지정한다.
UPDATE SAMPLE SET DEPTNO = 50, DEPTLOC = '인천' WHERE DEPTNO = 30; // DEPTNO 컬럼값이 30인 데이터의 DEPTNO를 50, DEPTLOC을 인천으로 수정한다.
DELETE
다음 데이터를 삭제할 테이블을 명시한다. 조건에 해당하는 것만 지울 수도 있고, 전체를 지울 수도 있다. 조건을 지정할 때는 WHERE
로 지정한다.DELETE
다음 테이블 이름만을 지정하면 해당 테이블을 삭제한다. 한 줄 한 줄 삭제하는 명령어이므로 시간상으로는 가장 느린 작업이지만, 삭제 로그를 남긴다.
DELETE SAMPLE WHERE DEPTNAME = '영업부'; // SAMPLE 테이블에서 DEPTNAME 컬럼값이 영업부인 데이터를 삭제한다. DELETE SAMPLE; // SAMPLE 테이블 전체를 삭제한다.
Transaction Control Language
의 약자이다. 트랜잭션이란 작업단위를 뜻하며, TCL
은 논리적인 DML
(데이터 조작)작업의 단위를 묶어서 제어하는 명령어이다. COMMIT, ROLLBACK, SAVEPOINT
등이 있다.COMMIT
을 수행하면 하나의 트랜잭션 과정을 종료하게 된다.COMMIT
실행 시에 트랜잭션 작업으로 변경된 내용을 실제 DB에 영구 저장하게 되며, 모든 사용자가 변경한 데이터의 결과를 볼 수 있게 된다. AUTO COMMIT
기능으로 DB를 자동 저장하지만, 수동으로 COMMIT
을 하고자 할 때는 AUTO COMMIT
을 해제하고 데이터 조작 작업을 한 다음 COMMIT;
을 실행하면 된다.
- 항상 자동으로 COMMIT되는 경우
DDL
문 또는DCL
문- 작업 후 COMMIT하지 않고 DBMS가 정상적으로 종료되었을 때
COMMIT
한 곳까지만 복구한다.ROLLBACK;
으로 실행한다.ROLLBACK
이 일어난다.ROLLBACK
을 실행할 경우 해당 트랜잭션이 전부 취소되는데, 이 때 SAVEPOINT
와 ROLLBACK TO
를 사용해 정해진 시점까지만 되돌아갈 수 있다.SAVEPOINT savepoint명;
으로 트랜잭션 내에 SAVEPOINT
를 지정하고, ROLLBACK TO savepoint명;
으로 해당 지점으로 돌아간다. SAVEPOINT
지점 이후에 이루어진 작업들만 취소된다.
...작업 ... SAVEPOINT savepoint1; ...작업 ... // 이 부분의 작업들이 취소된다. ROLLBACK TO savepoint1;