Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 매직메서드
- 데이터베이스
- Agent Loop
- 객체복제
- SQL기초
- docker network
- Laravel
- 소프트웨어설계
- dhgrp
- Tool Calling
- 라라벨
- linux 권한
- SQL
- ai 에이전트
- MySQL
- 인덱스
- PHP
- PHP객체지향
- 어댑터패턴
- ai agent
- SQL문법
- MCP
- 데코레이터패턴
- docker
- OOP
- 객체지향
- 디자인패턴
- mcp client
- mcp server
- LLM
Archives
- Today
- Total
개발블로그
[SQL] 데이터 추가·수정·삭제 본문
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 |