[SQL/Oracle] 데이터 삽입, 변경, 삭제

2022. 5. 18. 14:28DB/Oracle

반응형

이전 게시글에서 테이블 관련 명령어를 정리하였다.

(참고하실 분은 클릭)

 

이번에는 데이터를 처리하는 SQL 명령어와 예제를 살펴보자!

 

 

 데이터 삽입

 

데이터 삽입하는 구문은 다음과 같다.

 

데이터 추가

insert into 테이블명 (컬럼1, 컬럼2...) values (데이터1, 데이터2,...)

단, 컬럼값을 순서대로 빠짐없이 넣는다면 into와 values 사이의 컬럼 지정을 생략 가능하다.

insert into dept2(dcode, dname, pdept, area) values(9000, '소프트웨어개발팀', 1006, '서울');
insert into dept2 values(9001, '하드웨어개발팀', 1006, '서울');

원하는 컬럼에만 데이터 삽입

insert into dept2(dcode, dname, pdept) values(9000, '소프트웨어개발팀', 1006);
-- 기존 dept2의 총 컬럼 [dcode, dname, pdept, area]

이 경우, 생략된 컬럼에는 null값이 자동으로 들어가게 된다.

단, 해당 컬럼이 not null인 경우는 에러가 발생하니 주의하자.

 

다른 테이블의 데이터를 쿼리하여 추가

insert into professor2
select * from professor where position='전임강사';
-- professor의 position이 '전임강사'인 데이터를 모두 삽입

 

한 번에 여러 테이블의 데이터를 추가할 때는 insert all문을 사용한다.

 

여러 테이블의 insert문 처리

insert all
into prof_3 values(profno,name)
into prof_4 values(profno,name)
select profno, name from professor
where profno between 3000 and 3999;
--prof_3과 prof_4 테이블의 각 컬럼 profno, name을 한번에 추가했음

 

 

 

 데이터 변경

 

테이터를 변경하는 방식은 다음과 같다.

 

데이터 변경

update 테이블명 set 컬럼=값 [,컬럼2=값2] where 조건;

[,컬럼2=값2] 처럼 필요하다면 여러 컬럼의 데이터를 한번에 바꿀 수 있다. (생략가능)

 

예제로 같이 살펴보자

update professor
set bonus=200
where position='전임강사';

 

이때, bonus의 값을 200으로 대입하는 것이 아니라, 기존 값에 + 100을 하고 싶다면?

bonus += 100과 같은 구문은 인식하지 못한다. 따라서 bonus = bonus+100 과 같이 표현해야 함을 주의하자.

update professor
set pay=pay*1.15
where position='컴퓨터공학'

 

 

데이터 삭제

 

일반적으로 데이터를 삭제하는 방법은 다음과 같다.

 

delete from 테이블명 where 조건;

where을 넣지 않으면 해당 테이블의 전체 데이터를 삭제한다.

 

 

간단하지만 늘 까먹어서 다시 되찾아오는 SQL문..