5. DB/4-1. MySQL DBMS
MySQL - [데이터조작어(DML) - Insert / Update / Delete ]
yunyj99
2022. 3. 4. 14:11
* 테이블의 데이터 변경을 위한 SQL문 -> 데이터 조작어(DML : Data Manipulation Language)
- 테이블에 새로운 행 추가(insert)
- 테이블의 기존 행 수정(update)
- 테이블의 기존 행 삭제(delete)
1. Insert
- 데이터 삽입을 위한 SQL문
SQL> insert into 테이블명[(컬럼1, 컬럼2, 컬럼3, ...)]
values (값1, 값2, 값3, ...);
- 컬럼 리스트를 나열한다면 값 리스트 수와 같아야 함. 생략된 컬럼에는 null값 자동 삽입됨.
- 컬럼 리스트 생략하면 값을 기본 컬럼 순서대로 다 넣어줘야함.
- 데이터 삽입 시 제약조건 유의 : 문자 및 날짜는 작은 따옴표로 묶어서 표현 / 날짜 : 년도–월-일 순서로 작성
ex)'1991-12-30'
- 여러 줄 동시에 삽입도 가능
- 오늘 날짜 삽입 : now 함수 이용
ex) insert into orders values (3, 106, 50, now( ));
- insert 시 default 값이 선언된 컬럼에는 수동으로 default 값 삽입할 수 있음
ex) insert into orders values (5, 108, 50, default);
ex) 서브쿼리가 사용된 insert 구문
insert into sales_reps(id, name, salary, commission_pct)
select employee_id, last_name, salary, commission_pct
from employees
where job_id like '%REP%';
2. Update
- 데이터 수정을 위한 SQL문
SQL> update 테이블명
set 컬럼명 = 값
[where 조건문];
SQL> update 테이블명
set 컬럼명1 = 값1, 컬럼명2 = 값2, ...
[where 조건문];
* 조건문을 안 적으면 테이블의 모든 행이 변경됨
ex) 서브쿼리가 사용된 update 구문
update copy_emp
set job_id = (select job_id
from employees
where employee_id = 205),
salary = (select salary
from employees
where employee_id = 205)
where employee_id = 113;
update copy_emp
set salary = salary * 1.1
where department_id = ( select department_id
from departments
where location_id = 1800 );
3. Delete
- 행(레코드 삭제)를 위한 SQL문
SQL> delete from 테이블명
[where 조건문];
- 테이블의 모든 행을 삭제 : where절 없이 작성
ex) delete from 테이블명;