[   ORACLE DML( insert, update, delete, select )   ]




--DML : Data Manipulation Language : ( select, insert, update, delete )

-- 1. select 문 : 데이터 검색
      -- 형식) select 컬럼 from 테이블 where 조건들.. group by having order by ...

-- 2. insert 문 : 데이터 삽입(튜플 삽입)
      -- 형식)

 - 단일행을 삽입하는 경우 : insert into 테이블(컬럼1,컬럼2,...) values(값1,값2,...)
 - 복수행을 삽입하는 경우 : insert into 테이블(컬럼1,컬럼2...) (select 컬럼1,컬럼2,... from ~ where ~);
      
-- 3. update 문 : 데이터 수정 
      -- 형식) update 테이블 set 컬럼1=값1 where 조건들...      

-- 4. delete 문 : 데이터 삭제(튜플 삭제)
      -- 형식) delete from 테이블 where 조건
      
delete * from 테이블명; 과 Truncate Table 테이블명과의 차이점?

: delete를 수행시 자동으로 commit이 이루어 지지 않기 때문에 rollback을 할 수 있지만
  
  truncate의 경우 데이터를 삭제 후 자동으로 commit까지 진행하기 때문에 rollback을 할 수 없다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
--DML : Data Manipulation Language : ( select, insert, update, delete )
 
-- 1. select 문 : 데이터 검색
      -- 형식) select 컬럼 from 테이블 where 조건들.. group by having order by ...
 
-- 2. insert 문 : 데이터 삽입(튜플 삽입)
      -- 형식) insert into 테이블(컬럼1,컬럼2,...) values(값1,값2,...)
       
-- 3. update 문 : 데이터 수정
      -- 형식) update 테이블 set 컬럼1=값1 where 조건들...     
 
-- 4. delete 문 : 데이터 삭제(튜플 삭제)
      -- 형식) delete from 테이블 where 조건
       
--ex)
create table sample(
  deptNo number(20),
  deptName varchar2(15),
  deptLoc varchar2(15),
  deptManager varchar2(10)
);
 
-- 데이터 튜플 삽입
insert into sample(deptNo,deptName,deptLoc,deptManager)
       values(1,'인사부','강남','홍길동');
 
select * from sample;
 
-- 필드명을 생략하고 추가할 수도 잇다. 생략하면 전 필드의 데이터를 다 넣어줘야함
insert into sample values(2,'개발부','군산','홍길순');
 
-- deptManager 값을 빼고 튜플을 삽입
insert into sample(deptNo,deptName,deptLoc) values(3,'관리부','광주');
select * from sample; -- deptManager값이 null로 들어감을 알 수 있다.
 
-- deptManager 값이 null인 것을 수정하자.
update sample set deptManager = '홍삼순' where deptManager IS NULL;
select * from sample;
 
update sample set deptLoc = '일산' where deptName = '인사부';
select * from sample;
 
-- 튜플 삭제
delete from sample where deptName = '관리부';
select * from sample;
 
-- commit 과 rollback
 
  -- commit : 최종적으로 명령 처리를 반영하는 명령어
  -- rollback : 직전에 수행한 명령을 수행하지 않은 상태로 돌리는 명령어
        -- transaction처리와 관련있다.
            -- 트랜잭션이란? 완전히 다 처리하거나 아예 처리되지 않은 상태로 돌리는 것으로
                -- 일부만 수행됨으로써 발생할 수 있는 심각한 오류를 방지하기 위함
 
-- rollback
commit;        


+ Recent posts