종류
- DDL - 데이터 정의 명령
- DML - 데이터 조작 명령
- DCL - 데이터 제어(관리)명령
- TCL - 트랜잭션 제어 명령
DDL ⭐
- 대상 : 객체(테이블, 유저, … )
create
- 새 객체 생성
alter
- 컬럼 추가, 삭제, 변경
drop
- 객체 삭제
truncate
, rename
- rename - 사용하지 않는것이 권장된다.
Create
SQL> create table ex(id number(3), name varchar2(10), tel varchar2(14));
테이블이 생성되었습니다.
Alter
SQL> alter table ex
2 add addr varchar2(30);
테이블이 변경되었습니다.
SQL> alter table ex
2 modify name varchar2(20);
테이블이 변경되었습니다.
SQL> alter table ex
2 drop column addr;
테이블이 변경되었습니다.
Drop
SQL> drop table ex;
테이블이 삭제되었습니다.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
BIN$CyoUX3PGQfSevWeukEtEIA==$0 TABLE
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
DML ⭐ ( == 트랜잭션)
- 대상 : 데이터(행)
insert
, update
, delete
[select
]
- 데이터 변경 명령, 트랜잭션 명령, 일처리 명령
DCL
- 권한 관련 명령(보안)
grant
- 권한 부여
revoke
- 권한 회수
deny
- not in Oracle, MS 계열에만 존재
- 권한은 누적된다. 누적되는 권한 중 최우선으로 이행되는 것이 거부
- 누적된 권한 중에서 특정 권한만 뺏고 싶을 때 사용한다.
TCL
- DML 명령 제어
- DML 제외한 명령에는 commit이 포함되어있다.
- (Oracle) DML 명령은 버퍼에 쌓이고, commit 명령으로 버퍼를 비우고 DBF에 반영
- 명령마다 commit 이 일어나면 성능을 저하시킬 수 있으므로 autocommit 기본값은 off 이다.
- (MS SQL) autocommit 의 기본값이 on → 버퍼에 쌓이지 않음. begin tran, end tran 따로 적어주어야 한다.
commit
- 저장
rollback
- 되돌리기
savepoint
- 저장점