티스토리 뷰
Insert 데이터 삽입
insert into 테이블명[(컬럼1, 컬럼2, 컬럼3, ...)]
values (값1, 값2, 값3, ...);
테이블 컬럼 순서를 아는 경우
desc departments;
insert into departments
values (10, 'Mysql', 20, 1500);
컬럼 순서를 모르는 경우
insert into departments(manager_id, location_id, department_id, department_name)
values (21, 100, 200, 'Java');
sales_rc 테이블 생성
create table sales_rc
( id int,
name varchar(10),
salary int,
commission_pct double(10,2) );
서브 쿼리를 이용해 다른 테이블로부터 데이터를 복사할 수 있다.
insert into sales_rc
select employee_id, last_name, salary, commission_pct
from employees
where job_id like '%REP%';
employees 테이블과 구조가 동일한 emp 테이블 생성
create table copy_emp
as select *
from employees
where 1=2;
-- 다른 테이블로부터 데이터 복사(2)
insert into copy_emp
select *
from employees;
Update 테이블 수정
where절 없이 update 작업 시 모든 행이 수정된다.
update 테이블명
set 컬럼명1 = 변경 값1,
컬럼명2 = 변경 값2, ...
[ where 조건문 ] ;
update employees
set department_id = 10
where employee_id = 103;
자동 저장 기능인 auto-commit 해제 후 작업하는 게 좋다.
commit; 으로 실행하고 rollback; 으로 작업을 취소할 수 있다. 체크포인트를 이용해 롤백 지점을 지정할 수 있음!
서브쿼리를 이용한 update 구문
(사원id가 103번인 사람의 직업id와 급여를 사원id가 102번인 사람과 같게 만듦)
update copy_emp
set job_id = ( select job_id
from employees
where employee_id = 102 ),
salary = ( select salary
from employees
where employee_id = 102 )
where employee_id = 103;
null값으로 update 하는 방법
(사원id가 105번인 사람의 커미션 퍼센트를 null로 만듦)
update employees
set commission_pct = null
where employee_id = 105;
Delete 데이터 삭제
where절 없이 delete 작업 시 모든 행이 삭제된다.
drop은 테이블을 삭제, delete는 내용(행)을 삭제한다.
delete from 테이블명
[ where 조건문 ] ;
delete from departments
where department_id = 100;
서브쿼리를 이용한 delete 구문
delete from copy_emp
where department_id = ( select department_id
from departments
where location_id = 1800);
'배운 것 기록 > DB' 카테고리의 다른 글
[Oracle] Oracle DBMS 접속 방법 (0) | 2022.06.23 |
---|---|
[MySQL] DDL(create, alter, drop, truncate) (0) | 2022.06.17 |
[MySQL] 서브쿼리 (0) | 2022.06.09 |
[MySQL] 단일행함수 (0) | 2022.06.03 |
[MySQL] select 구문 (0) | 2022.05.27 |
댓글