1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | -- 테이블의 내용, 추가, 수정, 삭제하는 DML -- DML 단위: 행 /* insert : 테이블에 새로운 행 추가 입력 컬럼 나열 - 생략시 모든 컬럼에 데이터 입력 컬럼명과 입력값의 순서만 맞으면 컬럼명 순서는 상관 없다 */ insert into dept01 (deptno, dname, loc) values (10,'SALES','NEWYORK'); insert into dept01 values (20,'RD','SEOUL'); /* #오류 발생 경우 -컬럼명 수 > 괄호 안 컬럼 수 -컬럼명 수 < 괄호 안 컬럼 수 -컬럼명 잘못 기술 -데이터 타입 불일치 #NULL #사용하는 경우: 컬럼값 모를 때 값이 확정되지 않았을 때 #방법: 암시적 명시적 '' #null이 들어가는 경우는 거의 X -사용자 입력 잘못(처리 과정) -쿼리 이상 */ --# 서브쿼리로 데이터 삽입하기 -- 컬럼 타입, 갯수 일치해야한다 insert into dept02 select * from dept ; insert into dept03 select deptno, dname from dept ; --#INSERT ALL: 다중 테이블에 다중 행 입력 -- 서브 쿼리의 결과를 조건 없이 여러 테이블에 입력 -- 서브쿼리의 컬럼명 = 입력 테이블의 컬럼명이어야 함 insert all into emp_hir values(empno, ename, hiredate) into emp_mgr values(empno, ename, mgr) select empno, ename, hiredate, mgr from emp where deptno=20 ; --# WHEN: 조건에 의해 다중 테이블에 다중 행 입력하기 -- 조건에 맞는 행만 추출하여 추가 INSERT ALL WHEN HIREDATE > '1982/01/01' THEN INTO EMP_HIR02 VALUES(EMPNO, ENAME, HIREDATE) WHEN SAL > 2000 THEN INTO EMP_SAL VALUES(EMPNO, ENAME, SAL) SELECT EMPNO, ENAME, HIREDATE, SAL FROM EMP; | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | /* 테이블의 내용을 수정하기 위한 UPDATE문 where절로 조건 지정하여 행을 선택- 선택하지 않으면 모든 행 수정 선택된 행에서 컬럼을 선택하여 update 변경 방법 -모든 행 -특정 컬럼 -서브 쿼리 */ --# 테이블의 모든 행 변경 update emp01 set deptno=30 ; --# 특정 행만 변경 update emp01 set hiredate = sysdate where substr(hiredate, 1, 2)='87' ; --# 2개 이상 컬럼값 변경 update emp01 set deptno=20, job='MANAGER' where ename='SCOTT' ; --# 서브쿼리를 이용한 데이터 수정 update dept01 set loc=(select loc from dept01 where deptno=40) where deptno=20 ; --# 서브쿼리 두 개 이상의 컬럼에 대한 값 변경 update dept01 set (dname, loc)=(select dname, loc from dept where deptno=40) where deptno=20 ; | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /* 테이블의 불필요한 행을 삭제하기 위한 delete문 where절을 이용하여 조건 지정 */ --# 모든 행 삭제 delete from dept01 ; --# 특정 행 삭제 delete from dept01 where deptno=30 ; | cs |
'Develop > DataBase' 카테고리의 다른 글
가상테이블인 뷰 (0) | 2018.07.11 |
---|---|
트랜잭션 (0) | 2018.07.11 |
테이블 구조 생성, 변경 및 삭제하는 DDL (0) | 2018.07.11 |
Oracle 11g 다운로드 (0) | 2018.07.10 |
Oracle 11g 설치 (0) | 2018.07.10 |
댓글