개발블로그

[SQL] 데이터 추가·수정·삭제 본문

STUDY/SQL

[SQL] 데이터 추가·수정·삭제

devmel 2026. 7. 29. 21:32
Contents 접기
 

INSERT

개념

테이블에 새로운 행을 추가할 때 사용하는 구문

 

문법

-- 기본 문법 
INSERT INTO 테이블명 (
    컬럼1,
    컬럼2,
    컬럼3
)
VALUES (
    값1,
    값2,
    값3
);

-- 여러 행 추가
INSERT INTO 테이블명 (
    컬럼1,
    컬럼2,
    컬럼3
)
VALUES
    (첫_번째_행의_값1, 첫_번째_행의_값2, 첫_번째_행의_값3),
    (두_번째_행의_값1, 두_번째_행의_값2, 두_번째_행의_값3),
    (세_번째_행의_값1, 세_번째_행의_값2, 세_번째_행의_값3);

-- 일부 컬럼만 입력 : 작성하지 않은 컬럼은 해당 컬럼의 설정에 따라 처리됨
/**
| 생략한 컬럼의 설정              | 처리        |
| ----------------------- | --------- |
| 기본값이 설정되어 있음            | 기본값 저장    |
| `NULL`을 허용함             | `NULL` 저장 |
| 자동으로 값이 생성됨             | 생성된 값 저장  |
| 기본값이 없고 `NULL`도 허용하지 않음 | 오류 발생 가능  |

*/
INSERT INTO 테이블명 (
    컬럼1,
    컬럼2
)
VALUES (
    값1,
    값2
);

-- NULL 입력
INSERT INTO 테이블명 (
    컬럼1,
    컬럼2,
    컬럼3
)
VALUES (
    값1,
    값2,
    NULL
);

-- 기본 값 입력
INSERT INTO 테이블명 (
    컬럼1,
    컬럼2,
    컬럼3
)
VALUES (
    값1,
    값2,
    DEFAULT
);

-- 컬럼 목록을 생략한 입력
-- => 전체 컬럼의 개수와 순서에 맞춰 값을 작성해야 함.
INSERT INTO 테이블명
VALUES (
    값1,
    값2,
    값3
);

-- 다른 테이블에서 조회한 결과를 대상 테이블에 추가
-- => 대상 컬럼과 조회 컬럼의 개수 및 순서가 서로 맞아야 함.
INSERT INTO 대상_테이블 (
    대상_컬럼1,
    대상_컬럼2,
    대상_컬럼3
)
SELECT
    원본_컬럼1,
    원본_컬럼2,
    원본_컬럼3
FROM 원본_테이블
WHERE 조건;

 


 

UPDATE

개념

테이블에 이미 저장된 행의 값을 수정할 때 사용하는 구문

 

문법

-- 기본 문법
UPDATE 테이블명
SET
    컬럼1 = 변경할_값1,
    컬럼2 = 변경할_값2
WHERE 수정할_행의_조건; -- WHERE이 없으면 모든 행이 수정 됨

-- 기존 값을 이용한 수정
UPDATE 테이블명
SET 숫자_컬럼 = 숫자_컬럼 + 증가값
WHERE 조건;

-- 기본값으로 수정
UPDATE 테이블명
SET 컬럼 = DEFAULT
WHERE 조건;

-- 조건에 따라 다른 값으로 수정
UPDATE 테이블명
SET 컬럼 = CASE
    WHEN 조건1 THEN 값1
    WHEN 조건2 THEN 값2
    ELSE 기본_값
END
WHERE 수정할_행의_조건;

-- 다른 컬럼값으로 수정
-- => 같은 행에 저장된 다른 컬럼의 값 복사
UPDATE 테이블명
SET 대상_컬럼 = 원본_컬럼
WHERE 조건;

 

 

주의할 점

  • 조건 범위 확인
    조건이 예상보다 넓으면 여러 행이 함께 수정될 수 있음.
    행을 명확하게 식별할 수 있는 조건을 사용 
  • 자료형 확인
    컬럼의 자료형과 맞지 않는 값을 지정하면 오류가 발생하거나 변환될 수 있음. 
  • 제약조건 확인
    제약조건 수정 시 확인할 내용
    NOT NULL NULL로 수정할 수 있는지
    UNIQUE 중복된 값이 생기는지
    PRIMARY KEY 식별값이 중복되는지
    FOREIGN KEY 연결 대상에 존재하는 값인지

 

DELETE

개념

테이블에 저장된 행을 삭제할 때 사용하는 구문

 

문법

-- 기본문법
DELETE FROM 테이블명
WHERE 삭제할_행의_조건;

 


 

데이터 변경 시 주의할 점

기본 작업 순서

-- 1. 변경 대상 확인
SELECT *
FROM 테이블명
WHERE 조건;

-- 2. 트랜잭션 시작
START TRANSACTION;

-- 3. 데이터 변경
UPDATE 테이블명
SET 컬럼 = 변경할_값
WHERE 조건;

-- 4. 변경 결과 확인
SELECT *
FROM 테이블명
WHERE 조건;

-- 5. 확정 또는 취소
COMMIT;
-- 또는 ROLLBACK;

 

'STUDY > SQL' 카테고리의 다른 글

[SQL] 집합연산  (0) 2026.07.30
[SQL] 테이블 생성과 변경  (0) 2026.07.30
[SQL] 서브쿼리  (0) 2026.07.29
[SQL] JOIN  (0) 2026.07.29
[SQL] SQL 기본 조회  (0) 2026.07.29