종류 | 명령어 | 설명 | EX ON ORACLE |
데이터 조작어 DML (Data Manipulation Language) |
SELECT | DB 조회 | . |
INSERT, UPDATE, DELETE | DB 변형 | 1) INSERT INTO <TABLE_NAME> VALUES (VAL1, VAL2, ... ) 2) UPDATE <TABLE_NAME> SET COL1 = VAL1 , COL2 = VAL2 , ... WHERE <CONDITION> 3) DELETE FROM <TABLE_NAME> WHERE <CONDITION> +) MERGE INTO <TABLE_NAME> USING DUAL ON <CONDITION> WHEN MATCHED THEN SET CO1=VAL1 , COL2=VAL2 , ... WHEN NOT MATCHED THEN INSERT (CO1, COL2, ...) VALUES (VAL1, VAL2, ...) |
|
데이터 정의어 DDL (Data Definition Language) |
CREATE | TABLE 생성 | CREATE TABLE <TABLE_NAME> ( COL1 VARCHAR(8) COL2 NUMBER NOT NULL ... ); |
ALTER | TABLE 변경(컬럼, 제약조건 추가 변경) | 1) 컬럼추가/삭제/이름변경 ALTER TABLE <TABLE_NAME> ADD <COL_NAME> <COL_TYPE>; ALTER TABLE <TABLE_NAME> DROP COLUMN <COLUMN_NAME>; (삭제한 컬럼은 복구 불가) ALTER TABLE <TABLE_NAME> RENAME COLUMN <COLUMN_NAME> TO <NEW_NAME>; 2) 제약조건 추가/삭제 ALTER TABLE <TABLE_NAME> ADD CONSTRAINT <CONSTRAINT_NAME> <CONSTRAINT_TYPE> (<COLUMN_NAME>); ALTER TABLE <TABLE_NAME> DROP CONSTRAINT <CONSTRAINT_NAME> |
|
RENAME | TABLE명 변경 | RENAME <TABLE_NAME> TO <NEW_NAME>; | |
DROP | TABLE 삭제 | DROP TABLE <TABLE_NAME>; | |
TRUNCATE | TABLE행 삭제 | TRUNCATE TABLE <TABLE_NAME>; | |
데이터 제어어 DCL (Data Control Language) |
GRANT | 사용자에게 권한 부여 | GRANT <PRIVLEGE> PRIVILEGES ON <TABLE_NAME> TO <USER_NAME>; |
REVOKE | 사용자 권한 해제 | REVOKE <PRIVILEGE> ON <TABLE_NAME> TO <USER_NAME> | |
트랜잭션 제어어 TCL (Transaction Control Language) |
COMMIT | 트랜잭션 완료처리 | COMMIT; |
ROLLBACK | 트랜잭션 취소처리 | ROLLBACK; | |
SAVEPOINT | 트랜잭션 사이 저장점 저장 | DML1; SAVEPOINT <NAME1>; DML2; SAVEPOINT <NAME2>; DML3; SAVEPOINT <NAME3>; ROLLBACK TO <NAME>; |
- COMMIT 혹은 ROLLBACK 이전의 데이터 상태
1) 메모리 버퍼에만 영향을 받았기 때문에, 데이터 변경 이전 상태로 복구 가능
2) 현재 사용자는 SELECT를 통해 결과 확인 가능
3) 다른 사용자는 결과 확인 불가능
4) 변경된 행은 LOCK되어 다른 사용자가 변경 불가능
- COMMIT 혹은 ROLLBACK 이후의 데이터 상태
1) 변경사항 DB 반영
2) 이전 데이터 삭제(복구 불가능)
3) 모든 사용자 결과 확인 가능
3) 관련 행 UNLOCK되어 다른 사용자 변경 가능
- TRANSACTION : DB의 논리적 연산단위(분할할 수 없는 단위)
- TCL 대상 SQL은 DML
- DML 이후 COMMIT 없이 DDL 실행되면, DDL 실행 전 자동 COMMIT
- DB가 정상적으로 접속 종료되면 TRANSACTION 자동 COMMIT
- 이상 종료 시 TRANSACTION 자동 ROLLBACK
'프로그래밍 > SQL' 카테고리의 다른 글
[SQL] Oracle IN vs EXISTS (0) | 2022.08.02 |
---|