コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

低スペック人間とおぼえるシークェル

こんにちは!低スペック人間です。

はい、おはようございます。自分をHTMLだと思っているただの低スペック人間です。世の中には色々なことを言い訳にして生きている人間がいますが僕もその一人です。

僕は……そう……。

_人人人人人人人人人人人人人人人人人人人人人人人人_
> 自分をHTMLと思ってるただの低スペック人間 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

HTML (HyperText Markup Language) はウェブのもっとも基本的な構成要素です。 HTML はウェブページの基本レイアウトに従ってウェブページのコンテンツを記述し定義するものです。 HTML に隣接する他の技術としては、ウェブページの表示や表現を記述するもの (CSS) または機能や振る舞いを記述するもの (JavaScript) があります。

というわけで、本日も低スペック人間と覚えるシークェル講座をやっていきましょう。はい、それじゃあカーンアカデミーの続きをやっていきます。

前回記事
inujini.hatenablog.com


そうしたわけで今回はSQL回やっていきます。
f:id:andron:20191229021046p:plain
内容としてはSQLの基本操作って感じの内容です。んで、今回もプロジェクトが付属していたのでそれやっていきます。どうでもいい話なんですけどエディタが色付きでなんとかしてくれるんでキーワードを大文字にしないで書いているんですけどやり方としか何が正しいんですかね。

■ ストアのDBをつくろう。
前回も同じの貼ったけどもこっちにもあったので一応。
www.khanacademy.org

こんな感じにテーブルを作るところから始めていきます。

CREATE TABLE customers (
  id INTEGER PRIMARY KEY, 
  name TEXT, 
);

ベースはこちらもSQLiteだそうで。前もどこかでぼやいてたような気がするんですけどSQLiteってBool型ないんですね……。ここ最近はJSONで何もかも処理してしまおうとか言う狂気の発想しか持ち合わせてなかったから全然そういうの頭回ってなかった。なんでも型用意されてるもんだとばかり思ってましたよ。

型名 説明
NULL NULL値
INTEGER 整数
REAL 小数
TEXT テキスト
BLOB 入力データをそのまま

これだけしかデータ型なかったんですね……。へー。

■ データ加工
作ったテーブルデータから必要な情報を抜き出せるかどうかみたいなプロジェクト。テーブルつくるの面倒だったんですけど、それ用にいじれるやつが用意されてるっぽいですね。
www.khanacademy.org
WERE句とかそういうのはまあいいとしてSQLiteの組込関数はなんか覚えられなかったんでここについでなんでまとめておくことにします。

・集計関数

関数 説明
count 行数をカウント
sum 合計を取得
avg 平均を取得
max 最大値を取得
min 最小値を取得

なぜか平均の求め方をAVEで覚えててエラーめっちゃ出してた。


■ 有名人DB
有名人とかそういうの情報をまとめたDB作ろう的なやつ。
www.khanacademy.org
やりたいことはテーブルの結合とかそういう話です。


■ アプリをつくろう
www.khanacademy.org
今までは参照系いじってたけどこっちは更新系をいじっていきます。更新系を安全に処理するためにtransaction*1使えてきなことかいてありますので、たいしたことやってないけどもそれを使って書いてみます。

BEGIN TRANSACTION;
  -- 何かしらの処理
COMMIT;

これ。どっかでBEGINのまま放置すると放置するとDBが落ちるとか見たんだけど、そうなると何が安全なんだとかなる……。


ということで内容はそんな感じです。


おわり

*1:挿入されるデータを、交差点にある信号機みたいに好き勝手車が動いて衝突しないように流れを作ってくれるやつ