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;