DML은 데이터 내용에 대해서  입력(insert) , 출력(select) , 수정(update) ,  삭제(delete) 등을 처리하는

명령어로 DDL 은 테이블 자체를 수행하는 명령어라면 DML은 그 안의 세부적인 것들을 수행하는

명령어로 생각해주시면 좋을것 같습니다.

DML은 CRUD라고 이야기 하는데 C- CREATE/ R- READ / U- UPDATE/ D- DELETE 의 약자 입니다.

 

 

1) insert into ~ values() - 삽입 : 데이터 입력 (저장)

형태 : insert into 테이블명(필드명1. 필드명2. 필드명3...) values(내용1. 내용2. 내용3);

insert into exam01(
                   deptno,dname,loc) 
                   values(10,'회계부','종로구'); -- 1행이 삽입이 됨

 

 

2)  insert into ~ values() - 삽입 : 필드명 입력 생략 / 가장 이용하는 방법 입니다.

형태 : insert into 테이블명 values(내용1, 내용2, 내용3);     --    단, 순서에 맞게 내용을 넣어야한다.

insert into exam01 values(30,'영업부', '용산구'); 

 

 

3) null 값 입력  

insert into exam01 values(40,'관리부',null);

NULL 이란?

null을 통해서 확정 되지 않은 정보 대신 입력 함으로 데이터가 저장될 수 있게 만듭니다.

즉, 입력 데이터가 없음에도 불구하고, error  방지를 위해 삽입한다고 보시면 됩니다.

 

 

4) UPDATE :  필드의 데이터를 변경 ,  부서번호 변경

형식 : update 테이블명 set 필드명 변경 내용

update exam01 set deptno = 30;   --deptno의 모든 번호를 30으로 만듬 
*** update ... set 함께 갑니다 ***

 

 

5) UPDATE를 활용 문제

- 급여 10% 인상 금액 반영 하기

update exam02 set sal = sal 1*1 
-- sal:월급 / 월금 = 현재 월급의 1 x 1 (10% = 1.1) 
--  '='  같다는 의미도 있지만 프로그래밍에서는 대입의 의미도 가지고 있습니다. 
-- 그래서 sal*1.1 의 값을 sal에 저장되어진다. 

 

 

6) UPDATE를 활용 문제 :  where 사용하기

- 부서번호가 10 인 사원의 부서번호를 20 으로 변경

update exam02 set deptno = 20
where deptno = 10; 
-- where을 넣지 않으면 테이블의 deptno이 모두 20되지만 where 조건을 통해서 
-- deptno가 10인 사람만 20으로 변경된다. 

 

 

7) DELETE : 테이터 삭제

형태 : delete from 테이블명;

delete from kongcafe; 

 

TRUNCATE VS DELETE ???

truncate table kong; 같은 동작을 수행하지만 database 안에서는 truncate 은 테이블 전체를 삭제했다가

테이블만 다시 생성해주고 delete 은 안에 내용만 삭제 합니다. 결과는 같습니다, 그렇기 때문에 둘중에

필요한 아무거나 사용해도 괜찮습니다.

 

 

8) DELETE 를 활용 문제 :  where 사용하기 

- 30 번 부서 사원을 삭제

delete from  exam02  
where deptno = 30; 
-- delete 함수 이지만 delete from 으로 외워두는 것이 훨씬 편리합니다. 

 

 

 

+ Recent posts