/* 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
#1. at_mid, at_final, at_attend, at_hw 값 업데이트 (40, 40, 10, 10) UPDATE attend SET at_mid = 39, at_final = 39, at_attend = 2, at_hw = 9 WHERE at_num in (8, 18, 26); UPDATE attend SET at_mid = 16, at_final = 27, at_attend = 9, at_hw = 10 WHERE at_num in (7, 17, 27); UPDATE attend SET at_mid = 35, at_final = 35, at_attend = 9, at_hw = 9 WHERE at_num in (22, 23, 24); UPDATE attend SET at_mid = 25, at..