정보처리기사 - SQL 응용 #120

2023. 8. 19. 12:42자격증/정보처리기사

120. SQL - DML

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

데이터베이스 사용자가 저장된 데이터를 실질적으로 관리하는데 사용되는 언어
  • DML은 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공
  • DML의 유형
명령문 기능
SELECT 테이블에서 튜플을 검색
INSERT 테이블에 새로운 튜플을 삽입
DELETE 테이블에서 튜플을 삭제
UPDATE 테이블에서 튜플의 내용을 갱신

120.2 삽입문(INSERT INTO~)

기본 테이블에 새로운 튜플을 삽입할 때 사용
  • 일반 형식
INSERT INTO 테이블명([속성명1, 속성명2, ···])
VALUES (데이터1, 데이터2, ···);
  • 대응하는 속성과 데이터의 개수와 데이터 유형이 일치해야 함
  • 기본 테이블의 모든 속성을 사용할 때는 속성명을 생략할 수 있음
  • SELECT문을 사용하여 다른 테이블의 검색 결과를 삽입할 수 있음

120.2.1 예제 1

  • <사원> 테이블
이름 부서 생일 주소 기본급
홍길동 기획 04/05/61 망원동 120
임꺽정 인터넷 01/09/69 성산동 80
황진이 편집 07/21/75 연희동 100
김선달 편집 10/22/73 망원동 90
성춘향 기획 02/20/64 망원동 100
장길산 편집 03/11/67 상암동 120
일지매 기획 04/29/78 합정동 110
강호동 인터넷 12/11/80   90
  • <사원> 테이블에 (이름-홍승현, 부서-인터넷)을 삽입하라
INSERT INTO 사원(이름, 부서) VALUES('홍승현', '인터넷');
  • <사원> 테이블 상태
이름 부서 생일 주소 기본급
홍길동 기획 04/05/61 망원동 120
임꺽정 인터넷 01/09/69 성산동 80
황진이 편집 07/21/75 연희동 100
김선달 편집 10/22/73 망원동 90
성춘향 기획 02/20/64 망원동 100
장길산 편집 03/11/67 상암동 120
일지매 기획 04/29/78 합정동 110
강호동 인터넷 12/11/80   90
홍승현 인터넷      

120.2.2 예제 2

  • <사원> 테이블에 (장보고, 기획, 05/03/73, 홍제동, 90)을 삽입하라
INSERT INTO 사원 VALUES ('장보고', '기획', #05/03/73#, '홍제동', 90);
  • 날짜 데이터는 숫자로 취급하지만 ' '또는 # #으로 묶음
  • <사원> 테이블 상태
이름 부서 생일 주소 기본급
홍길동 기획 04/05/61 망원동 120
임꺽정 인터넷 01/09/69 성산동 80
황진이 편집 07/21/75 연희동 100
김선달 편집 10/22/73 망원동 90
성춘향 기획 02/20/64 망원동 100
장길산 편집 03/11/67 상암동 120
일지매 기획 04/29/78 합정동 110
강호동 인터넷 12/11/80   90
홍승현 인터넷      
장보고 기획 05/03/73 홍제동 90

120.2.3 예제 3

  • <사원> 테이블에 있는 편집부의 모든 튜플을 편집부원(이름, 생일, 주소, 기본급) 테이블에 삽입하라
INSERT INTO 편집부원(이름, 생일, 주소, 기본급)
SELECT 이름, 생일, 주소, 기본급
FROM 사원
WHERE 부서='편집';
  • <사원> 테이블 상태
이름 생일 주소 기본급

120.3 삭제문(DELETE FROM~)

기본 테이블에 있는 튜플들 중에서 특정 튜플(행)을 삭제할 때 사용
  • 일반 형식
DELETE FROM 테이블명 [WHERE 조건];
  • 모든 레코드를 삭제할 때는 WHERE절을 생략
  • 모든 레코드를 삭제하더라도 테이블 구조는 남아 있기 때문에 디스크에서 테이블을 완전히 제거하는 DROP과는 다름

120.3.1 예제 1

  • <사원> 테이블에서 '임꺽정'에 대한 튜플을 삭제하라
DELETE FROM 사원 WHERE='임꺽정';

120.3.2 예제 2

  • <사원> 테이블에서 '인터넷' 부서에 대한 모든 튜플을 삭제하라
DELETE FROM 사원 FROM 부서='인터넷';

120.3.3 예제 3

  • <사원> 테이블의 모든 레코드를 삭제하라
DELETE FROM 사원;

120.4 갱신문(UPDATE~ SET~)

기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 변경할 때 사용
  • 일반 형식
UPDATE 테이블명 SET 속성명 = 데이터[, 속성명 = 데이터, ···]
[WHERE 조건];
  • UPDATE ~ SET ~ WHERE

120.4.1 예제 1

  • <사원> 테이블에서 '홍길동'의 '주소'를 '수색동'으로 수정하라
UPDAET 사원 SET 주소='수색동' WHERE 이름='홍길동';

120.4.2 예제 2

  • <사원> 테이블에서 '황진이'의 '부서'를 '기획부'로 변경하고 '기본급'을 5만원 인상시켜라
UPDATE 사원 SET 부서='기획', 기본급=기본급+5 WHERE 이름='황진이'