SQL2
DML(Data Manipulation Langauage)
insert into DEPT (DEPTNO, DNAME, LOC)
values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT
values (20, 'RESEARCH', 'DALLAS');
COMMIT;
insert into DEPT
values (30, 'SALES', 'CHICAGO');
inert into DEPT
values (40, 'OPERATIONS', 'BOSTON');
ROLLBACK;

DML(Data Manipulation Language, 데이터 조작어)
INSERT : 테이블에 새로운 튜플을 삽입

insert into DEPT
values (50, '총무부', '서울');
insert into DEPT
values (60, '인사부', '부산');
DML : DELETE - 테이블에 튜플을 삭제
delete from DEPT;

delete from DEPT;
ROLLBACK;

delete
from DEPT
WHERE deptno = 50
COMMIT;

DML : UPDATE - 테이블 튜플 내용을 갱신
update DEPT
set LOC = '대구'
where deptno = 60
COMMIT;

DDL(Data Define Language)
DDL(Data Define Language, 데이터 정의어)
CREATE

create table dept
(
deptno number(2, 0)
dname varchar2(14),
loc varchar2(13),
constraint pk_dept primary key(deptno)
);
DDL : CREATE
create table emp
(
empno number(4, 0),
ename varchar2(10),
job varchar2(9),
mgr number(4, 0),
hiredate date,
sal number(7, 2),
comm number(7, 2),
deptno number(2, 0),
constraint pk_emp primary key (empno),
constraint pk_deptno foreign key (deptno) references dept (deptno)
);


DDL : CREATE TABLE 제약조건
PRIMARY KEY(PK)FOREIGN KEY(FK)
UNIQUE KEY(UK)NOTNULL(NN)
CHECK(CK) : 성별에 많이 사용
DEFAULT
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
UNIQUE (ID)
);
SUBQUERY를 이용한 CREATE TALE
서브 쿼리를 이용해서 SELECT의 조회 결과로 테이블을 생성하는 방법
컬럼명과 데이터 타입, 값이 복사하고 제약 조건은 NOT NULL만 복사
CREATE TABLE EMP_DEPTNO_10
AS SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10


가상 테이블로 논리적으로만 존재
뷰는 접근제어로 보안을 제공
DDL : CREATE VIEW
create view whoismanager
as
select *
from emp
where job = 'MANAGER';

select * from whoismanager;

DDL : ALTER TABLE
테이블에 정의된 내용을 수정할 때 사용
컬럼 추가
ALTER TABLE DEPT
ADD (CNAME VARCHAR2(20);
제약조건 추가
ALTER TABLE DEPT
ADD CONSTRAINT UNIQUE(DNAME):

ALTER TABLE DEPT
ADD CONSTRAINT UNIQUE(DNAME);
ERROR at line 1: ORA-00001 : unique constraint(SCOTTSYS_C0014205) violated
칼럼 수정
ALTER TABLE DEPT
MODIFY CNAME CHAR(3);
칼럼 삭제
ALTER TABLE DEPT
DROP COLUMN CNAME;

VIEW는 ALTER 문의로 변경 불가DROP 후 다시 CREATE 해야
DDL : DROP
데이터베이스 객체를 삭제하는 구문
DROP TABLE EMP
DROP TABLE EMP CASCADE;
제거할 요소를 참조하는 다른 모든 개체를 함께 제거
DROP TABLE EMP RESTRICTED;
DROP VIEW EMP_VIEW;
DDL : DROP, TRUNCATE 그리거 DML: DELETE 비교

DCL (Data Control Language)




GRANT/REVOKE
GRANT 사용자등급 TO 사용자_ID (WITH GRANT OPTION)REVOKE 사용자등급 FROM 사용자ID
DBA : GRANT SELECT ON EMP TO SHALALA WITH GRANT OPTIONSHALALA : GRANT SELECT ON EMP TO SOCHALPONGSHALALA : REVOKE SELECT ON EMP FROM SOCHALPONG
TCL : COMMIT/ROLLBACK
COMMIT - 삽입한 데이터를 영구히 저장 (I/O가 일어남.)
ROLLBACK - COMMIT한 데이터를 제외하고 메모리에 있는 데이터를 날림
SAVEPOINT - 트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정하는 명령어