상세 컨텐츠

본문 제목

DML(Data Manipulation Language) - Oracle

Oracle

by ssu_jo 2021. 4. 4. 04:07

본문

728x90

1. insert 문

테이블에 행을 입력하는 명령문입니다.

· 형식

insert into
    테이블명[(컬럼명1, ~, 컬렴명n)]
values
    (입력값1, ~, 입력값n);


※ 테이블의 컬럼이 하나일 경우 value 가능(Oracle은 불가능)

 insert into
    테이블명[(컬럼명1, ~, 컬렴명n)] select문;


데이터 입력 시 NOT NULL, PK 컬럼은 반드시 입력해야 하고, 아닌 컬럼은 데이터 입력을 안 할 수도 있습니다.

 

2. update 문

테이블의 컬럼값을 수정하는 명령문입니다.
즉, 테이블의 셀을 수정하는 명령문을 말합니다.

· 형식

update
    테이블명
set
    컬럼명1=수정값1
    , ~
    , 컬럼명n=수정값n
where
    조건절;


UNIQUE 또는 PK 컬럼의 데이터를 수정할 경우 중복되는 데이터로 수정되지 않습니다.
FK 컬럼의 데이터를 수정할 경우 PK에 없는 데이터로 수정되지 않습니다.(null은 허용)
check 제약 조건이 걸린 컬럼의 데이터를 수정할 경우 check 제약 조건에서 지정된 데이터가 아닌 데이터로 수정되지 않습니다.
수정 값 자리에 서브 쿼리가 올 수도 있습니다.
※ where 조건절을 생략할 경우 모든 행이 수정됩니다.
※ where 조건절은 이론적으로 생략 가능하나 실무적으로 생략되는 경우는 거의 없습니다.

 

3. delete 문

테이블의 행을 삭제하는 명령문입니다.
※ 제약 조건에 의해 삭제되지 않을 수도 있습니다.

· 형식

delete from
    테이블명
where
    조건절;


FK 컬럼이 참조하는 PK 컬럼의 데이터는 삭제되지 않습니다.
FK 컬럼이 on delete cascade로 정의되어 있으면 PK 컬럼 데이터 삭제 시 따라서 자동으로 삭제됩니다.
※ where 조건절을 생략 할 경우 모든 행이 수정됩니다.
※ where 조건절은 이론적으로 생략 가능하나 실무적으로 생략되는 경우는 거의 없습니다.

 

4. truncate문

테이블의 모든 행을 삭제하는 명령문입니다.
where 절이 없는 delete 구문과 같습니다.

· 형식

truncate table 테이블명;


5. create table ~ as select 문

select 결과물로 새로운 테이블을 생성하는 구문입니다.
컬럼명, 자료형, NOT NULL 제약 조건은 그대로 복사됩니다.
※ NOT NULL 제약 조건이외의 제약조건은 복사되지 않습니다.
만약 select 구문의 컬럼에 별칭을 주면 별칭이 컬럼명으로 복사됩니다.

· 형식

create table
    생성테이블명 as select문;

 

6. select ~ into

프로시저나 함수에서 select 결과물을 변수에 저장할 때 사용합니다.

· 형식

select
    컬럼명1 ~	into 변수명
from
    테이블명1
where
    ~;


select 결과물을 변수에 저장합니다.
· MSSQL에서는 select 컬럼명1, ~ into 테이블명2 from 테이블명1 where ~; 이 가능합니다.
테이블명1에서의 select 결과물을 테이블명2에 insert하는 구문

728x90
LIST

'Oracle' 카테고리의 다른 글

DML(Data Manipulation Language) 예제2 - Oracle  (0) 2021.04.06
DML(Data Manipulation Language) 예제 - Oracle  (0) 2021.04.04
GROUP BY 예제2 - Oracle  (0) 2021.04.02
GROUP BY 예제 - Oracle  (0) 2021.04.01
GROUP BY - Oracle  (0) 2021.03.29

관련글 더보기

댓글 영역