For this use case I would recommend using virtual column. You will save on space (only metadata are stored about the column) and grade will be always in sync (someone can disable trigger for a while and this could cause problems with data integrity using trigger based approach). DML on the table will be also faster.
create table t(
id number primary key,
firstterm number,
secondterm number,
grade char(1) generated always as (
case
when firstterm + secondterm >= 80 then 'A'
when firstterm + secondterm >= 65 then 'B'
when firstterm + secondterm >= 50 then 'C'
when firstterm + secondterm >= 40 then 'D'
when firstterm + secondterm >= 20 then 'E'
when firstterm + secondterm >= 0 then 'F'
else null
end
) virtual
)
sqlfiddle
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…