[DB] 데이터 조작어(DML)

@욕심쟁이

·

2020. 8. 19. 17:40

반응형

데이터 조작어(DML)

- insert : 테이블에 새로운 행 추가

- update : 테이블에 새로운 행 수정

- delete : 테이블에 새로운 행 삭제

- DML작업시 commit 을 하지 않으면 다른사람이 작업못함

1. INSERT

- insert into : 데이터를 입력할 테이블과 커럼을 명시하는 절

- values       : 입력할 데이터를 작성하는 절

 

 1) 문법

insert into table [(colummn[, column....])]
values (value[, value...]);

예제1)

insert into departments(department_id, department_name) values(290,'Sleeping');

예제2)

insert into departments values(300,'Home',null,null);

서브쿼리 활용한 INSERT구문

- 테이블 생성

CREATE TABLE sales_reps
AS (SELECT employee_id id, last_name name, salary, commission_pct
FROM employees WHERE 1=2);

- 테이블 잘못생성시 삭제

DROP TABLE sales_reps;

- 서브쿼리를 통한 데이터 입력

- 다른 테이블의 데이터를 행개수 제한 없이 입력할 수 있음.

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

- 기본문법

update tableName set cloumn = value [,cloumn = value ···] [where condition];

- 실습용 테이블 생성

CREATE TABLE copy_emp AS 
       SELECT * FROM employees;
SELECT employee_id, department_id
FROM copy_emp
WHERE employee_id = 113;
UPDATE copy_emp
SET department_id = 50
WHERE employee_id = 113;

- 갱신 전 205, 113번 사원의 직책, 급여 조회

SELECT employee_id, job_id, salary
FROM copy_emp
WHERE employee_id IN (205, 113);

205번 사원의 값으로 113번 사원의 값 갱신

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;

3. delete 

- 기본문법

delete from tableName [where condition];
SELECT * FROM departments;
DELETE FROM departments WHERE department_name = 'NOC';

 

반응형

'IT > DB' 카테고리의 다른 글

[DB] 트랜잭션(Transaction)이란?  (0) 2020.08.21
[DB] JDBC란?(MySQL 기준)  (0) 2020.08.20
[DB] 데이터타입(IN Oracle)  (0) 2020.08.19
[DB] MYSQL 데이터베이스 설정  (0) 2020.08.18
[DB] MYSQL 한글설정  (0) 2020.08.18