* 데이터 조작어(DML)란?
- 테이블에 데이터를 삽입, 수정, 삭제하는 명령어
- DML의 종류 : insert, update, delete
(1) 데이터 삽입(insert)
[문법] insert into 테이블명 [(컬럼1, 컬럼2, 컬럼3, ...)] values (값1, 값2, 값3, ...);
- insert 작업시 테이블명 뒤에 컬럼리스트를 생략한 경우에는 values 절 뒤에 기본컬럼 순서대로 모든 값을 나열해야한다.
- insert into 에서 컬럼명 생략하는 경우 : values에서 desc나 select * 실행시 나오는 컬럼순서대로 모두 작성해야한다.
- insert 작업시 테이블명 뒤에 컬럼리스트를 작성한 경우 : values의 값 리스트와 순서/개수 등이 일치해야 함.
- insert 작업시 null 값을 자동(암시적)으로 삽입하려면 : 데이터를 삽입 하지않으면 된다.
-- 총 4개의 컬럼 중 2개는 입력하지 않으면 null 값이 자동 입력된다.
insert into departments(DEPARTMENT_ID, DEPARTMENT_NAME) values (300, 'Java');
- insert 작업시 null 값을 수동(명시적)으로 삽입하는 방법.
insert into departments values(310, 'Jsp', null, null);
- insert + 서브쿼리 예제
Q. employees 테이블에서 job_id에 'rep'가 포함된 업무 담당자의 사번, 이름, 급여, 커미션 정보를 sales_reps 테이블로 삽입(복사)하시오
insert into sales_reps
select employee_id, last_name, salary, commission_pct
from employees
where job_id like '%rep%';
Q. employees 테이블의 사원정보 전체를 copy_emp 테이블로 삽입(복사)하기
insert into copy_emp
select *
from employees;
Q. 다중행 삽입하기
insert into departments
values (320, 'CSS', 126, 1700),
(330, 'HTML', null, 1700),
(340, 'Spring', 103, null);
(2) 데이터 수정(update)
[문법] update 테이블명
set 컬럼명1 = 값1, 컬럼명2 = 값2, 컬럼명3 = 값3, ...]
[where 조건문];
- update + 서브쿼리 예제
Q. copy_emp 테이블의 113번 사원의 job_id, salary를 employees 테이블의 205번 사원과 동일하게 변경하시오.
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;
Q. copy_emp테이블에서 location_id(departments 테이블에 있는)가 1800인 부서에 소속된 직원들의 급여를 10% 인상하시오.
update copy_emp
set salary = salary * 1.1
where department_id in (select department_id
from departments
where location_id = 1800);
(3) 데이터 삭제(delete)
[문법] delete from 테이블명 [where 조건문];
- 테이블로부터 특정행을 삭제한다.
- where절 없이 delete 구문을 실행하면 테이블의 모든 행 삭제됨.
Q. departments 테이블의 300번 부서를 삭제하시오.
delete from departments where department_id = 300;
- delete + 서브쿼리 예제
Q. copy_emp 테이블에서 location_id가 1800인 부서에 소속된 직원들을 삭제하시오
delete from copy_emp
where department_id = ( select department_id
from departments
where location_id = 1800);
'자바스프링웹공부(2024) > 마이에스큐엘' 카테고리의 다른 글
2024.09.02. 제약조건. alter. (0) | 2024.09.03 |
---|---|
2024.08.29. 트랜잭션, 트랜잭션 제어어(TCL) (3) | 2024.09.01 |
2024.08.13. 서브쿼리(subquery) - 단일행 서브쿼리, 다중행 서브쿼리 (0) | 2024.08.17 |
2024.08.13. 그룹함수, group by, having 절 (0) | 2024.08.13 |
2024.08.12. 단일행함수 - 2. - 변환함수, 제어흐름함수, 시스템정보함수. (0) | 2024.08.13 |