데이터베이스 데이터 조작어(DML) - 데이터 삽입, 수정, 삭제

데이터베이스 데이터 조작어(DML)

데이터 삽입, 수정, 삭제


데이터 직접 삽입

테이블에 튜플을 입력하는 것입니다.

SELECT INTO 테이블명[(속성명1, 속성명2, ...)] VALUES (속성값1, 속성값2, ...);
대괄호[]는 생략가능

INTO 키워드: 튜플을 삽입할 테이블의 이름과 속성의 이름을 나열하고, 테이블명은 반드시 있어야 하지만 속성명은 생략이 가능합니다. 속성명이 생략 되었을 때에는 내가 생성해 놓은 속성의 순서대로 값이 삽입이 됩니다.

VALUES 키워드: 삽입할 속성의 값들을 나열합니다.

※ 속성 값은 나열한 속성명의 순서대로 입력, 1:1로 대응

INSERT INTO 고객(고객아이디, 고객이름, 나이) VALUES('hong', '홍길동', '30');
고객테이블에 고객아이디가 hong, 고객이름이 홍길동, 나이가 30인 새로운 고객의 정보를 삽입

- 모르는 속성 값은 속성명과 속성값을 넣지 않아도 되고, 모르는 속성값이 존재 할 경우에는 null값이 삽입이 됨

INSERT INTO 고객 VALUES('hong', '홍길동', 30);
테이블명 뒤에 속성명을 나열하지 않았을 경우에는 고객 테이블에 정의되어 있는 순서대로 1:1로 대응해서 삽입

- 모르는 속성값이 존재 할 경우에는 고객 테이블에 정의 되어 있는 순서대로 1:1로 대응해서 삽입해야하기 때문에 고객 테이블에 정의되어있는 순으로 반드시 NULL값을 입력

부속 질의문을 이용한 데이터 삽입

VALUES 키워드 대신 SELECT문을 이용해 다른 테이블에서 검색한 데이터를 삽입하는 것입니다.

INSERT INTO 롯데제품(제품명, 재고량, 단가)
SELECT 제품명, 재고량, 단가 FROM 제품 WHERE 제조업체 = '롯데';
제품 테이블에서 제조업체가 롯데인 업체의 제품명, 재고량, 단가를 검색하여 롯데제품 테이블에 삽입 

데이터 수정

튜플에 있는 값을 내가 원하는 값으로 수정하는 것입니다.

UPDATE 테이블명 SET 속성명1 = 속성값1, 속성명2 = 속성값2, ...[WHERE 조건];
대괄호[] 생략가능

SET 키워드: 속성 값을 어떻게 수정할 것인지를 지정

- WHERE절에 제시된 조건을 만족하는 투플에 대해서만 속성 값을 수정하고, WHERE절을 생략하면 테이블에 존재하는 모든 투플을 수정합니다.

UPDATE 고객 SET 이름 = '홍길동' WHERE 고객번호 = '001';
고객 테이블의 고객번호가 001인 고객의 이름을 홍길동으로 수정

UPDATE 주문 SET 수량 = 3
WHERE 주문고객 IN (SELECT 고객아이디 FROM 고객 WHERE 고객이름 = '홍길동');
주문 테이블의 주문 고객이 고객 테이블의 고객이름이 홍길동인 것만 수량을 3으로 수정

WHERE IN:  속성(컬럼)의 특정 값만 조회

WHERE NOT IN:  속성(컬럼)의 특정 값을 제외하고 조회

데이터 삭제

DELETE FROM 테이블명 [WHERE 조건];
대괄호[]는 생략가능

WHERE 절에 제시한 조건을 만족하는 투플만 삭제합니다. WHERE 절을 생략하면 테이블에 존재하는 모든 투플을 삭제해서 비어있는 테이블이 되므로 각별히 조심해야 합니다.

※ 테이블을 삭제하는 DROP TABLE과는 달리 DELETE FROM은 튜플만 삭제

DELETE FROM 고객 WHERE 이름 = '홍길동';
고객테이블에 있는 홍길동 삭제

DELETE FROM 주문
WHERE 주문고객 IN (SELECT 고객아이디 FROM 고객 WHERE 고객이름 ='홍길동';
주문 테이블의 주문고객이 고객테이블의 고객이름이 홍길동인 것만 주문한 내역을 삭제

댓글

이 블로그의 인기 게시물

[정보처리기사] OSI 7계층 정리

블로그스팟 상위노출 시작하기

데이터베이스 데이터 정의어(DDL), 자료형(데이터 타입)