728x90
DML이란???
DML은 Data Manipulation Language로 데이터 조작어의 약자이다. 말 그대로 데이터를 조작할 때 사용되는 언어로 좀만 생각해봐도 당연히 CRUD가 되겠지? 라는 생각이 든다.
DML에는 INSERT(C), SELECT(R), UPDATE(U), DELETE(D)가 있다.
INSERT
INSERT 형식
1. 테이블 구조에 맞는 모든 컬럼에 매핑되는 값을 지정, 데이터가 없는 컬럼인 경우에도 값을 지정(누락되면 안됨, 기본값을 임의 지정하거나, null 사용 가능)
주의: 테이블 구조의 모든 칼럼에서 누락된 칼럼이 있어서는 안됨
insert into 테이블명
values (컬럼값1, 컬럼값2, 컬럼값X);
2. 사용자가 지정한 컬럼명에 매핑되는 값을 지정
생략 가능한 컬럼: null default 설정, auto_increment 설정
주의: 필수 칼럼(not null, primary key)은 누락되서는 안됨
insert into 테이블명(컬럼명a, 컬럼명b)
values (컬럼a값, 컬럼b값);
3. 다중 칼럼 레코드 추가
(mysql에서만 씀, 오라클에서는 서브쿼리로 만들 수 있음)
insert into 테이블명(컬럼명a, 컬럼명b)
values
(컬럼a값, 컬럼b값),
(컬럼a값, 컬럼b값),
(컬럼a값, 컬럼b값);
실습:
- 내정보, 내짝꿍 입사(레코드 추가)하는 상황
- 직원 테이블 구조에서 필수 칼럼 조회
- desc employees;
not null 칼럼: employee_id(PK), last_name, email, hire_date, job_id
-- 내정보/짝꿍 정보 레코드 추가
-- 필수항목: employee_id(PK), last_name, email, hire_date, job_id
insert into employees(employee_id, last_name, email, hire_date, job_id)
values
(207, 'Kang', 'KSMLUCKY', '2022-01-01', 'IT_PROG'),
(208, 'So', 'SOEMAIL', '2020-01-01', 'IT_PROG');
UPDATE
UPDATE 형식
UPDATE 테이블명 SET 수정할컬럼명1=수정할값1, 수정할컬럼명2=수정할값2 WHERE 변경조건;
실습:
-- 레코드 변경: 사번이 100, 101, 102 번 사원의 수당율을 0으로 변경
update employees
set commission_pct = 0
where employee_id in (100,101,102);
DELETE
DELETE 형식
delete from 테이블명 where 조건절;
실습:
-- 짝꿍 레코드 삭제
delete from employees
where employee_id = 208;
-- 추가된 사원 모두 삭제
-- 기존 사원의 최대 사번은 206
delete from employees
where employee_id > 206;
정리
기본이 되는 애들이니까 무조건, 당연히 알고 있어야 됨!!!
728x90