-- 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..
/* 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 ..
#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. 홍길동 교수가 강의하는 과목을 듣는 학생 명단 학번, 이름, 학과, ..
#TIRGGER 예제 -- 전체 product 테이블 값을 amount = 50 / sale_amount = 0 UPDATE product SET amount = 50, sale_amount = 0; /* 홍길동이 에어나시 3개를 구매 에어나시의 재고량 -3, 판매랑 +3이 되게 트리거 작성 = buy 테이블에 값이 생성(INSERT)되면 product 테이블에 amount(재고량), sale_amount(판매랑)이 변동되는 트리거 생성*/ DROP TRIGGER IF EXISTS insert_buy; DELIMITER $$ CREATE TRIGGER insert_buy AFTER INSERT ON buy FOR EACH ROW BEGIN DECLARE _amount INT DEFAULT 0; SET _..
-- VIEW 생성 /* 컴퓨터공학 뷰 생성 학번, 이름, 학과 */ CREATE OR REPLACE VIEW computer_view AS SELECT std_num, std_name, std_major FROM student WHERE std_major LIKE "컴퓨터공학%"; /* A학점인 친구들 뷰 생성 학번, 이름, 학점 */ CREATE VIEW A_score_view AS SELECT std_num, std_name, at_score FROM student JOIN attend ON at_std_num = std_num WHERE at_score = "A"; [MySQL] USE university 02 끝! (다음 게시물 예고편) [MySQL] USE shop 02