본문 바로가기

Lobo's study room/오라클DB

Oracle DB의 DML

## DML(데이터 조작어)

-- CUD:row 단위, 추가, 변경, 삭제
-- CRUD:추가,조회,변경,삭제

-- 로그가 남는다 => 작업내용 로그를 기반으로 작업을 취소 할 수 있다!!!

ST_DEPT(D_NO,D_NAME)
ST(S_NO,NAME,BIRTH,POINT,D_NO)

CREATE TABLE ST_DEPT (
D_NO NUMBER(2),
D_NAME VARCHAR2(100),
);

ALTER TABLE ST_DEPT
MODIFY D_NO NUMBER(4);

CREATE TABLE ST(
S_NO CHAR(5),
S_NAME VARCHAR2(100),
S_BIRTH DATE,
POINT NUMBER(2,1),
D_NO NUMBER(2)
);

## ST_DEPT 자료 입력
-- 숫자 타입 : 숫자만, 표시형식 콤마 빼고...
-- 문자, 날짜 : '자료값' 작은 따옴표로 감싼다.

-- ST_DEPT(D_NO,D_NAME)

-- INSERT INTO 테이블명(컬럼명,컬럼명...) VALUES (값1,값2...);

-- 자료 입력방법 1
INSERT INTO ST_DEPT(D_NO,D_NAME) VALUES (10,'국문과');
INSERT INTO ST_DEPT(D_NO,D_NAME) VALUES (20,'영문과');
INSERT INTO ST_DEPT(D_NO,D_NAME) VALUES (30,'수학과');

-- 자료 입력방법 2
--컬럼리스트 생략가능 ==> 테이블 스키마 대로 모두 입력, 순서 맞춰서...
INSERT INTO ST_DEPT VALUES(40,'컴공과');
INSERT INTO ST_DEPT VALUES(50,NULL);

-- 자료 입력방법 3
-- 다른테이블의 자료를 읽어서 왕창 쏟아붓는 방법

INSERT INTO ST_DEPT
SELECT DEPARTMENT_ID,DEPARTMENT_NAME
FROM DEPT
WHERE DEPARTMENT_ID<100;

====================================

## 자료 수정
-- UPDATE
-- UPDATE 테이블명
SET 컬럼명 = 값, 컬럼명 = 값 ....
WHERE 조건식;

-- ST_DEPT 테이블의 50부서의 이름을 '경영학과'

UPDATE ST_DEPT
SET D_NAME = '경영학과'
WHERE D_NO=50;

==> 만약에 WHERE절 생략시 테이블의 D_NAME의 모든 ROW의 값이 변경 !!

-- 110 사원의 부서를 132 사번의 부서로 변경해라.

UPDATAE EMP
SET DEPARTMENT_ID = (SELECT DEPARTMENT_ID
  FROM EMP
WHERE EMPLOYEE_ID=132)
WHERE EMPLOYEE_ID = 110;
=====================================

## 자료 삭제 : 조건에 맞는 행만 삭제
--DELETE
--DELETE 테이블명;
--DELETE FROM 테이블명;
WHERE 조건식;

DELETE FROM ST_DEPT
WHERE D_NO = 50;

## 자료 삭제 : 입력자료 모두 삭제
--DELETE FROM ST_DEPT;
=>WHERE 절 생략하는 방법
=>INSERT 한 모든 자료가 삭제됨
=>DML=>로그 남음, 취소 할 수 있다.

TRUNCATE TABLE 테이블명;
=>INSERT한 모든 자료가 삭제됨
=>DDL=>로그가 남지 않는다.->취소불가!! 

'Lobo's study room > 오라클DB' 카테고리의 다른 글

oracle 설치하기  (0) 2022.02.10
Oracle DB의 INDEX와 시퀀스  (0) 2022.02.10
Oracle DB의 DDL  (0) 2022.02.10
[5일차 과제]서브쿼리  (0) 2022.02.10
[5일차]set 연산자  (0) 2022.02.10