[ DML (Data Manipulation Language) 


- 테이블내의 데이터를 입력,수정,삭제할때 사용하는 SQL언어


- 데이터를 실제로 DB에 저장할때는 COMMIT, 취소할때는 ROLLBACK을 사용한다.

 



1) INSERT문


- 데이터를 추가할때 사용



형식)

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


 

예1)

INSERT INTO DEPT(DEPTNO,DNAME,LOC)
    VALUES(50,'회계','서울');
 COMMIT; --- 실제로 DB에 저장

 

-- 모든컬럼값을 모두 추가할때는 컬럼명 생략 가능!

SQL> INSERT INTO DEPT
     2  VALUES(60,'인사부','대구');


-- 형변환 가능

SQL> INSERT INTO DEPT
      2  VALUES('70','영업부','부산');


SQL> INSERT INTO EMP(EMPNO,ENAME,JOB,DEPTNO)
     2  VALUES(1000,'홍길동','학생',70);

 

 


2) DELETE 문


-- 데이터를 삭제할때 사용



 형식)

DELETE FROM 테이블명 WHERE 조건절;     

 

 

예1) 부서번호가 70번인 부서를 DEPT테이블에서 삭제하시오.

DELETE FROM DEPT WHERE DEPTNO=60;
COMMIT;

 

-- 참조하는 자식데이터가 존재하면 데이터를 삭제할 수 없음

 

SQL> DELETE FROM DEPT WHERE DEPTNO=70;
         DELETE FROM DEPT WHERE DEPTNO=70
  *
ERROR at line 1:
ORA-02292: integrity constraint (SCOTT.FK_DEPTNO) violated - child record f

 ==> 자식데이터를 먼저지우고 부모데이터를 지운다.

 

SQL> DELETE FROM EMP WHERE DEPTNO=70;

 1 row deleted.


SQL> DELETE FROM DEPT WHERE DEPTNO=70;

 1 row deleted.


SQL> COMMIT;

 

 

-- DEPT테이블에서 부서번호가 50이상인 부서를 삭제해 보세요.

SQL> DELETE FROM DEPT WHERE DEPTNO>=50;

 


-- EMP테이블에서 사원이름이 '김철수'이거나 급여가 2000이상인 사원들을 삭제해 보세요.(COMMIT하지 말고 다시 ROLLBACK하세요)

SQL> DELETE FROM EMP
     2  WHERE ENAME='김철수' OR SAL>=2000;

 

 


3) UPDATE문


- 데이터를 수정할 때 사용



형식)

UPDATE 테이블명
  SET 컬럼명1=수정값,컬럼명2=수정값,..
WHERE 조건절;



예) 사원이름이 'ALLEN'인 사원의 부서를 10번,급여를 3000으로 수정하시오.

UPDATE EMP
     SET DEPTNO=10,SAL=3000
 WHERE ENAME='ALLEN';

COMMIT;

 

-- 부서번호가 20번이고 급여가 2000이상인 사원들의 부서를 30번부서로 수정하세요.

UPDATE EMP
      SET DEPTNO=30
 WHERE DEPTNO=20 AND SAL>=2000;
   

COMMIT;

 

-- 10번 부서사원들의 급여를 10%인상하세요.

SQL> UPDATE EMP
     2  SET SAL=SAL*1.1
     3  WHERE DEPTNO=10;

 

-- 회원정보를 갖는 테이블

CREATE TABLE MEMBER(
 ID VARCHAR2(10) PRIMARY KEY,
 PWD VARCHAR2(10),
 PHONE VARCHAR2(15),
 REGDATE DATE);

 

-- 구매 테이블

DROP TABLE CART;
CREATE TABLE CART(
 NUM NUMBER PRIMARY KEY,
 ID VARCHAR(10) REFERENCES MEMBER(ID),
 ITEM VARCHAR2(20),
 PRICE NUMBER );

 

INSERT INTO MEMBER VALUES('SONG','1234','02-111-1234',SYSDATE);

INSERT INTO CART VALUES(1,'SONG','사탕',1000);

COMMIT;






'DBMS > 오라클기초' 카테고리의 다른 글

오라클 기초 #7(table)  (0) 2013.01.27
오라클 기초#6(Transaction Control Language)  (0) 2013.01.27
오라클 기초#4 ( JOIN, ROWID, ROWNUM )  (0) 2013.01.27
오라클 기초#3 (subquery)  (0) 2013.01.27
오라클 기초#2(함수)  (0) 2013.01.27

+ Recent posts