[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 |