본문 바로가기
Database/Oracle

[오라클(Oracle) ] DML(INSERT / UPDATE / DELETE)

by Ali1020 2022. 4. 14.

[오라클(Oracle) ] DML(INSERT / UPDATE / DELETE)

 

1. INSERT

2. UPDATE

3. DELETE

 

 

 

 

1. INSERT

 테이블에 데이터를 입력하기 위한 명령문이다. INSERT 절에서는 데이터를 입력할 테이블명을 into와 함께 적고 괄호 안에는 데이터를 입력할 칼럼명을 차례로 적어준다. 데이터 값은 VALUE 절을 통해 넣어준다. INSERT 절에서 적은 칼럼명 순으로 데이터 값을 차례로 입력하면 된다. 이때 입력하는 데이터 타입은 칼럼의 데이터 타입과 동일해야 한다. 또한 DML(INSERT, UPDATE, DELETE)의 경우에는 COMMT을 해줘야 하드에 저장된다.

1
2
3
4
insert into student(studno, name, grade)
values (20112'김지수''2')
 
commit;
 
cs

 

참고로 칼럼을 적지 않으면 테이블을 생성할 때 적었던 칼럼의 순서대로 데이터가 입력되므로 주의해야 하며

[desc student;] 코드를 통해 칼럼 순서를 확인할 수 있다.

 
이름          유형           
---------   ------------ 
STUDNO       NUMBER(5)    
NAME         VARCHAR2(10
USERID       VARCHAR2(10
GRADE        VARCHAR2(1)  
IDNUM        VARCHAR2(13
BIRTHDATE    DATE         
TEL          VARCHAR2(13
HEIGHT       NUMBER(5,2)  
WEIGHT       NUMBER(5,2)  
DEPTNO       NUMBER(4)    
PROFNO       NUMBER(4)    
cs

 

EX) professor 테이블에 새로운 데이터 입력 (교수 번호 : 3010, 이름 : 이명신, 학과 번호 : 302) 

1
2
3
4
insert into professor(profno, name, deptno)
values (3010'이명신'302);
 
commit;
 
cs

 

EX) professor 테이블에 새로운 데이터 입력

(교수 번호 : 9920, 이름 : 김민성, 직급: 부교수, 고용일 : 2022/01/01, 학과 번호 : 302)

1
2
3
4
insert into professor(profno, name, position, hiredate, deptno)
values (9920'김민성''부교수', to_date('2022/01/01''YYYY/MM/DD'), 302)
 
commit;
 
cs

 

EX) department 테이블에 새로운 데이터 입력 (학과 번호 : 401, 학과명 : 경영학과, 위치 : 3호관)

1
2
3
4
insert into department(deptno, dname, loc)
values (401'경영학과''3호관')
 
commit;
cs

 

 

 

 

2. UPDATE

 테이블의 데이터를 수정하기 위한 명령어이다. UPDATE 뒤에는 수정할 테이블명을 적고 수정할 내용을 SET 뒤에 적어준다. 그다음에 WHERE 절을 통해 수정할 데이터의 행 조건을 적는다. (WHERE 적지 않을 경우 모든 행이 수정된다.)

1
2
3
4
5
update professor 
set position = '조교수'
where profno = 3103
 
commit;
cs

 UPDATE와 DELETE에서 가장 주의해야 할 점은 WHERE 절을 꼭 포함해야 하는 것인데, 위의 예시의 경우 WHERE을 적지 않으면 모든 행의 position이 조교수가 돼버리니 주의해야 한다. 

 

 

EX) student 테이블에서 김수연 학생의 학년을 3학년으로 수정
1
2
3
4
5
update student 
set grade = '3'
where name = '김수연'
 
commit;
cs

 

EX) department 테이블에서 컴퓨터공학과 위치를 5호관으로 수정

1
2
3
4
5
update department 
set loc = '5호관'
where dname = '컴퓨터공학과'
 
commit;
cs

 

 

 

EX) emp 테이블에서 사번이 2010인 사원의 급여를 사번 3112인 사원과 동일하게 수정(서브 쿼리 사용)

1
2
3
4
5
6
7
8
update emp
set sal = (select sal 
           from emp 
           where empno = 3112 ) 
 
where empno = 2010
 
commit;
cs

 

 

 

 

3. DELETE

 테이블의 데이터를 삭제하기 위한 명령어이다. DELETE 뒤에 삭제할 데이터가 있는 테이블명을 적고 WHERE 절을 통해 삭제할 행의 조건을 적어준다. UPDATE와 마찬가지로 WHERE절이 없으면 해당 테이블의 모든 데이터가 삭제되니 주의해야 한다.

1
2
3
4
delete student 
where studno = 30113
 
commit;
cs

위의 예시에서 만약 'where studno = 30113'이라는 조건이 없다면 student 테이블의 모든 행이 삭제된다.

 

 

EX) emp 테이블에서 사원번호가 30115인 사원을 삭제

1
2
3
4
delete emp 
where empno = 30115
 
commit;
cs

 

 

EX) student 테이블에서 4학년 중 성적이 30점 이하인 데이터를 삭제

1
2
3
4
delete student 
where grade = '4' and score <= 30
 
commit;
cs

 

 

 

 

 

 

[오라클(Oracle) ] DML(INSERT / UPDATE / DELETE)

-요약-

 

1. INSERT

- 테이블에 데이터를 입력하기 위한 명령문

- insert into 테이블명(칼럼들) values(데이터 값들)

- desc student 통해 컬럼 순서 확인 가능

 

2. UPDATE

- 테이블의 데이터를 수정하기 위한 명령어

- update 테이블명 set 수정할 내용 where 조건

- where 조건 적지 않는 경우 모든 행이 다 수정

 

3. DELETE

- 테이블의 데이터를 삭제하기 위한 명령어

- delete 테이블명 where 조건

- where 조건 적지 않는 경우 모든 행이 다 삭제

- dml(insert, update, delete)는 commit을 해야 하드에 저장된다.

 

댓글