1. 데이터 삭제 - DELETE
- 조건에 맞는 데이터 삭제
DELETE FROM 테이블명 WHERE 조건식;
- 테이블의 모든 데이터 삭제
DELETE FROM 테이블명;
- 예제
-- CUSTOMERS테이블 생성
CREATE TABLE customers(
customer_id INT PRIMARY KEY,
customer_name VARCHAR(255) NOT NULL
);
-- 데이터 삽입
INSERT INTO customers (customer_id, customer_name) VALUES
(1, '고객1'),
(2, '고객2'),
(3, '고객3'),
(4, '고객4'),
(5, '고객5'),
(6, '고객6');
SELECT * FROM customers;
DELETE FROM customers;
SELECT * FROM customers;
DELETE FROM customers WHERE customer_id= 1;
DELETE FROM customers WHERE customer_name = '고객3';
DELETE FROM customers WHERE customer_name LIKE '고객%' AND customer_id < 5;
2. 참조 시 DELETE (ON DELETE)
- ON DELETE
- CASCADE : 참조 데이터 업데이트 시 상대방 데이터도 함께 삭제
- SET NULL : 참조 업데이트 시 상대방 테이블의 참조 컬럼을 NULL로 업데이트
- SET DEFAULT : 참조 데이터 없데이트 시 상대방 테이블의 참조 컬럼을 DEFAULT값으로 업데이트
- RESTRICT : 참조하고 있을 경우, 삭제 불가
- NO ACTION : RESTRICT와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택됨
INSERT INTO orders ( order_id, order_customer_id, order_total) VALUES
(101, 1, 100.00),
(102, 2, 50.00),
(103, 3, 75.00),
(104, 4, 175.00),
(105, 5, 275.00);
DESC orders;
DESC customers;
SELECT * FROM orders;
SELECT * FROM customers;
DELETE FROM customers WHERE customer_id = 4;
ALTER TABLE orders DROP FOREIGN KEY fk_order_customer;
ALTER TABLE orders
ADD CONSTRAINT fk_order_customer
FOREIGN KEY (order_customer_id) REFERENCES customers(customer_id)
ON DELETE RESTRICT;
'데이터베이스' 카테고리의 다른 글
10. 효율적 쿼리_뷰 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.19 |
---|---|
9. 효율적 쿼리_인덱스 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.19 |
7. 데이터 수정_UPDATE - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.19 |
6. 데이터 조회_세부적으로 검색하기 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.01.18 |
5. 데이터 조회_SELECT - 패스트캠퍼스 백엔드 부트캠프 3기 (2) | 2025.01.17 |