본문 바로가기
Computer Science/데이터베이스

[데이터베이스] ep4-2) SQL: DML

by 클레어몬트 2024. 6. 29.

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

 

 

① SELECT / FROM문: 테이블 내 데이터를 검색

SELECT [ALL | DISTINCT] 속성_리스트
FROM 테이블_리스트; -- (테이블 이름)

만약 테이블에서 검색하고 싶은 속성 및 테이블이 다수일 경우 콤마로 구분하여 나열

 

ALL: 결과 테이블에 데이터의 중복을 허용

DISTINCT: 결과 테이블에 데이터의 중복을 허용하지 않음

 

 

SELECT / FROM문 예제

고객 테이블

 

 

DISTINCT 예제

제품 테이블

 

 

ㅇWHERE 조건: SELECT문에 조건을 추가

SELECT [ALL | DISTINCT] 속성_리스트
FROM 테이블_리스트
[WHERE 조건];

 

비교 연산자와 논리 연산자를 이용한 검색 조건 제시 (비교 연산자를 이용하여 숫자, 문자, 날짜 값 비교 가능)

 

 

 

WHERE 조건 예제

주문 테이블

 

 

WHERE 조건의 LIKE 키워드: 검색 조건을 부분적으로만 알고 있는 경우에 문자열 조건으로 사용 (문자열 이용하는 조건에만 사용 가능)

LIKE 키워드와 함께 사용하는 기호

 

 

LIKE 키워드 예제

고객 테이블

 

 

 

집계 함수(Aggregate Function): SQL에서 특정 속성 값을 통계적으로 계산한 결과를 검색하기 위해 이용

SELECT문과 함께 자주 사용하는 다섯 가지 집계 함수

 

(주의사항)

- 값이 NULL인 속성 값은 제외하고 계산

- WHERE 조건에는 사용 불가

- SELECT 문이나 HAVING 조건에서만 사용 가능

 

 

집계함수 예제

제품 테이블

예제 1)

 

예제 2)

 

 

 

GROUP BY: 그룹을 나누는 기준이 되는 속성 지정 -> 그룹별로 검색

SELECT [ALL | DISTINCT] 속성_리스트
FROM 테이블_리스트
[WHERE 조건]
[GROUP BY 속성_리스트 [HAVING 조건]] -- 그룹을 나누는 기준이 되는 속성 지정
[ORDER BY 속성_리스트 [ASC | DESC]]; -- 출력되는 결과를 원하는 정렬 방식으로 볼 수 있음

 

HAVING 키워드를 추가하여 그룹에 대한 조건 추가 가능

 

GROUP BY 예제

제품 테이블

 

 

 

 

 

 

 

(중요하지만 여기서 다루지는 않는다)

조인검색: 여러 개의 테이블을 연결해서 데이터를 검색

부속 질의문(서브 질의문): SELECT문 안에 또 다른 SELECT문을 포함

 

 

 

 

 

 

 

 

② INSERT문: 테이블에 새로운 튜플을 삽입

2가지 방식이 있다

1. 테이블에 튜플을 직접 삽입(값을 부여)

INSERT
INTO 테이블_이름[(속성_리스트)] -- 튜플을 삽입할 테이블 이름과 속성 이름 나열
VALUES (속성값_리스트); -- 삽입할 속성 값들을 나열

INTO 키워드 : 함께 튜플을 삽입할 테이블 이름과 속성 이름 나열

(속성 리스트 생략 시 테이블을 정의할 때 지정한 속성 순서대로 값 삽입)

VALUES 키워드: 함께 삽입할 속성 값들을 나열

(INTO 절의 속성 이름, VALUES 절의 값은 순서대로 일대일 대응)

 

1번 방식 예제

*는 CSS에서와 같은 와일드카드

 

2. 부속 질의문을 이용해 삽입

INSERT
INTO 테이블_이름[(속성_리스트)]
SELECT문;

SELECT문을 이용해 다른 테이블에서 검색한 데이터를 튜플로 삽입

 

2번 방식 예제

한국제과에서 제조한 제품의 제품명, 재고량, 단가를 제품 테이블에서 검색하여 대한제품 테이블에 삽입

INSERT
INTO 대한제품(제품명, 재고량, 단가)
SELECT 제품명, 재고량, 단가
FROM 제품
WHERE 제조업체 = '한국제과';

 

 

 

 

 

 

 

 

③ UPDATE문: 테이블에 저장된 데이터(튜플의 특정 속성 값) 수정

UPDATE 테이블_이름
SET 속성_이름 = 값1, 속성_이름 = 값2, ...
[WHERE 조건];

속성 값 수정 방법은 SET 키워드 다음에 "속성 = 값" 형식으로 지정

+ WHERE절과 같이 사용 시 WHERE절에 제시된 조건을 만족하는 튜플의 속성 값만을 수정 가능

 

UPDATE문 예제1

제품 테이블

 

UPDATE문 예제 2

 

 

 

 

 

 

 

➃ DELETE문: 테이블의 데이터를 삭제

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

(WHERE 절을 이용하여 제시한 조건을 만족한 튜플만 삭제 가능)

 

 

DELETE문 예제 1

 

DELETE문 예제 2

 

 

 

 

 

 

 

 

 

 

출처 및 참고: 세종대학교 K-MOOC 데이터베이스 보안(김영갑)