728x90
반응형
INSERT INTO 목표테이블 (컬럼1, 컬럼2, ..., 컬럼N)
SELECT 컬럼1, 컬럼2, ..., 컬럼N
FROM 출처테이블
WHERE 조건;
위와 같은 패턴을 가지고 있는데요.
서로 다른 테이블에 INSERT 할 때
INSERT INTO new_users (id, name, email)
SELECT id, name, email
FROM users
WHERE active = 1;
users 테이블에서 활성 상태인 사용자들의 id, name, email 정보를 선택하여 new_users 테이블에 삽입되는 예시입니다.
INSERT INTO orders_analysis (order_id, order_date, customer_id, total_amount)
SELECT order_id, order_date, customer_id, total_amount
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-03-31';
또 위와 같이 특정 날짜를 조건으로 하여 데이터를 삽입 할 수 있는데 orders 테이블에서 지정된 기간 동안의 주문 데이터를 선택하여 orders_analysis 테이블에 삽입하도록 만든 예시입니다.
같은 테이블에 INSERT 할 때
INSERT INTO employees (employee_id, name, position, salary, department_id)
SELECT employee_id, name, position, salary, 20 -- 새로운 부서 ID로 설정
FROM employees
WHERE department_id = 10;
같은 테이블 내에서 특정 조건을 만족하는 데이터를 복사하는 경우도 있는데 이 처럼 employees 테이블에서 department_id가 10인 직원들의 정보를 같은 테이블 내에 새로운 부서로 복사(부서 ID 20)하는 쿼리로 만들 수 있습니다.
728x90
반응형
'MySQL(DB)' 카테고리의 다른 글
[바미] MySQL - 프로시저에 대해 알아봅시다. (0) | 2024.03.28 |
---|---|
[바미] MySQL - Upsert (0) | 2024.03.21 |
[바미] 트랜잭션 데드락(Transaction DeadLock) (0) | 2023.09.25 |
[바미] MySQL 트랜잭션과 락 - InnoDB 락, 이렇게 동작한다! (0) | 2023.09.25 |
MySQL 인덱스에 대해서 (0) | 2023.08.18 |