문제를 풀고 있는데요. 테이블작성은 했는데 트리거를 못만들겠어요.. 작성좀 부탁드릴게요.
sung 테이블 작성
CREATE TABLE sung
(
hak NUMBER(1) NOT NULL,
ban NUMBER(2) NOT NULL,
beonho NUMBER(2) NOT NULL,
name VARCHAR(20) NOT NULL,
com NUMBER(3) NOT NULL,
excel NUMBER(3) NOT NULL,
word NUMBER(3) NOT NULL,
CONSTRAINT pk_hak CHECK(hak >= 0 AND hak <= 3),
CONSTRAINT pk_ba CHECK(ban >= 0 AND hak <= 10),
CONSTRAINT pk_beonho CHECK(beonho >= 0 AND hak <= 50),
CONSTRAINT pk_name CHECK(com >= 0 AND hak <= 100),
CONSTRAINT pk_com CHECK(excel >= 0 AND hak <= 100),
CONSTRAINT pk_word CHECK(word >= 0 AND hak <= 100),
CONSTRAINT pk_sungid PRIMARY KEY(hak,ban,beonho)
);
CREATE TABLE sung_tot
(
hak NUMBER(1) NOT NULL,
ban NUMBER(2) NOT NULL,
com NUMBER(3),
excel NUMBER(3),
word NUMBER(3),
CONSTRAINT pk_sungtotid PRIMARY KEY(hak,ban)
);
============================================================================
뷰도 작성은 했는데 반별석차랑, 학년별 석차를 못구하겠어요..
뷰 작성
sung테이블을 이용하여 다음의 필드를 갖는 viewSung 라는 이름으로 view 를 작성한다.
출력할 필드
hak,ban,beonho,name,com,excel,word,tot,ave,banrank,hakrank
처리 조건
tot= com+excel+world
ave= (com+excel+word)/3
banrank : 반별석차
hakrank : 학년별 석차
===============================================================================
CREATE VIEW viewSUNG AS
SELECT hak, ban, beonho, name, com, excel, word,
SUM(com+excel+word)tot, AVG((com+excel+word)/3)ave
FROM sung
GROUP BY hak,ban,beonho,name,com,excel,word
=================================================================
트리거 작성
sung 테이블에 자료가 추가되거나 변경되는 경우 각 학년, 반별 각 과목의 합을 sung_tot테이블에 계산되도록
트리거를 작성한다.(추가,수정,삭제 트리거 작성)