su-tudy 님의 블로그
SELECT, INSERT, UPDATE, DELETE 본문
𖤐 DML 기본 명령어 이해하기
SELECT, INSERT, UPDATE, DELETE는 DML의 핵심 4가지 명령어다. 데이터를 조회하고, 넣고, 수정하고, 삭제하는 가장 기본이 되는 문법이라 제대로 익혀두는 게 중요하다. 특히 UPDATE, DELETE는 잘못 쓰면 데이터를 통째로 날릴 수 있어서 주의가 필요하다.
𖤐 정리 노트
✧ SELECT - 데이터 조회
테이블에서 데이터를 조회할 때 사용한다.
-- 특정 컬럼만 조회
SELECT column1, column2
FROM table_name;
-- 모든 컬럼 조회
SELECT *
FROM table_name;
▸ DISTINCT - 중복 제거
-- 중복을 제거하고 고유한 값만 반환
SELECT DISTINCT column1
FROM table_name;
▸ AS - 별칭 지정
조회 결과에 컬럼명 대신 원하는 이름을 붙일 수 있다.
SELECT name AS 이름, age AS 나이
FROM users;
✧ INSERT - 데이터 삽입
테이블에 새 데이터를 추가할 때 사용한다.
-- 방법 1: 컬럼명과 값을 함께 지정 (특정 컬럼만 삽입 가능)
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
-- 방법 2: 컬럼명 생략 (모든 컬럼에 값을 순서대로 입력)
INSERT INTO table_name
VALUES (value1, value2, value3);
-- 방법 3: SET으로 컬럼에 직접 값 지정
INSERT INTO table_name
SET column1 = value1
, column2 = value2;
-- 방법 4: 여러 행을 한 번에 삽입
INSERT INTO table_name (column1, column2)
VALUES (value1, value2)
, (value3, value4)
, (value5, value6);
▸ INSERT INTO SELECT - 다른 테이블에서 복사
-- 다른 테이블의 데이터를 복사해서 삽입
INSERT INTO table2 (column1, column2)
SELECT column1, column2
FROM table1
WHERE condition;
✧ UPDATE - 데이터 수정
기존 데이터를 수정할 때 사용한다.
UPDATE table_name
SET column1 = value1
, column2 = value2
WHERE condition;
✧ DELETE - 데이터 삭제
기존 데이터를 삭제할 때 사용한다.
-- 조건에 맞는 행만 삭제
DELETE FROM table_name
WHERE condition;
-- 테이블의 모든 행 삭제
DELETE FROM table_name;
𖤐 체크포인트
🚨 주의 — WHERE 없이 UPDATE, DELETE 절대 주의
WHERE 절 빠뜨리면 조건 없이 전체 데이터에 적용된다. 되돌리기도 어렵기 때문에 UPDATE, DELETE 쓸 때는 항상 WHERE부터 생각해야 한다.UPDATE users SET age = 0; → 이렇게 쓰면 테이블의 모든 데이터가 수정됨DELETE FROM users; → 이렇게 쓰면 테이블의 모든 데이터가 삭제됨
🚨 주의 — 검증 습관
UPDATE, DELETE 실행 전에 같은 조건으로 SELECT를 먼저 날려서 어떤 데이터가 영향받는지 확인하는 게 좋다.SELECT * FROM users WHERE id = 5; → 먼저 SELECT로 대상 확인UPDATE users SET age = 25 WHERE id = 5; → 확인 후 UPDATE 실행
🚨 오류 — SELECT * 는 가급적 지양
SELECT *는 편하지만 불필요한 컬럼까지 조회해 성능과 가독성이 떨어지고, 컬럼 변경 시 예상치 못한 문제가 생길 수 있어 실무에서는 필요한 컬럼만 명시해서 조회하는 것이 좋다.
𖤐 오늘의 한 줄 요약
SELECT로 조회, INSERT로 삽입, UPDATE로 수정, DELETE로 삭제. UPDATE와 DELETE는 WHERE 없이 실행하면 전체 데이터에 적용되니 실행 전 SELECT로 먼저 확인해야 한다.
'DBMS > Part 2. DML' 카테고리의 다른 글
| JOIN (INNER, LEFT, RIGHT, OUTER) (0) | 2024.10.11 |
|---|---|
| GROUP BY와 HAVING (0) | 2024.09.24 |
| COUNT, SUM, AVG, MAX, MIN (0) | 2024.09.23 |
| ORDER BY와 LIMIT (0) | 2024.09.22 |
| WHERE와 연산자 (0) | 2024.09.20 |