Oracle SQL 강좌
데이터의 삽입, 수정, 삭제 32 33 99,999+

by 구루비 INSERT UPDATE DELETE [2002.01.20]


INSERT

INSERT명령어는 테이블 안에 데이터를 삽입하는 역할을 한다.

INSERT 문법

INSERT

INSERT

  • - 실제 데이터는 VALUES 괄호()안에 입력하고 문자열은 단일 따옴표(' ')로 둘러싼다.
  • - 각각의 테이터 구분은 ","로 한다.
  • - 테이블 이름 옆에 ()생략시에는 자동으로 모든 컬럼을 VALUES()안에 입력 시킨다.

INSERT 예제
 
-- 모든 데이터를 입력할 경우
SQL> INSERT INTO emp
     VALUES(7369, 'SMITH', 'CLERK', 7902, TO_DATE('80/12/17'),  800, NULL,  20);

-- 원하는 데이터만 입력할 경우
SQL> INSERT INTO dept (deptno, dname)
     VALUES(10, 'ACCOUNTING' );

-- SELECT 문장을 이용한 INSERT
SQL> INSERT INTO dept2
     SELECT * FROM dept;
    

UPDATE

테이블 안의 데이터를 수정 한다.

UPDATE

  
-- 사원번호가 7902번인 사원의 부서 번호를 30으로 수정
SQL> UPDATE emp
     SET deptno = 30
     WHERE empno = 7902;

-- 부서번호 20의 사원들 급여가 10% 인상됨
SQL> UPDATE emp
     SET sal = sal * 1.1
     WHERE deptno = 20;

-- 모든 사원의 입사일을 오늘로 수정
SQL> UPDATE emp
     SET hiredate = SYSDATE
    

DELETE

사용하지 않는 데이터를 삭제 한다.

DELETE

-- 사원번호가 7902번인 사원의 데이터를 삭제.      
SQL> DELETE FROM emp
     WHERE empno = 7902 ;

-- 평균급여보다 적게 받는 사원 삭제
SQL> DELETE FROM emp
     WHERE sal < (SELECT AVG(sal) FROM emp);
        
-- 모든 행이 삭제
SQL> DELETE FROM emp; 
    

참고링크

- 강좌 URL : http://www.gurubee.net/lecture/1016

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by smile [2005.11.09 19:53:44]
퍼갑니다. ^^

by 홍홍군 [2006.10.10 11:40:50]
도움 많이 되고 있습니다. 감사합니다.^^.

by 멍멍 [2006.11.07 11:21:17]
멍멍 감사

by 이나 [2006.12.13 11:46:03]
감사함니다 * ^ ^ *

by 에단 [2007.01.31 12:43:49]
정보 감사요 ^^

by 쿨가이 [2007.03.08 12:06:10]
지금은 잘 모르겠지만....천천히 잘 보고 있습니다..
좋은 정보 감사합니다....^^

by 최병국 [2007.03.27 14:10:59]
테이블 삭제도 똑같이 하나요?

by 나는 [2007.03.29 09:42:50]
SELECT 문장을 이용한 INSERT 가 안되네여..
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다...이렇게 에러가 뜨는데
왜 그런거죠?

by 이현석 [2007.03.30 11:05:07]
나는님. 그런 경우에는 SELECT 혹은 INSERT할 테이블이 없는 경우 입니다.
테이블이 있는지 확인해 보세요.
만약 INSERT할 테이블이 없다면 CREATE 테이블 AS SELECT~~~ 로 하실 수 있습니다.

by 백승현 [2007.04.19 09:16:14]
-------------------------------------------------
SQL> insert into emp
2 SELECT * FROM SCOTT.EMP;
SELECT * FROM SCOTT.EMP
*
2행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
-------------------------------------------------
분명 test유저와 scott유저에 emp 테이블이 존재하는데
위와같은 오류가 뜨는데요 왜그런걸까요?


by 김진범 [2007.07.13 09:54:49]
test유저가 scott의 emp를 select할 권한이 없기 때문이 아닐까요?
grant select on emp to test;
해주시고 test에서 scott.emp를 select해보시믄 되실듯합니다.

by 박남영 [2007.07.20 17:19:38]
SQL> INSERT INTO EMP
2 SELECT *
3 FROM SCOTT.EMP;
INSERT INTO EMP
*
1행에 오류:
ORA-00001: 무결성 제약 조건(SCOTT.PK_EMP)에 위배됩니다
위와 같은 오류가 뜨는데요 왜 그런걸까요?

by ㅠㅠ [2008.01.20 19:02:42]
DELETE문 하다가 예제를 다 지워버렸는데 원상복귀 안되나요?

by 킁 [2008.01.25 10:41:50]
rollback;

by 그냥 [2008.04.17 17:40:14]
오라클은 sql 상에서 작업 한경우 commit; 을 해야 적용이 되고 잘 못한경우
rollback; 으로 복구가 가능합니다. 하지만 commit; 상태에선 복구가 안되니
select 로 정확시 확인 하시고 commit; 하시기 바랍니다~

by 지나가는놈 [2008.05.01 17:31:50]
테이블에 fk가 지정되어있는 경우 아래와 같은 쿼리는 안 들어가네요...

INSERT INTO DEPT
SELECT * FROM SCOTT.DEPT ;
이런 식의 쿼리만 들어갑니다..
INSERT INTO DEPT(~~)
values(~~);

by 초보 [2008.05.02 16:25:46]
UPDATE 테이블명
SET 컬럼명 (서브쿼리)
SET 다른컬럼명 (서브쿼리)
WHERE ....

이런식으로 SET을 연속적으로 쓰면 안대는건가요?

오류가 나는군요;;;

by 웅 [2008.05.05 10:34:29]
UPDATE 테이블명
SET 컬럼명 = (서브쿼리)
, 다른컬럼명 = (서브쿼리)
WHERE ....

by 허당 [2008.12.30 20:00:10]
테이블 삭제명령어 DROP ㅋㅋ 헷갈리지 맙시다 ㅎㅎ

by 권용운 [2009.02.16 13:23:51]
간결하고 확실한 예제 감사합니다.

by 열공 [2009.02.18 13:46:26]
Delete나 Update 명령 잘못쓰고 commit 하면 데이터 다 날라가겠네요;;
중요한 데이터의 경우는 심각한 문제가 될듯...
이런걸 방지 할 수 있는 방법들은 없을까요?

by 김x현 [2009.03.18 15:25:46]
잘 읽고 있어요 ㅎㅎ
교제대신 사용 하는데 어찌나 좋은지
ppt 준비할 시간에 발성 연습 하고 있어요 ^^
애들이 어찌나 잘 자던지 ...ㅋㅋ 뿌듯하더라구요 ㅋㅋ

by cuihua [2011.03.30 23:52:14]
초보입니다

by 송죽 [2011.08.08 14:55:51]
감사. 조금씩 실력이 늘어가네요.

by kal [2011.11.26 23:32:50]
앞전에서 생성했던 테이블들을 다 지웠습니다.

constraint 부분이 찌꺼기처럼 남는것 같은데요

DELETE FROM USER_CONSTRAINTS

이렇게 날렸더니 권한이 없다네요.


지금 이렇게 CONSTRAINT_NAME이 남았는데 지워도 되는지 알고 싶습니다.
BIN$+QQatnVWSkKQGGSDQ+No3A==$0
BIN$FJreTWbwT3eLJ9cHSraciA==$0
BIN$6wWOC+fvSKqgPpK9s8OWtA==$0
BIN$+QoBJTGfRMC5KrRoUwYuyA==$0
BIN$h6c0tKFqRfSgpkpc6haitw==$0
BIN$AUjpPjdnSVq+TdCYuWqDYw==$0

혹시 지우는 방법은 권한을 강화해야하는것인지요?

by kal [2011.11.26 23:33:43]
그리고 강좌 감사합니다. 열심히 보고 있습니다. ^^

by 예준아빠 [2012.01.13 08:56:16]
Inset table
변수 decode(:i,0,a,b)
value(a,b,c)

Insert 시 decode 도 사용가능한가요

by 진 [2012.09.27 14:33:59]

감사합니다~


by 서병준 [2012.10.08 13:52:31]
많이 많이 써봐야 할겠어요 오오

by 코아리카 [2013.02.01 13:52:36]
TO_DATE (월/일/년) 순서로 입력해야하네요..ㅎ

위 예시 insert 문의 TO_DATE('80/12/17') 에러.. ('12/17/80') 식으로요..

by 손님 [2013.03.27 16:45:23]

정식이 좀하네

by 지금이순간 [2015.10.08 14:01:41]

감사합니다


by 비비엘소프트 [2015.11.06 17:13:47]

고맙습니다. 잘 보고 갑니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입