연습문제 sql은 모두 제가 직접 작성한 것이므로 오타, 오답이 존재할 수 있습니다.
궁금하신 점이 추가로 있을 시에는 문의하시면 최대한 답변드리겠습니다.
1. E학번 테이블의 managerid 칼럼을 삭제하여라.
[답]
ALTER TABLE e
DROP COLUMN managerid;
2. E학번 테이블과 D학번 테이블에 데이터를 추가하여라.
1) D학번 테이블에 NO는 10이고 NAME은 Finance인 행을 추가하여라.
[답]
insert into d(no, name)
values(10, 'Finance');
+) 데이터를 확인하여라.
[답]
select *
from d;
2) E학번 테이블에 두 개의 행을 추가하여라. 첫 번째 사원은 DEPTID가 10인 Donna Smith(LNAME, FNAME)이고 ID는 200이다. 두 번째 사원은 DEPTID가 54인 Albert Jones이고 ID는 201이다. 결과와 그 결과의 이유를 설명하여라.
[답]
DEPTID가 10인 Donna Smith(LNAME, FNAME) 첫 번째 사원 추가
insert into e
values(200, 'Donna', 'Smith', 10);
데이터 확인
select *
from e;
insert into e
values(201, 'Albert', 'Jones', 54);
e 테이블의 deptid 칼럼은 d 테이블의 no 칼럼을 참조하는데,
d 테이블의 no 칼럼에 54 데이터가 없기 때문에 e 테이블의 deptid 칼럼에 54를 추가할 수 없다.
3) NO가 10, NAME이 Marketing인 데이터를 D학번 테이블에 추가하여라. 결과와 그 결과의 이유를 설명하여라.
[답]
insert into d(no, name)
values(10, 'Marketing');
d 테이블의 no 칼럼은 pk로 설정되어 있는데,
이미 존재하는 10 데이터를 no 칼럼에 삽입하면 중복되므로 에러가 된다.
4) 치환매개변수를 이용하여 D학번 테이블에 Marketing인 데이터를 D학번 테이블에 추가하여라. 결과와 그 결과의 이유를 설명하여라.
[답]
insert into d(no, name)
values(&no, '&name');
37
Marketing
/
54
Sales
/
75
Personnel
select *
from d;
5) Albert Jones의 DEPTID는 54이고 ID는 201, Harry Chin은 각각 75와 202, Rey Guiliani는 37과 203인 행을 E학번 테이블에 추가하여라.
[답]
insert into e
values(&id, '&lname', '&fname', '&deptid');
201
Albert
Jones
54
/
202
Harry
Chin
75
/
203
Rey
Guiliani
37
select *
from e;
6) 추가한 데이터가 영구적으로 반영되도록 하여라.
[답]
commit;
3. E학번 테이블과 D학번 테이블의 데이터를 변경하고 삭제하여라.
1) D학번 테이블의 Personnel Name을 Human Resources로 변경하여라.
[답]
D학번 테이블의 Personnel Name을 Human Resources로 변경
update d
set name = 'Human Resources'
where name = 'Personnel';
+) 테이블의 데이터를 확인
[답]
select *
from d;
2) E학번 테이블의 202번 LNAME을 Korsgaard로 변경하여라.
[답]
update e
set lname = 'Korsgaard'
where id = 202;
+) 테이블의 데이터를 확인
[답]
select *
from d;
3) D학번 테이블에서 NO가 54인 데이터를 삭제하여라. 결과와 그 결과의 이유를 설명하여라.
[답]
delete from d
where no = 54;
D 테이블의 NO 칼럼 데이터 54는 E 칼럼의 deptid 데이터 54가 참조하고 있으므로(자식이 있으므로) 삭제할 수 없다.
4) E학번 테이블에서 Albert Jones를 삭제하여라.
[답]
delete from e
where lname = 'Albert' and fname = 'Jones';
+) 테이블의 데이터를 확인
[답]
select *
from e;
5) D학번 테이블에서 NO가 54인 데이터를 다시 삭제하여라. 결과와 그 결과의 이유를 설명하여라.
[답]
delete from d
where no = 54;
D 테이블의 NO 칼럼 데이터 54는 E 칼럼의 deptid 칼럼이 참조하고 있는데 54 데이터가(자식이)
없기 때문에 삭제가 가능하다.
+) 테이블의 데이터를 확인
[답]
select *
from d;
6) 변경한 데이터가 영구적으로 반영되도록 하여라.
[답]
commit;
궁금한 점이 있을 시 덧글 주시면 최대한 답글 드리겠습니다.
'연습 문제' 카테고리의 다른 글
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.308 (0) | 2023.01.04 |
---|---|
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.298 (0) | 2023.01.04 |
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.208 (0) | 2023.01.03 |
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.198 (0) | 2023.01.03 |
예제 따라가며 쉽게 배우는 오라클 연습 문제 p.189 ~ 190 (0) | 2023.01.03 |
댓글