こんにちは。Tomoyuki(@tomoyuki65)です。
Web開発のスキルアップに向けてProgateで学習中ですが、WebサービスにはデータベースやSQLの知識も必須です。
ということで、データベースやSQLについて学習メモを残しておきます。
目次
データベースとは?
データベースとは、文字列(テキスト)や数値などのデータを保存するためのツールで、例えばTwitterのようなSNSは「投稿データ」などをデータベースに保存しています。
データベースは上図のように表でデータを管理し、表のことを「テーブル」、縦の列を「カラム」、横の列を「レコード」と呼びます。
データベースでは、例えばユーザー情報を保持する「ユーザーテーブル」や、商品情報を保持する「商品テーブル」など、必要に応じて複数のテーブルを作成して利用します。
SQL(エスキューエル)とは?
そんなデータベースからデータを取得するなど、データの操作や定義を行うための言語が「SQL(エスキューエル)」です。
例えばデータを取得する場合は、上図のような構文を使って取得したいデータがあるテーブルやカラムを選択します。
※文の終わりには「;」(カンマ)が必要なのでつけ忘れないように注意
データ型まとめ
データ型 | 例 | 特徴 |
文字列(テキスト) | “田中” | ダブルクォーテーションやシングルクォーテーションで囲まれた文字 |
数値 | 3 | 整数値 |
日付 | “2019-01-01” | クォーテーションで囲まれた日付 |
データベースで保持するデータには型があるため、まずは上記3つを覚えよう。
ワイルドカード
テーブルの全てのカラムのデータを取得したい場合は、ワイルドカード(*)を使います。
LIKE演算子
LIKE演算子を使えばあいまい検索が可能で、「”中%”」で前方一致、「”%中”」で後方一致の検索もできます。
NULLのデータを取得
何もデータが登録されていないことを「NULL」と言い、特定のカラムがNULLであるデータを取得する場合は、「IS NULL」を使います。
また、NULLでないデータを取得したい場合は、「IS NOT NULL」を使います。
※例えば「age = NULL」はできないので注意
AND演算子とOR演算子
WHEREの条件が2つ以上の場合は、AND演算子やOR演算子を使って条件を指定します。
AND演算子は複数の条件を指定でき、「WHERE 条件1 AND 条件2」なら条件1と条件2を共に満たすデータを検索可能です。
また、OR演算子で「WHERE 条件1 OR 条件2」という条件なら、条件1または条件2のどちらかを満たすデータを検索可能です。
データの並び替え
取得したデータを並べ替えたい場合は、「ORDER BY」を使います。
昇順ならASC、降順ならDESCを指定します。
SQLの関数
SQLにはあらかじめ専用の関数が使用可能です。
AVG関数なら、指定したカラムの平均値を取得できます。
他にも色々な関数があるので、必要な人はググりましょう。
データのグループ化
データをグループ化して集計したい場合は、「GROUP BY」を使います。
上図の例では、age(年齢)で集約し、20歳未満のユーザーの年齢ごとの人数を取得します。
また、グループ化の後に「HAVING」を使えば、集計した結果に対し絞り込み条件を指定できます。
尚、件数を取得する場合は、「COUNT」を使います。
サブクエリ
上図のようにSQLの中に他のSQLを書くこともでき、これをサブクエリと言います。複雑なデータを取得する際にはよく使います。
尚、サブクエリを含むSQLでは、サブクエリが実行された後に外側にあるSQL文が実行されます。
カラムの別名定義
SELECT文のカラム名の後に「AS」を使えば(ASは省略可能)、カラム名を定義できます。
テーブルの結合
テーブルは結合することができ、「JOIN テーブル名 ON 結合条件」を使います。
JOINは内部結合を表し、それぞれのテーブルが指定したカラムが一致するものだけを結合します。
またJOINではなく「LEFT JOIN」や「RIGHT JOIN」なら外部結合を表し、どちらかのテーブルしか存在しないものも取得できます。
最後に
データベースやSQLは初めてだと分かりづらいですが、慣れてくれば簡単になってくると思います。
例えばRuby on Railsなどのフレームワークを利用した場合は直接SQLを書くことはないかもしれませんが、基本的なデータベースの知識は知っておくべきでしょう。
Tomoyuki
最新記事 by Tomoyuki (全て見る)
- 【スト6】モダンキャミィの初心者向けコンボまとめ【STREET FIGHTER 6(ストリートファイター6)】 - 2024年11月10日
- モンハンワイルズでおすすめのオプション設定まとめ【Monster Hunter Wilds】 - 2024年11月4日
- モンハンワイルズでおすすめのグラフィック設定まとめ【Monster Hunter Wilds】 - 2024年11月2日
コメントを残す