DATABASE

(DB)DML 명령 TCL 명령

김만식이 2020. 9. 14. 18:14

create table 생성

 

create table sample(
deptno number(20) ,
depname varchar2(15),
deploc varchar2(15),
depmanager varchar2(10),
hiredate varchar2(15)
);


alter session set nls_date_format='rrrr-mm-dd:hh24;mi;ss';

 

insert into (속성값 넣기)

insert into sample(deptno,depname,deploc,depmanager,hiredate) values(10,'기획실','서울','홍길동','2020-05-05');
값이 컬럼의 값을 지정해서 넣을때
insert into sample values(20,'전산실','부산','김만식','2020-08-05');
컬럼 전체 값을 넣을때
insert into sample values(30,'영업부','광주','null','2020-07-05');
null 값을 넣을때
select *from sample;

 

update set(속성값 수정)

 

update sample set deptno =50  where deptno=30; 

deptno가 30인 컬럼의 deptno의값을 50으로수정

update sample set deploc ='인천'  where deptname='영업부'; 
deptname가 영업부인 컬럼의 deploc 값을 인천으로 수정

delete(컬럼 내용 삭제)

 

delete sample where depname='영업부';

commit;

delete sample;

rollback;

select *from sample;

컬럼을 지우고 롤백으로 돌아옴

 

merge문

 

여러테이블의 데이터를 합치는 병합을 의미

insert update delete를 한꺼번에 사용가능

 

mergge into
using
on
when mat
 
 
 
 
 
create table test2(
num number,
name varchar2(10),
price number,
primary key(num)
);
create table test3(
num number,
name varchar2(10),
price number,
primary key(num)
);

테스트 테이블

 

merge into test2 t2
using test3 t3
on(t2.num = t3.num)
when matched then 
update set t2.price = t3.price
when not matched then
insert values(t3.num,t3.name,t3.price);

select *from test2;

t2.num = t3.num 일경우 5번째 업데이트가 실행되고

when not 일경우 insert values 가 실행된다

 

 

 

join update 

 

update (테이블명1)
set(컬럼명) =(
	select (컬럼명) from (테이블명2)
	where (조건문)
)
where
exists(
select (컬럼명) from (테이블명2)
where(조건문)

)
UPDATE EXM3 E3
SET E3.PRICE = (
            SELECT E2.PRICE 
              FROM EXM2 E2
             WHERE E2.NUM = E3.NUM
            )
WHERE
EXISTS(--데이터 존재 여부 확인    NULL NOT NULL 의 유무
        SELECT * FROM EXM2 E2
        WHERE E2.NUM = E3.NUM
      );

 

merge into EXM2 E2
using EXM3 E3
on(E2.num = E3.num)
when matched then 
update set E2.price = E3.price;

 

 

트렌젝션

 

데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위를 의미

 

원자성

트랜잭션이 데이터 베이스에 모두 반영되던가 아니면 전혀 반영되지않아야한다

일관성

트랜잭션의 작업처리 결과가 항상일관성있어야한다

독립성

둘이상의 트랜잭션이 동시에 실행되고 있을경우 다른 트랜잭션의 연산에 끼어들수 없다

지속성

 

TCL 명령어

 

ROLLBACK 트랜젝션 취소 
CHECKPOINT 복귀지점 설정