固定値で更新
配点 : 10点難易度 : 1
制限実行時間 : 1000ms制限メモリ使用量 : 128 MB
SQLiteの注意点

TOPSIC SQLでは、SQLの実行環境にSQLiteを使用しています。SQLite以外のRDBMSの文法を使用することはできません。
問題を解く際に注意すべきSQLiteの制約について、以下に記載してありますのでご確認下さい。

  1. NUMERIC、INTEGER、REALは、自身のクラスへの変換が推奨されていますが、変換できなかった場合でも、そのまま格納されます。
  2. 新しくデータを追加した場合、既に格納されているデータの中で ROWID の値が最大のものを探し、それに1を加えた値が新しく追加されるデータの ROWID の値として保存されます。
  3. 外部結合は、左外部結合を行う LEFT OUTER JOIN 句のみ使用できます。
    ※2022年12月以降、LEFT / RIGHT / FULL OUTER JOIN が使用可能となりました。
  4. 指定した日付と時刻のタイムゾーンはUTCとして扱われます。
  5. 日付関数や文字列関数については、SQLiteで固有の関数があります。
  6. テーブル項目の論理名が「◯◯日」となっている場合は、日付項目の時分秒は設定されていません。論理名が「◯◯日時」となっている場合は、日付項目の時分秒まで設定されています。
    • 「受注日」の場合は「2021-01-01」
    • 「受注日時」の場合は「2021-01-01 15:15:15」

その他のSQLiteの制約については、SQLiteの公式ドキュメントをご確認ください。
また、ER図の読み方やSQLiteの関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

学生を対象としたとある試験(試験コード: 'T00001')を実施しました。
データベースには試験の科目情報や学生の受験結果などのデータが保存される構成になっています。

※本試験は今回が初開催であり、試験コードが'T00001'のデータのみとなっています。


※左が物理名、右が論理名です。

まずは簡単なUPDATE文を書いてみましょう。

科目テーブルに科目名が'算数'となっているデータがあります。
このデータの科目名を'数学'に更新してください。

※ただし、科目名は一意であるものとします。
また、科目コードはデータパターンによって異なる場合があります。

ヒント UPDATE文の基本的な書式は以下のようになります。

UPDATE テーブル名
SET カラム名1 = 値1, カラム名2 = 値2, ...
WHERE 条件

ヒント 続けてSELECT文を記述すると、コードテストで更新結果を確認できます。

UPDATE テーブル名
SET カラム名1 = 値1, カラム名2 = 値2, ...
WHERE 条件;

-- セミコロンで区切ることで複数のクエリを実行
SELECT *
FROM テーブル名;

※SELECT文が要求される問題では、解答以外のSELECT文が含まれていると不正解と判定される場合があります。

テーブル定義

テーブル名: subjects(科目)

主キー 列名 データ型 必須 デフォルト値
✔︎ subject_code VARCHAR ✔︎ NULL
subject_name VARCHAR ✔︎ NULL

サンプルデータ

テーブル名: subjects(科目)

subject_code subject_name
S00001 国語
S00002 算数
S00003 英語