공부/데이터베이스

[오라클로 배우는 데이터베이스 입문] 10. 데이터를 추가, 수정, 삭제하는 데이터 조작어

losey_J 2022. 3. 29. 16:21

1. 테이블 생성하기 - 특정 테이블에 데이터를 새로 추가할 때 INSERT문 사용

 

DEPT테이블 복사해서 DEPT_TEMP테이블 생성

- 테이블에 데이터를 추가하는 INSERT문

INSERT INTO 테이블 이름[(열1,열2,...,열N)] - 새로운 데이터를 입력할 대상 테이블과 열을 입력
※ 열 지정 생략가능(단, 열 개수나 자료형, 길이는 맞춰야 함)
VALUES (열1에 들어갈 데이터, 열2에 들어갈 데이터,...,열N에 들어갈 데이터); - INSERT INTO에서 지정할 테이블의 열 순서와 자료형에 맞는 입력 데이터 지정

# INSERT문 오류가 발생했을 때

-INSERT문에서 지정한 열 개수와 각 열에 입력할 데이터 개수가 일치하지 않거나 자료형이 맞지않는 경우, 열 길이를 초과하는 데이터를 지정하는 경우 등

- 테이블에 NULL 데이터 입력하기

INSERT문으로 새로운 데이터 추가 시 특정 열에 데이터가 확정되지 않거나 넣을 필요가 없는 경우 NULL을 사용

○ NULL의 명시적 입력(NULL 혹은 빈 공백 문자열로 입력)

○ NULL의 암시적 입력(아예 입력하지 않는 방법)

- 테이블에 날짜 데이터 입력하기

EMP 테이블의 열 구조만 복사해서 EMP_TEMP테이블 만들기

# 유의점: 날짜 데이터 형식은 년/월/일 순으로 입력해야 함.

TO_DATE함수 이용하여 날짜 데이터 입력하기
SYSDATE 함수 이용하여 날짜 데이터 입력하기

- 서브쿼리를 사용하여 한 번에 여러 데이터 추가하기

EMP 테이블에서 SAL테이블을 참조하여 급여등급이 1인 사원만 EMP_TEMP 테이블에 입력

# INSERT문에서 서브쿼리 사용할 때 유의점

- VALUES절은 사용하지 않는다

- 데이터가 추가되는 테이블의 열 개수와 서브쿼리의 열 개수가 일치해야 한다

- 데이터가 추가되는 테이블의 자료형과 서브커리의 자료형이 일치해야 한다

 

2. 테이블에 있는 데이터 수정하기 

DEPT테이블 복사해서 DEPT_TEMP2테이블 생성

- 데이터 내용을 수정 할 때 쓰는 UPDATE문

UPDATE [변경할 테이블]
SET [변경할 열1]=[데이터], [변경할 열2]=[데이터], ... , [변경할 열N]=[데이터]
[WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건]; - 조건 생략할 경우 테이블 내 지정된 모든 열의 데이터가 변경됨

- 데이터 전체 수정하기

DEPT_TEMP2테이블 LOC 전체 변경하기

- 수정한 내용을 되돌리고 싶을 때 (ROLLBACK)

- 데이터 일부분만 수정하기

40번 부서의 이름과 지역 바꾸기

- 서브쿼리를 사용하여 데이터 수정하기

○ 여러 열을 한 번에 수정하는 경우

DEPT의 40번 부서 정보 불러와서 일괄 변경

○ 열 하나하나를 수정하는 경우

열 하나하나 지정해서 수정( 결과 값은 위와 동일)

○ WHERE절에 서브쿼리를 사용하여 데이터 수정하는 경우

- UPDATE문 사용할 때 유의점

테이블에 존재하는 데이터를 수정하기 때문에 위험성이 큰 명령어이다. 잘못된 수정을 하지 않도록 WHERE조건문은 SELECT문에 넣어 원하는 행에 적용될 지 사전 테스트 후 UPDATE할 수 있도록 해야 함

 

3.  테이블에 있는 데이터 삭제하기

EMP 테이블을 복사해서 EMP_TEMP2테이블 만들기

- 테이블에 있는 데이터를 삭제하는 DELETE문

DELETE [FROM] [테이블 이름] - 데이터를 삭제할 테이블 지정
[WHERE 삭제할 대상 행을 선별하기 위한 조건식]; - 생략할 경우 테이블의 모든 데이터 삭제

- 데이터 일부분만 삭제하기

JOB이 MANAGER인 행 삭제하기

- 서브쿼리를 사용하여 데이터 삭제하기

급여가 3등급인(급여가 1402~2000 사이에 있는) 30번 부서사원들만 삭제

- 데이터 전체 삭제하기

WHERE 조건식 사용하지 않으면 데이터 전체 삭제 가능