1. 수강생을 관리하는 MANAGER 테이블을 만들어보세요.
- 컬럼은 총 id, name, student_code 입니다.
- id는 bigint 타입이며 PK입니다.
- name은 최소 2자 이상, varchar 타입, not null 입니다.
- student_code는 STUDENT 테이블을 참조하는 FK이며 not null 입니다.
- FK는 CONSTRAINT 이름을 ‘manager_fk_student_code’ 로 지정해야합니다. </aside>
-- 1
create table MANAGER
(
id bigint not null auto_increment,
name varchar(10) not null,
student_code varchar(100) not null,
primary key (id)
);
-- 1 외래키 추가
ALTER TABLE MANAGER ADD CONSTRAINT
manager_fk_student_code FOREIGN KEY(student_code)
REFERENCES STUDENT(student_code);
2. ALTER, MODIFY를 이용하여 MANAGER 테이블의 id 컬럼에 AUTO_INCREMENT 기능을 부여하세요.
-- 2 AUTO_INCREMENT
ALTER TABLE MANAGER MODIFY COLUMN id bigint auto_increment;
3.
INSERT를 이용하여 수강생 s1, s2, s3, s4, s5를 관리하는 managerA와 s6, s7, s8, s9를 관리하는 managerB를 추가하세요.
- AUTO_INCREMENT 기능을 활용하세요 </aside>
-- 3
INSERT INTO boarddb.manager (name, student_code) VALUES('managerA', 's1');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerA', 's2');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerA', 's3');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerA', 's4');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerA', 's5');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerB', 's6');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerB', 's7');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerB', 's8');
INSERT INTO boarddb.manager (name, student_code) VALUES('managerB', 's9');
4. JOIN을 사용하여 managerA가 관리하는 수강생들의 이름과 시험 주차 별 성적을 가져오세요.
-- 4
select s.name, e.exam_seq, avg(e.score) from manager m
join student s on m.student_code = s.student_code
join exam e on e.student_code = s.student_code
group by s.name, e.exam_seq ;
5.
STUDENT 테이블에서 s1 수강생을 삭제했을 때 EXAM에 있는 s1수강생의 시험성적과 MANAGER의 managerA가 관리하는 수강생 목록에 자동으로 삭제될 수 있도록 하세요.
- ALTER, DROP, MODIFY, CASCADE 를 사용하여 EXAM, MANAGER 테이블을 수정합니다. </aside>
-- 5
delete from student;
delete from manager ;
delete from exam;
ALTER TABLE manager DROP FOREIGN KEY manager_fk_student_code;
ALTER TABLE manager
ADD CONSTRAINT manager_fk_student_code FOREIGN KEY (student_code)
REFERENCES student(student_code) ON DELETE CASCADE;
ALTER TABLE exam
ADD CONSTRAINT exam_fk_student_code FOREIGN KEY (student_code)
REFERENCES student(student_code) ON DELETE CASCADE;
delete from student where student_code = 's1';
select * from manager m where student_code = 's1';
select * from exam e where student_code ='s1';
'Study > 개발일지' 카테고리의 다른 글
[백엔드온라인TIL] java 학습 17일차 (0) | 2023.06.16 |
---|---|
[백엔드온라인TIL] java 학습 16일차 (0) | 2023.06.15 |
[백엔드온라인TIL] java 학습 16일차 (0) | 2023.06.14 |
[백엔드온라인TIL] java 학습 15일차 (0) | 2023.06.13 |
[백엔드온라인TIL] java 학습 14일차 (0) | 2023.06.12 |