본문 바로가기
MySQL

[SQL] DML - 데이터 삽입/변경/삭제 (INSERT, UPDATE, DELETE)

by 스응 2023. 3. 6.
728x90
728x90

DML (데이터 조작어, Data Manipulation Language)

  - SELECT, INSERT, UPDATE, DELETE

 

데이터 삽입 : INSERT 문

  - 포지셔널 : 컬럼명과 삽입할 값의 순서를 동일하게 할 것

  - 컬럼명과 값은 일대일 대응해야 함 → 컬럼 수보다 값을 적게 설정하면 오류

 

#  기본 형식

INSERT INTO 테이블명(컬럼명1, 컬럼명2, ..., 컬럼명n)
VALUES (값1, 값2, ..., 값n);  -- VALUE도 무관

 

  - 제약조건이 NOT NULL이 아니라면, 해당 컬럼을 제외하고 작성 가능

 

  - 값 부분에 DEFAULT를 입력하면 해당 컬럼에 저장된 DEFAULT 값으로 입력됨

  - DEFAULT가 설정되어 있는 컬럼은 선언 시 생략하면 자동으로 DEFAULT 값이 입력됨

 

#  모든 컬럼에 값을 삽입할 경우 컬럼 선언 생략 가능

INSERT INTO 테이블명 
VALUES (값1, 값2, ...);

 

#  한 번에 여러 레코드 추가 (복수 행 쿼리)

INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...)
VALUES
    (값1, 값2, ...), -- 레코드1
    (값1, 값2, ...), -- 레코드2 (콤마로 연결)
    ... ;

 

  - 하나 이상의 레코드에 오류가 발생한다면, 모든 레코드가 추가되지 않음

      ex) 기본키 중복 등의 오류

 

 


데이터 변경 : UPDATE 문

UPDATE 테이블명 
SET 컬럼명1 = 값1, 컬럼명2 = 값2, ... 
[WHERE 조건];

 

  - 조건절을 입력하지 않으면 모든 데이터가 변경됨

 

 


데이터 삭제 : DELETE 문

DELETE FROM 테이블명 
[WHERE 조건];

 

  - 조건절을 입력하지 않으면 모든 데이터가 삭제됨

  - DROP 문과 달리, 테이블의 구조는 남아 있음

  - 데이터를 삭제하고 나면 복구가 어려우므로, 실행 전 데이터를 백업하거나 테스트용 데이터 사용하기

 

320x100
반응형

댓글