PHP

【PHP】PHPとは?Web制作でよく聞くこの言語を初心者向けに解説

こんにちは、かつコーチです。これまでPHPについて100記事ほど書いて来ました。ここで一度立ち返って、もう一度PHPの基礎からご紹介します。新しくアップデートされている内容もあるので、それも含めて随時解説します。「PHPって聞いたことあるけ...
SQL

【SQL】GROUP BYでグループごとに集計する|SQLの基本を初心者向けに解説

こんにちは、かつコーチです。「COUNT・SUM・AVGは使えるようになったけど、『顧客ごとの注文件数』のように、グループ単位で集計したいときはどう書けばいいんだろう」と悩んでいませんか。この記事では、そんな悩みを解決するGROUP BYの...
SQL

【SQL】UNION・UNION ALLで結果セットを結合する

こんにちは、かつコーチです。「今月の注文テーブル」と「過去の注文アーカイブテーブル」を1つのリストとしてまとめて表示したい。こうした「複数のSELECT結果を縦に連結したい」場面で使うのがUNION・UNION ALLです。これまで解説して...
SQL

【SQL】自己結合(SELF JOIN)の使い方

こんにちは、かつコーチです。「社員テーブルの中で、上司と部下の関係を一覧にしたい」「同じ商品カテゴリの中で、価格が近い商品同士を比較したい」。こうした「同じテーブルの中にある行同士を比較・結合したい」というケースで使うのが自己結合(SELF...
SQL

【SQL】3つ以上のテーブルを結合する

こんにちは、かつコーチです。実務のデータベースは、2つのテーブルだけで完結することはほとんどありません。「会員」「注文」「商品」のように、3つ、4つとテーブルが連鎖している構成が一般的です。今回は、複数テーブルを連結して結合する方法と、多対...
SQL

【SQL】LEFT JOIN・RIGHT JOINの違いと使いどころ

こんにちは、かつコーチです。前回はINNER JOINで「一致する行だけ」を取得する方法を解説しました。今回は、「一致しない行も含めて取得したい」ときに使うLEFT JOINとRIGHT JOINを解説します。「一度も注文したことがない会員...
SQL

【SQL】INNER JOINで複数テーブルを結合する

こんにちは、かつコーチです。「注文テーブルと会員テーブルを組み合わせて、注文者の名前も一緒に表示したい」——このように、複数のテーブルにまたがるデータを1つの結果として取得したいとき、JOIN(結合)が必要になります。今回は、もっとも基本的...
SQL

【SQL】NULLの扱い方:IS NULL・IS NOT NULLでハマらないために

こんにちは、かつコーチです。「WHERE column = NULLと書いたのに、なぜか1件もヒットしない」——SQLを書き始めた人がほぼ必ず一度はハマる落とし穴です。今回は、NULL(値が存在しない、未入力であることを示す特殊な状態)の正...
SQL

【SQL】IN・BETWEENで複数条件・範囲を指定する

こんにちは、かつコーチです。「東京・大阪・愛知に住んでいる人」「価格が1,000円〜3,000円の商品」のように、複数の候補や範囲を指定したい場面はとても多いです。ORを何個も並べると読みにくくなりますが、INとBETWEENを使えばすっき...
SQL

【SQL】LIKE演算子であいまい検索をする

こんにちは、かつコーチです。「名前に“田中”を含む人を探したい」「メールアドレスが“gmail.com”で終わる人を探したい」という場面、実務でよくありますよね。今回は、こうしたあいまい検索(完全一致ではなく部分的に一致する文字列を探す検索...
SQL

【SQL】比較演算子とAND・OR・NOTの使い方

こんにちは、かつコーチです。今回は、WHERE句で条件を組み立てるときに欠かせない比較演算子(値同士の大小や一致を比べる記号)と、論理演算子(複数の条件を組み合わせる言葉)のAND・OR・NOTを解説します。「30代の女性だけ抽出したい」「...
SQL

【SQL】集計関数(COUNT・SUM・AVG・MAX・MIN)の使い方

こんにちは、かつコーチです。「今月の注文件数は何件?」「売上の合計はいくら?」「一番高い商品はいくら?」。こうした問いに答えるとき、1件ずつデータを目で数える必要はありません。SQLには、複数行のデータをまとめて計算してくれる集計関数が用意...
SQL

【SQL】DISTINCTで重複を除去する

こんにちは、かつコーチです。「注文テーブルから、注文したことがある都道府県の一覧が欲しい」。こういう場面でSELECT文をそのまま書くと、同じ都道府県が注文件数分だけ何度も表示されてしまいます。この記事では、結果から重複行を取り除くDIST...
SQL

【SQL】LIMIT・OFFSETで件数を制限する

こんにちは、かつコーチです。「新着記事を5件だけ表示したい」「1ページあたり20件ずつ表示するページネーションを作りたい」。こうした要件でよく使うのがLIMIT句とOFFSET句です。この記事では、usersテーブルを例にLIMIT・OFF...
SQL

【SQL】ORDER BYで並び替える

こんにちは、かつコーチです。「新着順に商品を並べたい」「年齢の若い順に会員を表示したい」など、データを並び替えて表示したい場面は非常に多くあります。このような並び替えを実現するのがORDER BY句です。この記事では、これまでと同じuser...
SQL

【SQL】WHERE句で条件を指定して絞り込む

こんにちは、かつコーチです。前回はSELECT文の基本を解説しましたが、実務では「全件取得」よりも「条件に合うデータだけ取得したい」場面がほとんどです。例えば「30歳以上の会員だけ取得したい」「特定のメールアドレスのユーザーを探したい」とい...
SQL

【SQL】SELECT文の基本:データを取得する

こんにちは、かつコーチです。SQL入門編では、データベースやSQLの全体像を解説してきました。ここからは実践編として、実際にSQL文を書いていきます。最初に習得すべきなのが、データを取得するためのSELECT文です。SELECT文はSQLの...
SQL

【SQL】MySQL・PostgreSQL・SQLite・MongoDB、DBMSの選び方

こんにちは、かつコーチです。「データベースを学ぼう」と決めても、次に立ちはだかるのが「どのDBMSを使えばいいの?」という選択です。MySQL、PostgreSQL、SQLite、MongoDBなど、名前をよく聞くDBMSはいくつもあります...
SQL

【SQL】SQLとは?データベース操作言語の基本を理解する

こんにちは、かつコーチです。ここまでの記事で「データベース」「RDBMS」について解説してきました。今回はいよいよ、そのRDBMSを操作するための言語であるSQLについて解説します。「SQLって何の略?」「プログラミング言語なの?」という疑...
SQL

【SQL】RDBMS(リレーショナルデータベース)とは?表形式でデータを管理する仕組み

こんにちは、かつコーチです。前回の記事でデータベースの全体像を説明しましたが、今回はその中でも最も普及しているRDBMS(リレーショナルデータベース管理システム)について解説します。「リレーショナル」という言葉の意味がわからず、なんとなく使...