DML

tpids·2024년 6월 13일

DB

목록 보기
24/25

DML (Data Manipulation Language)

  • 데이터 조작어
  • 테이블에 원하는 데이터를 입력/수정/삭제하는 역할
  • INSERT : 테이블에 새로운 데이터를 입력
  • UPDATE : 테이블에 있는 기존 데이터를 새로운 내용으로 수정
  • DELETE : 테이블에 있는 기존 데이터를 삭제
  • SELECT : 테이블에 있는 데이터를 조회

실습문제(1~12)

-- 실습문제 (1~12)
-- 1. 오늘 새로운 직원이 입사하였습니다. 아래 데이터를 확인하여 직원 테이블에 정보를 입력
SELECT *
FROM 직원;

INSERT INTO 직원(직원ID,패스워드,이름,나이,입사일시,주민등록번호,연봉,부서ID) 
VALUES ('A1000', 'hello1000', '신캐릭', 29, SYSDATE, '950120-1566221', 3500, 'D006');
COMMIT;

-- 2. 위에서 입력한 'A1000' 직원의 정보를 수정해주세요.
UPDATE 직원 SET 성별='남', 부서ID='D005', 패스워드='hello1000!!!'
WHERE 직원ID='A1000';
COMMIT;

-- 3. 위에서 입력한 'A1000' 직원이 오늘 퇴사를 하였습니다. 해당 직원정보를 직원테이블에서 삭제
DELETE FROM 직원 WHERE 직원ID='A1000';
COMMIT;

-- 4. 퇴사한 A1000 대신에 새로운 직원이 입사를 하였습니다.
-- 이번에는 직원정보와 함께 연락처 정보와 주소 정보가 함께 들어왔습니다.
-- 반드시 (1)직원테이블 -> (2)직원연락처테이블 -> (3)직원주소테이블 순서로 데이터를 INSERT 해주세요
INSERT INTO 직원(직원ID, 패스워드, 이름, 나이, 입사일시, 주민등록번호, 연봉, 부서ID)
VALUES ('A2000', 'hello222', '이홍시', 40, SYSDATE, '830220-1566221', 5600, 'D006');
INSERT INTO 직원연락처(직원ID, 구분코드, 연락처) VALUES('A2000', '휴대폰', '010-5959-1111');
INSERT INTO 직원주소(직원ID, 구분코드, 주소) VALUES('A2000', '집전화', '운천로 123');
COMMIT;

-- 5. 성적표 테이블의 모든 데이터 삭제
DELETE FROM 성적표;
COMMIT;
-- TRUNCATE

-- 6. 직원ID가 'A2000'인 직원의 집전화 번호는 '062-123-1111' 입니다. 이 데이터를 직원연락처 테이블에 입력
INSERT INTO 직원연락처(직원ID, 구분코드, 연락처) VALUES('A2000', '집', '062-123-1111');
COMMIT;

-- 7. 직원 'A2000' 이 가지고 있는 휴대폰 연락처가 변경되었습니다 수정해주세요
UPDATE 직원연락처 SET 연락처='010-3333-5959'
WHERE 직원ID='A2000' AND 구분코드='휴대폰';
COMMIT;

-- 8. 직원주소 테이블에서 직원ID가 'A0011', 'A0012', 'A0013', 'A2000'인 대상을 삭제해주세요
DELETE FROM 직원주소 WHERE 직원ID IN ('A0011', 'A0012', 'A0013', 'A2000');
COMMIT;

-- 9. 직원연락처 테이블에서 직원ID가 'A0011', 'A0012', 'A0013', 'A2000'인 대상을 삭제해주세요
DELETE FROM 직원연락처 WHERE 직원ID IN ('A0011', 'A0012', 'A0013', 'A2000');
COMMIT;

-- 10. 직원 테이블에서 직원ID가 'A0011', 'A0012', 'A0013', 'A2000'인 대상을 삭제해주세요
DELETE FROM 직원 WHERE 직원ID IN ('A0011', 'A0012', 'A0013', 'A2000');
COMMIT;

-- 11. 수강생 S0001이 최근 시험에서 국어, 수학, 영어 점수를 각각 90, 85, 70점 맞았습니다, 테이블에 INSERT
INSERT INTO 성적표(학생ID, 과목, 성적) VALUES ('S0001', '국어', '90');
INSERT INTO 성적표(학생ID, 과목, 성적) VALUES ('S0001', '수학', '80');
INSERT INTO 성적표(학생ID, 과목, 성적) VALUES ('S0001', '영어', '70');
COMMIT;

-- 12. 수강생 S0001이 영어 성적에 문제가 생겨 처리 결과 80점으로 점수가 상승했습니다 이를 변경
UPDATE 성적표 SET 성적='80' WHERE 학생ID='S0001' AND 과목='영어';
COMMIT;

주의 ) 각 문제를 잘 풀었다면, COMMIT; 명령어 실행
그래야 테이블에 수정된 내용이 제대로 반영됨

만약 내용 수정에 실수하였다면 ROLLBACK; 명령어 실행
사용하면 최근에 사용한 COMMIT 명령어 이전으로 복구 가능

profile
개발자 공부중

0개의 댓글