-> 블로그 이전

[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(삽입 / 수정 / 삭제)

2021. 10. 16. 20:20Major`/DB

SQL 기능에 따른 분류

- 데이터 정의어(DDL : Data Definition Language)

  • 테이블 생성, 변경, 제거
  • CREATE, ALTER, DROP 문

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

  • 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제
  • SELECT, INSERT, UPDATE, DELETE 문

- 데이터 제어어(DCL : Data Control Language)

  • 사용자 접근 제어, 백업과 회복, 동시성 제어 등
  • GRANT, REVOKE, COMMIT, ROLLBACK 문

DDL : 생성

CREATE TABLE 고객(
    고객번호 NUMBER PRIMARY KEY,
    고객이름 VARCHAR2(10) NOT NULL,
    나이 NUMBER NOT NULL,
    등급 VARCHAR2(10) NOT NULL,
    직업 VARCHAR2(20) DEFAULT '무직',
    적립금 NUMBER
);

DML : 삽입 / 수정 / 삭제

1. INSERT 문 : 데이터 삽입

  • 테이블에 새로운 투플을 삽입
  • INSERT 문이 실패하면 투플 삽입이 취소

- 기본 문법

INSERT INTO 테이블이름 [(속성 이름)] 
VALUES (값리스트);
  • DEFAULT 제약조건이 있는 속성이 있을 경우, 그 속성을 제외한 나머지 속성을 속성 이름에 모두 적어줘야 한다
INSERT INTO 고객 VALUES (1,'Alex',38,'Gold','회사원',0);
INSERT INTO 고객 VALUES (2,'Aimee',23,'Silver','학생',500);
INSERT INTO 고객 VALUES (3,'Ali',33,'Platinum','사업가',2500);
INSERT INTO 고객 VALUES (4,'Pacho',49,'Diamond','기업 회장',24000);
INSERT INTO 고객 VALUES (5,'Brand',18,'Bronze','학생',240);
INSERT INTO 고객 VALUES (6,'Chari',29,'Platinum','트레이너',1800);
INSERT INTO 고객(고객번호, 고객이름, 나이, 등급, 적립금) VALUES (7,'Emilee',35,'Silver',1400);

 

2. UPDATE 문 : 데이터 수정

  • 특정 속성값을 수정하는 명령

- 기본 문법

UPDATE 테이블이름 
SET 속성명1 = 값1 [, 속성명2 = 값2, ...] 
[WHERE 조건문];
  • WHERE 절은 생략할 수 있지만, 생략하면 모든 행을 일괄적으로 갱신할 수 있음
SELECT * FROM 고객 WHERE 고객번호=7;

UPDATE 고객 SET 직업='사업가' WHERE 고객번호=7;

SELECT * FROM 고객 WHERE 고객번호=7;

 

3. DELETE 문 : 데이터 삭제

  • 테이블에 있는 기존 투플을 삭제하는 명령

- 기본 문법

DELETE [FROM] 테이블이름
[WHERE 조건문];
  • WHERE절이 없는 경우, 모든 행이 삭제된다
  • WHERE 절을 만족하지 않으면 삭제는 발생하지 않고, 만족할 경우 하나 이상의 행이 삭제
  • DELETE 문은 행 단위로 적용되며, 행의 일부만 삭제하는 것은 불가능하다
DELETE FROM 고객
WHERE 고객번호=7;