Progate(プロゲート)でデータベースとSQLの学習メモ




 

こんにちは。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を書くことはないかもしれませんが、基本的なデータベースの知識は知っておくべきでしょう。

 

 

The following two tabs change content below.

Tomoyuki

SEを5年経験後、全くの未経験ながら思い切ってブロガーに転身し、月間13万PVを達成。その後コロナの影響も受け、以前から興味があったWeb系エンジニアへのキャリアチェンジを決意。現在はWeb系エンジニアとして働きながら、プロゲーマーとしても活躍できるように活動中。








シェアはこちらから


おすすめのゲーミングPCまとめ

近年、eスポーツという言葉が浸透し、ゲーミングPCの需要も増えましたが、「ゲーミングPCはどう選べばいいの?」という人も多いのではないでしょうか。そんなPC初心者でも迷わず選べるよう、おすすめのゲーミングPCをご紹介します!


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です