IT's 우

[카카오 클라우드 스쿨 4주차 -3] DML 본문

카카오 클라우드 스쿨 2기/database

[카카오 클라우드 스쿨 4주차 -3] DML

디우 2022. 11. 23. 12:42
728x90

DML과 Transaction


1. DML(Data Manipolation Language)

  • 데이터를 테이블에 삽입, 삭제, 갱신하는 SQL
  • 개발자가 사용하는 언어

2. 데이터 삽입

1) 기본형식

 INSERT INTO 테이블이름( 칼럼 이름 나열) VALUES(값을 나열);

-> 칼럼 이름을 생략하면 모든 칼럼의 값을 테이블을 만들 때 사용했던 순서대로 대입해야 합니다.

# tCity 테이블에 데이터 삽입
# 칼럼 이름과 함께 삽입
INSERT INTO tCity(name, area, popu, metro, region) VALUES('목포',100, 22, 'n', '전라');
# 칼럼 이름을 생략하고 삽입
INSERT INTO tCity VALUES('마산',100, 22, 'n', '경상');

 

2) NULL 삽입

  • 기본값이 없는 경우에는 칼럼 이름 생략하고 삽입
  • 명시적으로 값을 NULL이라고 설정
  • 문자열의 경우 '' 형태로 입력해도 NULL로 간주하는 데이터베이스가 있습니다.
    • Maria DB에서는 NULL이 아니고 공백

 

3) 여러 개의 데이터를 한꺼번에 삽입

INSERT INTO 테이블이름( 칼럼 이름 나열) VALUES (값을 나열),(), ...;

 

4) 다른 테이블로 부터 조회해서 삽입

 INSERT INTO 테이블이름( 칼럼 이름 나열) SELECT 구문;

 

5) 조회한 결과를 가지고 테이블 생성

CREATE TABLE 테이블 이름 AS SELECT 구문;

 

6) 에러 무시하고 삽입

-> 스크립트를 이용할 때 중간에 에러가 발생해도 데이터를 삽입하고자 하는 경우에는 INSERT IGNORE INTO 구문을 이용하면 됩니다.

 


3. 데이터 삭제

1) 기본 형식

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

  • WHERE 절을 생략하면 테이블의 모든 데이터가 삭제 - TRUNCATE와 유사한데 다른 점은 DELETE는 트랜잭션을 설정하면 복구가 가능
  • INSERT는 성공을 하면 반드시 1개 이상의 행이 영향을 받지만 DELETE나 UPDATE는 0개 이상의 행이 영향을 받습니다. WHERE 절이 있기 때문에 조건에 맞는 데이터가 없으면 영향받은 행의 개수는 0입니다.
  • 외래키 옵션 없이 생성되면 삭제가 되지 않을 수도 있습니다.

4. 데이터 수정

UPDATE 테이블이름 SET 수정할칼럼= 값, ... [WHERE 조건];

  • WHERE 절을 생략하면 테이블의 모든 데이터가 수정됩니다.

 

 

 

728x90
반응형