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 테이블명;