개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] MySQL2023. 10. 23. 23:50[MySQL] USE university Quest02

/* student 테이블의 st_point(이수학점)을 업데이트 하시오. - 학점을 주는 조건은 at_repetition = 'n'이면 학점을 획득 (y면 학점 X) - 학점은 attend 테이블의 at_co_num가 어느 과목인지 확인 - 해당 과목의 학점(su_point)를 확인하여 - 해당 학생의 st_point에 update */ # 프로시저 작성 -- CALL update_stpoint(학번);한 번에 한 명씩 변경 -- CALL update_stpointall();모두 한 번에 변경 # CALL update_stpoint(학번); DROP procedure IF EXISTS update_stpoint; DELIMITER $$ CREATE PROCEDURE update_stpoint ( IN ..

개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] MySQL2023. 10. 23. 23:40[MySQL] USE shop Quest02

-- PROCEDURE /* 제품명을 입력하면 그 제품을 구매한 customer를 반환 '에어 나시' 라는 제품을 입력하면 그 제품을 구매한 손님 리스트를 반환 프로시저명 : select_buy 매개변수 : 제품명(in in_product_name) */ DROP PROCEDURE IF EXISTS select_buy; DELIMITER $$ CREATE PROCEDURE select_buy( IN in_product_name VARCHAR(40)) BEGIN SELECT customer FROM buy WHERE product_name = in_product_name; END $$ DELIMITER ; CALL select_buy("에어 나시"); /* 구매 금액이 10만원 이상인 손님 이름과 구매 가..

개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] MySQL2023. 10. 23. 23:30[MySQL] USE school Quest04

-- UPDATE TRIGGER 생성 /* attend 테이블에 값이 변경되면 co_degree의 값도 같이 변경되도록 트리거 작성 */ DELIMITER $$ CREATE TRIGGER update_attend AFTER UPDATE ON attend FOR EACH ROW BEGIN UPDATE course SET co_degree = ( CASE WHEN co_code = NEW.at_co_code THEN co_degree+1 WHEN co_code = OLD.at_co_code THEN co_degree-1 ELSE co_degree END); END $$ DELIMITER ; UPDATE attend SET at_co_code = '2020ipc002' WHERE at_num= 18; [MyS..

개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] MySQL2023. 10. 22. 04:19[MySQL] USE school Quest03

/* 1. course 테이블에 해당 코스의 수강인원을 집계하는 필드 생성 co_degree : 필드이름 */ ALTER TABLE course ADD co_degree INT DEFAULT 0; /* 2. co_degree 필드에 해당 코드를 듣고 있는 학생을 집계하여 업데이트*/ UPDATE course SET co_degree = ( SELECT COUNT(at_co_code) FROM attend GROUP BY at_co_code HAVING at_co_code = co_code); /* 3. attend에 수강신청을 하면 course의 co_degree가 자동으로 증가하는 트리거 생성 */ DROP TRIGGER IF EXISTS insert_attend; DELIMITER $$ CREATE ..

개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] MySQL2023. 10. 22. 04:15[MySQL] USE school Quest02

#1. 학번이 2020으로 시작하는 학생들의 학번, 이름 학과를 출력 SELECT std_num AS "학번", std_name AS "이름", std_major AS "학과" FROM student WHERE std_num LIKE "2020%"; #2. 프로그래밍 일반 과목을 듣는 학생 명단 출력 # 학번, 이름, 학과 SELECT std_num AS "학번", std_name AS "이름", std_major AS "학과" FROM attend JOIN student ON std_num = at_std_num JOIN course ON co_code = at_co_code WHERE co_name = "프로그래밍일반"; /* 3. 홍길동 교수가 강의하는 과목을 듣는 학생 명단 학번, 이름, 학과, ..

728x90
반응형
image