정보보호관리자 과정 교육/Oracle
19강 DML 문장의 이해
T-Evan
2010. 10. 26. 20:53
SQL> INSERT INTO <테이블명> [(<컬럼명>, <컬럼명>, ... )]
> VALUES (<값>, <값>, ...);
- INSERT문장은 하나의 행만을 삽입니다.
- 컬럼 리스트와 VALUES절의 값은 반드시 1:1로 대응된다.
- 테이블의 모든 컬럼에 값을 입력하는 경우 컬럼 리스트를 생략 할 수 있다.
: VALUES절에 기술하는 값의 순서는 DESC명령으로 확인된 테이블의 컬럼 순서와 일치해야 한다.
- 입력되는 값이 숫자가 아닌 경우 반드시 단일 인용부호를 사용한다.
- INSERT문장에서 생략된 컬럼은 NULL값이 입력된다.
SQL> UPDATE <테이블명>
> SET <컬럼명> = <값|수식>, <컬럼명> = <값|수식>, ...
> [WHERE <조건>];
- 컬럼의 값을 수정한다.
- WHERE절을 생략하면 모든 행의 지정된 컬럼 값이 수정된다.
- 여러 컬럼의 값을 동시에 수정할 수 있다.
SQL> DELETE FROM <테이블명>
> [WHERE <조건>];
- 행단위로 데이터를 삭제한다.
- 조건이 없는 경우 테이블의 모든 행을 삭제한다.
- 테이블을 삭제해도 테이블의 물리적인 구조는 변하지 않는다.
. DB의 물리적인 공간이 부족한 경우 단지 테이블의 불필요한 행을 삭제하는 것만으로는 공간을 확보 할 수는 없다.
. 테이블이 사용하지 않는 공간을 반환하는 경우는 테이블을 삭제(DROP)하거나 절삭(TRUNCATE) 하는 경우 밖에 없다.
SQL> COMMIT;
- 작업을 완료한다.
SQL> ROLLBACK;
- 작업을 취소한다.
예제 1. DML문장과 ROLLBACK이나 COMMIT명령을 수행해 본다.
예제 2. EMP 테이블의 모든 행을 삭제하고 다음 제공된 값을 입력한다.
예제 3. 날짜 형식을 확인하고 아래 제공된 값을 입력한다.
예제 4. 날짜 형식을 확인하고 아래 제공된 값을 입력한다. 날짜 입력에 TO_DATE()를 이용한다.
예제 5. 날짜에 적용되는 디폴트 값을 확인한다.
예제 6. 김주란의 부서 번호를 10번으로 수정하고 급여를 10% 인상 하세요.
실습
① Test1 테이블에 sysdate를 이용 시분초를 제외하고 년월일만 입력하고 입력된 값을 검색한다. 검색은 반드시 to_date()함수를 이용한다.
② Test2 테이블에 화학과 학생의 기말고사 평균 입력하고 입력된 값을 검색한다.
③ Emp 테이블의 행을 모두 삭제하고 다음 제시된 데이터를 입력한다.
ENO ENAME JOB MGR HDATE SAL COMM DNO
---------- ---------- ------------ ---------- ---------- ---------- ---------- ----------
1001 문시현 모델링 1991/02/01 4500 520 10
1002 김주란 모델링 1992/03/03 4100 330 20
1003 양선호 모델링 1995/02/21 4300 30
1004 신호연 모델링 1992/09/05 4210 100 40
2002 제갈민 개발 1002 1996/04/30 1520 2000 20
2003 정의찬 개발 1003 1992/03/03 4350 30
2004 오시원 개발 1004 1992/09/05 988 3000 40
3001 이초원 관리 2001 1998/10/17 2500 1500 10
3002 양선호 관리 2002 1992/03/03 2800 20
3003 이초록 관리 2003 1992/09/05 1989 2300 30
3004 윤고은 관리 2004 1992/03/03 2100 40
4001 김선유 분석 3001 1998/10/17 3200 300 10
4002 권아현 분석 3002 2001/01/29 2900 20
4003 이유건 분석 3003 1992/03/03 3450 50 30
4004 이채린 분석 3004 1992/09/05 2890 40
④ 모든 학생의 성적을 4.5만점 기준으로 수정한다.
⑤ 모든 교수의 부임일자를 1년 늦도록 수정한다.
> VALUES (<값>, <값>, ...);
- INSERT문장은 하나의 행만을 삽입니다.
- 컬럼 리스트와 VALUES절의 값은 반드시 1:1로 대응된다.
- 테이블의 모든 컬럼에 값을 입력하는 경우 컬럼 리스트를 생략 할 수 있다.
: VALUES절에 기술하는 값의 순서는 DESC명령으로 확인된 테이블의 컬럼 순서와 일치해야 한다.
- 입력되는 값이 숫자가 아닌 경우 반드시 단일 인용부호를 사용한다.
- INSERT문장에서 생략된 컬럼은 NULL값이 입력된다.
SQL> UPDATE <테이블명>
> SET <컬럼명> = <값|수식>, <컬럼명> = <값|수식>, ...
> [WHERE <조건>];
- 컬럼의 값을 수정한다.
- WHERE절을 생략하면 모든 행의 지정된 컬럼 값이 수정된다.
- 여러 컬럼의 값을 동시에 수정할 수 있다.
SQL> DELETE FROM <테이블명>
> [WHERE <조건>];
- 행단위로 데이터를 삭제한다.
- 조건이 없는 경우 테이블의 모든 행을 삭제한다.
- 테이블을 삭제해도 테이블의 물리적인 구조는 변하지 않는다.
. DB의 물리적인 공간이 부족한 경우 단지 테이블의 불필요한 행을 삭제하는 것만으로는 공간을 확보 할 수는 없다.
. 테이블이 사용하지 않는 공간을 반환하는 경우는 테이블을 삭제(DROP)하거나 절삭(TRUNCATE) 하는 경우 밖에 없다.
SQL> COMMIT;
- 작업을 완료한다.
SQL> ROLLBACK;
- 작업을 취소한다.
예제 1. DML문장과 ROLLBACK이나 COMMIT명령을 수행해 본다.
예제 2. EMP 테이블의 모든 행을 삭제하고 다음 제공된 값을 입력한다.
예제 3. 날짜 형식을 확인하고 아래 제공된 값을 입력한다.
예제 4. 날짜 형식을 확인하고 아래 제공된 값을 입력한다. 날짜 입력에 TO_DATE()를 이용한다.
예제 5. 날짜에 적용되는 디폴트 값을 확인한다.
예제 6. 김주란의 부서 번호를 10번으로 수정하고 급여를 10% 인상 하세요.
실습
실습 쿼리
다운로드
다운로드
① Test1 테이블에 sysdate를 이용 시분초를 제외하고 년월일만 입력하고 입력된 값을 검색한다. 검색은 반드시 to_date()함수를 이용한다.
② Test2 테이블에 화학과 학생의 기말고사 평균 입력하고 입력된 값을 검색한다.
③ Emp 테이블의 행을 모두 삭제하고 다음 제시된 데이터를 입력한다.
ENO ENAME JOB MGR HDATE SAL COMM DNO
---------- ---------- ------------ ---------- ---------- ---------- ---------- ----------
1001 문시현 모델링 1991/02/01 4500 520 10
1002 김주란 모델링 1992/03/03 4100 330 20
1003 양선호 모델링 1995/02/21 4300 30
1004 신호연 모델링 1992/09/05 4210 100 40
2002 제갈민 개발 1002 1996/04/30 1520 2000 20
2003 정의찬 개발 1003 1992/03/03 4350 30
2004 오시원 개발 1004 1992/09/05 988 3000 40
3001 이초원 관리 2001 1998/10/17 2500 1500 10
3002 양선호 관리 2002 1992/03/03 2800 20
3003 이초록 관리 2003 1992/09/05 1989 2300 30
3004 윤고은 관리 2004 1992/03/03 2100 40
4001 김선유 분석 3001 1998/10/17 3200 300 10
4002 권아현 분석 3002 2001/01/29 2900 20
4003 이유건 분석 3003 1992/03/03 3450 50 30
4004 이채린 분석 3004 1992/09/05 2890 40
④ 모든 학생의 성적을 4.5만점 기준으로 수정한다.
⑤ 모든 교수의 부임일자를 1년 늦도록 수정한다.