概要
学内の授業でSQLiteを触っているので忘備録としてSQLiteの基礎をまとめてみました。TechFULの難易度1~2のデータベース問題の解答を参考にしています。
順次更新していきます...
用語の説明
今回のサンプルでは生徒のテストの成績データを扱うことを想定して書いていきます
- テーブル→データ全体のこと。-テーブル名"students"
- カラム→縦の列のこと。-カラム名"id","name","score"
- レコード→横の行のこと。-レコード"1","Tanaka","60"
- フィールド→一つのエリアのこと。
エクセルのテーブルを想像してもらうと分かり易いと思います。
とりこれSQL
SELECT * FROM students;
SELECT *と指定する事でtableから行・列を全て出力します
全ての生徒データを表示
SELECT score+5 FROM students;
SELECT句の中に直接式を記載する事で計算結果を表示できます
全員のテスト結果に+5点
SELECT id FROM students WHERE score IS NULL;
SELECT id FROM students WHERE score IS NOT NULL;
SELECT name FROM students WHERE score > 50;
WHERE句を使うことで条件を絞ることができます。
また、IS NULLを使うことでNULLの値のみを、IS NOT NULLでNULLではない値を取得できたりします。
scoreの値がNullのidを取り出す
scoreの値がNullではない値を取り出す
scoreが50以上のnameを取り出す
SELECT name FROM students WHERE 50 > score AND score > 10;
SELECT name FROM students WHERE 50 > score OR score > 100;
SELECT name FROM students WHERE NOT score = 50
WHERE句の発展としてAND,OR,NOTを使うことも出来ます。
scoreが50より上でかつscoreが10より上のnameを取り出す。
scoreが50より下、もしくはscoreが100より上のnameを取り出す。
scoreが50ではないnameを取り出す。
SELECT
CASE
WHEN score % 2 = 0 then "偶数"
WHEN score % 2 = 1 then "奇数"
ELSE "?"
END;
CASE句を使うと条件分岐が可能になります。
UPDATE table set a = 5;
UPDATE句を使うと値(a)を更新できます。
ALTER TABLE NUMBER ADD COLUMN c[INTEGER]
新しい行(c)を作成します。