問題1~4では試験コードが'T00001'のデータしか用意されていません。
そのため、試験コードの条件指定がなくても正解できるようになっています。

【問題1】固定値で更新

UPDATE subjects
SET subject_name = '数学'
WHERE subject_name = '算数'

【問題2】値を参照して更新

SQLiteにおける四則演算では式の中に小数が存在する場合、計算結果も小数になります。
今回はCAST(X AS INT)で計算結果をINT型(整数型)に変換し、小数切捨を行っています。

UPDATE scores
SET score = CAST(score / 0.9 AS INT)
WHERE subject_code = 'S00001'

【問題3】テーブル結合して更新

UPDATE文ではFROM句を利用することで「別テーブルの内容で検索する」「別テーブルの値で更新する」といった処理を行うことができます。

UPDATE scores AS sc
SET score = CASE WHEN score > 95 THEN 100 ELSE score + 5 END
FROM students AS st
WHERE sc.student_code = st.student_code
    AND student_name IN ('佐藤 幸平', '山田 康介')
student_codeを結合条件として、scoresテーブルとstudentsテーブルを結合しています。
今回は更新対象のテーブルと結合しているため、結合条件をWHERE句に記述しています。
FROM句の中ではJOINを利用して、さらに他のテーブルと結合することも可能です。


【問題4】

FROM句では副問合せの結果と結合することもできます。

UPDATE total_scores AS ts
SET total_score = sub.sum
FROM (
    SELECT student_code, SUM(score) AS sum
    FROM scores
    GROUP BY student_code
) AS sub
WHERE ts.student_code = sub.student_code
FROM句内の副問合せでは各学生の合計点を集計しています。
student_codeを条件として副問合せの結果とtotal_scoresテーブルを結合しています。
結合条件はWHERE句に記載しています。

良くない例

UPDATE total_scores AS ts
SET total_score = (
    SELECT SUM(score)
    FROM scores AS s
    WHERE ts.student_code = s.student_code
)

SET句で相関副問合せの結果を直接代入することも可能です。
しかし、これではクエリのパフォーマンスが著しく悪化してしまうため、本問題では良い書き方とはいえません。