데이터 조작(DML)
데이터
입력 : INSERT
수정 : UPDATE
삭제 : DELETE
중요) 트랜젝션(COMMIT, ROLLBACK)과 연결된다.
PK MEM_ID VARCHAR2(10 BYTE)
MEM_NAME VARCHAR2(20 BYTE)
AGE NUMBER(3)
BIRTH_DATE DATE
EMAIL VARCHAR2(50 BYTE)
1. INSERT (데이터 입력)
형식)
INSERT INTO 테이블이름(컬럼1, 컬럼2, ...)
VALUES(값1, 값2, ...);
예)
;
INSERT INTO MEMBER (MEM_ID
, MEM_NAME
, AGE
, BIRTH_DATE
, EMAIL)
VALUES('1001'
, 'LEE'
, 29
, TO_DATE('20141218','YYYYMMDD')
, 'HPPY@GMAIL.COM');
-- 벨류 값은(VARCHAR 문자열 또 DATE등에 맞춰서 선언한다.
SELECT * FROM MEMBER;
DELETE MEMBER WHERE MEM_NAME = 'HIM' ; :멤버삭제
;
-- 전체 컬럼에 입력을 할 경우 컬럼을 제외할 수 있다.
-- 단, VALUES에 들어가는 순서가 일치해야 한다.
; INSERT INTO MEMBER
VALUES('1021'
, 'L5E'
, 86
, TO_DATE('20141218','YYYYMMDD')
, 'HPPY2@GMAIL.COM'
, DEFAULT);
일부 컬럼 입력시)
1) MAM_NAME 제외하고 입력시 -> 오류 발생, 멤버 NAME은 NOT NULL로 처리되어 있어서
값이 들어가 있어야한다.
;
INSERT INTO MEMBER (MEM_ID
-- , MEM_NAME
, AGE
, BIRTH_DATE
, EMAIL)
VALUES('1003'
-- , 'LEE'
, 78
, TO_DATE('20141218','YYYYMMDD')
, 'HP4PY@GMAIL.COM');
2) NULL 허용 컬럼에 대한 입력시
;
INSERT INTO MEMBER (MEM_ID
, MEM_NAME
, AGE
-- , BIRTH_DATE
, EMAIL)
VALUES('1003'
, 'L5E'
, 78
-- , TO_DATE('20141218','YYYYMMDD')
, 'HP4PY@GMAIL.COM');
SELECT * FROM MEMBER;
ALTER TABLE MEMBER
ADD JOIN_DATE DATE DEFAULT SYSDATE;
; INSERT INTO MEMBER
VALUES(1111
, 'L5323'
, 85
, TO_DATE('20140518','YYYYMMDD')
, 'HP3FPY2@GMAIL.COM'
, DEFAULT);
; INSERT INTO MEMBER
VALUES('1021'
, 'L5E'
, 86
, TO_DATE('20141218','YYYYMMDD')
, 'HPPY2@GMAIL.COM'
, DEFAULT);
;
INSERT INTO EMP(EMPNO, ENAME) VALUES(1111,'김태희');
INSERT INTO EMP(EMPNO, ENAME) VALUES(1111,'전지현');
SELECT * FROM EMP;
SELECT* FROM EMP WHERE DEPTNO IS NULL;
--롤백 방금삭제한 데이터를 되돌려주는 것
--커밋 저장하는법
--DELETE
형식) DELETE FROM 테이블이름 WHERE 삭제할 조건;
1) DELETE FROM EMP WHERE EMPNO > 1000;
2) DELETE FROM EMP WHERE JOB IS NULL;
3) DELETE FROM EMP WHERE HIREDATE IS NULL;
4) DELETE FROM EMP WHERE SAL IS NULL;
5) DELETE FROM EMP WHERE DEPTNO IS NULL;
--공통코드등 중요한 데이터는 스크립트로 보관
UPDATE MEMBER SET MEM_NAME='EIFJ' WHERE MEM_ID= '1111';
--MEM_ID가 1111인 사람의 입사일을 오늘날짜로 만드는 UPDATE
UPFATE -> 기존 데이터 값 수정
형식)
UPDATE 테이블이름
SET 컬럼명1 = 값1
, 컬럼명2 = 값2
.
.
.
WHERE 조건
예) 사원번호 7499 ALLEN의 급여를 10000으로 변경하시오;
UPDATE EMP
SET SAL = 10000
WHERE EMPNO = 7499;
SELECT SAL FROM EMP WHERE EMPNO = 7499;
UPDATE EMP
SET SAL = 1600
WHERE EMPNO= 7499;
SELECT * FROM EMP;
예) 부서번호가 20인 사원의 급여를 20% 증가해서 출력하시오
;
UPDATE EMP
SET SAL = SAL * 1.2
WHERE DEPTNO = 20;
DELETE, UPDATE 에서 가장 중요한 것은 WHERE절의 조건을 어떻게 줄 것인가?
예) 사원번호 103번인 사원의 급여를 50%인상하아
UPDATE EMPLOY
SET SALARY = SALARY * 1.5
WHERE EMPLOYEE_ID = 103;
'IT > Oracle' 카테고리의 다른 글
오라클 10탄 [ INDEX ] (0) | 2015.07.25 |
---|---|
오라클 9탄 (sequence,view) (0) | 2015.07.24 |
오라클 7탄 (테이블 생성및 삭제) (1) | 2015.07.21 |
오라클 6탄 (SCOOP) 서브쿼리 (0) | 2015.07.20 |
오라클 함수정리 6탄 1(hr테이블) (0) | 2015.07.19 |