The Debugging Chronicles : "코드의 미학"
10 데이터 처리를 추가, 수정, 삭제하는 데이터 조작어 본문
10-1 테이블에 데이터 추가하기
테이블 생성하기
특정 테이블에 데이터를 새로 추가할 때 INSERT 문을 사용
CREATE TABLE DEPT_TEMP
AS SELECT * FROM DEPT;
INSERT 문 실습 전 유의점
테이블을 잘못 만들었거나 지워야 할 경우에는 'DROP TABLE' 문을 사용하여 테이블을 제거한다.
DROP TABLE 테이블명;
테이블에 데이터를 추가하는 INSERT문
테이블에 데이터를 추가하는데 사용하는 문법이다.
INSERT INTO 뒤에 데이터를 추가할 테이블의 이름을 명시하고 해당 테이블의 열을 소괄호로 묶어서 지정한 후
VALUES절에 지정한 열에 입력한 데이터를 작성한다.
INSERT INTO 테이블명 (열1, 열2, ... , 열N) --1
VALUES (열1에 들어갈 데이터, 열2에 들어갈 데이터, ..., 열N에 들어갈 데이터); --2
번호
|
키워드
|
필수 요소
|
선택 요소
|
설명
|
1
|
INSERT INTO
|
테이블 이름
|
테이블의 열
|
새로운 데이터를 입력할 대상 테이블과 열을 입력한다.
|
2
|
VALUES
|
입력할 데이터
|
-
|
INSERT INTO에 지정한 테이블의 열 순서와 자료형에 맞는 입력 데이터를 지정한다.
|
테이블에 NULL 데이터 입력하기
INSERT문으로 새로운 데이터를 추가할 때 특정 열에 들어갈 데이터가 확정되지 않았거나 굳이 넣을 필요가 없는 데이터인 경우에
NULL을 사용한다.
테이블에 날짜 데이터 입력하기
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREATE, SAL, COMM, DEPNO)
VALUES (999, '홍길동', 'PRESIDENT', NULL, '2001/01/01',
5000, 1000, 10);
SELECT * FROM EMP_TEMP;
서브쿼를 사용하여 한 번에 여러 데이터 추가하기
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREATE, SAL, COMM, DEPNO)
SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM, E.DEPTNO
FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL
ADN S.GRADE = 1;
SELECT * FROM EMP_TEMP;
10-2 테이블에 있는 데이터 수정하기
UPDTAE문의 기본 사용법
UPDATE [변경할 테이블]--1
SET [변경할 열1] = [데이터], [변경할 열2] = [데이터], ..., [변경할 열n] = [데이터]--2
[WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건];--3
번호
|
키워드
|
필수 요소
|
선택 요소
|
설명
|
1
|
UPDATE
|
테이블 이름
|
-
|
데이터를 수정할 테이블을 지정한다.
|
2
|
SET
|
변경할 열의
이름과 데이터
|
-
|
변경할 열을 선택하고 변경할 데이터를 입력한다.
|
3
|
WHERE
|
-
|
변경 데이터를 선별하기 위한 조건식
|
테이블의 변경할 데이터 선별 조건식을 지정한다.
생략할 경우 테이블 내 지정된 모든 열의 데이터가 변경된다
|
데이터 전체 수정하기
UPDATE DEPT_TEMP2
SET LOC = 'SEOUL'; // LOC 열의 데이터를 모두 SEOUL로 수정해라
SELECT * FROM DEPT_TEMP2;
수정한 내용 되돌리고 싶을 때
ROLLBACK;
데이터 일부분만 수정하기
UPDATE DEPT_TEMP2
SET DNAME = 'DATABASE'
SET LOC = 'SEOUL'
WHERE DEPTNO = 40;
--DEPTNO가 40인 데이터만 DNAME을 'DATABASE', LOC를 'SEOUL'로 바꿔라
SELECT * FROM DEPT_TEMP2;
서브쿼리를 사용하여 데이터 수정하기
UPDATE DEPT_TEMP2
SET LOC = 'SEOUL'
WHERE DEPTNO = (SELECT DEPTNO
FROM DEPT_TEMP2
WHERE DNAME = 'OPERATIONS')
--DEPT_TEMP2 테이블에 DEPTNO가 DEPT_TEMP2에 DANME이 'OPERATIONS'인 데이터의 DEPTNO와 같다면 LOC를 'SEOUL'로 바꿔라
SELECT * FROM DEPT_TEMP2;
UPDATE문 사용할 때 유의점
· 이미 존재하는 데이터를 수정하거나 삭제하는 기능을 수행하므로 SELECT문이나 INSERT문에 비해 위험성이 큰 명령어다.
· UPDATE문을 실행하기 전에 UPDATE문의 WHERE절을 검증하는 작업이 반드시 필요하다.
해당 WHERE절을 UPDATE문에 넣어 실행하기 전에 SELECT문에서 먼저 사용해 보는 것만으로도 간단히 확인할 수 있다.
-- 완성된 UPDATE문
UPDATE DEPT_TEMP2
SET DNAME = 'DATABASE',
LOC = 'SEOUL'
WHETE DEPTNO = 40;
-- 검증문
SELECT *
FROM DEPT_TEMP2
WHETE DEPTNO = 40;
10-3 테이블에 있는 데이터 삭제하기
데이터 일부분만 삭제하기
DELETE [FROM] [테이블 이름]--1
[WHERE 삭제할 대상 행을 선별하기 위한 조건식]; -- 2
번호
|
키워드
|
필수 요소
|
선택 요소
|
설명
|
1
|
DELETE
|
테이블 이름
|
FROM
|
데이터를 삭제할 테이블을 지정한다.
|
2
|
WHERE
|
|
삭제 데이터를 선별하려는 조건식
|
테이블의 삭제할 데이터를 선별하는 조건식을 지정한다.
생략할 경우 테이블의 모든 데이터가 지워진다.
|
서브쿼리를 사용하여 데이터 삭제하기
DELETE FROM EMP_TEMP2
WHERE JOB = 'MANAGER';
SELECT * FROM DEPT_TEMP2;
데이터 전체 삭제하기
DELETE FROM EMP_TEMP2
SELECT * FROM DEPT_TEMP2;
'DBMS > Do it! 오라클로 배우는 데이터 베이스 입문' 카테고리의 다른 글
06 데이터 처리와 가공을 위한 오라클 함수 (0) | 2024.07.29 |
---|---|
05 더 정확하고 다양하게 결과를 출력하는 WHERE절과 연산자 (0) | 2024.07.28 |
04 SELECT문의 기본 형식 (0) | 2024.07.28 |
01 데이터베이스 / 02 관계형 데이터 베이스와 오라클 데이터 베이스 (0) | 2024.07.27 |