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 으로 외워두는 것이 훨씬 편리합니다.
'빅데이터 > DataBase' 카테고리의 다른 글
[DataBase] 데이터 무결성 제약 조건(DICR) (0) | 2020.04.12 |
---|---|
[DataBase] 트랜잭션 (Transaction) (0) | 2020.04.12 |
[DataBase] DDL (Data Definition Language) (0) | 2020.04.11 |
[DataBase] 자료형 타입 (0) | 2020.04.10 |
[DataBase] 내장 함수(function) (0) | 2020.04.10 |