[오라클(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을 해야 하드에 저장된다.
'Database > Oracle' 카테고리의 다른 글
[오라클(Oracle) ] 제약조건(Constraints) /NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN KEY / CHECK / DEFAULT (0) | 2022.04.15 |
---|---|
[오라클(Oracle) ] DDL( CREATE / ALTER / DROP / TRUNCATE ) (0) | 2022.04.14 |
[오라클(Oracle) ] 데이터 그룹 생성(GROUP BY 절) / HAVING 절 (0) | 2022.04.14 |
[오라클(Oracle) ] 그룹 함수( count / sum / avg / max / min 함수) (0) | 2022.04.13 |
[오라클(Oracle) ] 일반 함수( nvl / decode / case 함수) (0) | 2022.04.13 |
댓글