こんにちは! ケケンタです。
今回はPHPのWebアプリ開発をするなら必須のSQLの書き方について解説をしていきます。
- PHPのWebアプリ開発で必要なSQLの知識
- CRUDとは何か?
- SQLの基本構文
SQLはデータベースを操作するための言語です。
しかし、いま現在PHPを学ばれていて、これからWebアプリ開発をしたいと考えている方は、SQLの中でも基本となるCRUD(クラッド)の書き方を理解する必要があります。
この記事をご覧いただくことで、PHPでのWebアプリ開発において不可欠なSQLを理解することができます。
SQLの基本構文を習得することでTODOアプリや掲示板アプリを開発できるレベルに1つ近づくことができます。
PHPの勉強はとても大変で、その上「SQLもやるのか……」と思われる方もいらっしゃるかと思いますが、PHPに比べれば覚えるべきことは非常に少なく、また簡単です。
この記事を通して、ぜひSQLの基本構文を理解していってください。
SQLとは?
大前提として、SQLとは何か?についてお話をします。
SQLとは
データベースを操作するために使用するデータベース言語
です。
データベースにはWebアプリで必要となるユーザー情報やコンテンツ情報などをデータとして保存しておきます。
そのデータ量は実際に運営されているWebアプリの場合、非常に膨大なものとなります。
その膨大なデータを操作するために使用される言語がSQLです。
SQLの基本であるCRUD(クラッド)とは?
SQLの説明の最後に「操作するために使用される言語」とお伝えしました。
ここで言っている操作というのが、いわゆるCRUDと呼ばれるものになります。
CRUDとは、Webアプリケーションにおいて欠かせない以下4つのデータベース操作の基本機能を言い表したものです。
Create(作成)
Read(読み取り)
Update(更新)
Delete(削除)
これらの頭文字を取ったのがCRUD(クラッド)です。
CRUD(クラッド)の4大要素
繰り返しになりますが、CRUDはWebアプリケーションにおいて不可欠なデータベース操作の4つの頭文字を組み合わせたものです。
これらをSQLの基本構文と対応させると以下のようになります。
CRUD(クラッド)
- Create(作成) …… INSERT文
- Read(読み取り)…… SELECT文
- Update(更新) …… UPDATE文
- Delete(削除) …… DELETE文
PHPに限らず、Webアプリケーションを開発する際には、上記4種類のSQL文の使用が欠かせません。
言い換えれば、これらをしっかり理解できればWebアプリケーションを開発するために最低限必要なSQLは習得したと言えるということです。
それでは以下より各SQL文の概要と構文を解説していきます。
なお、CRUDでは先頭がINSERT文になっていますが、当記事ではSQLにおいて最も基本であるSELECT文の書き方からご説明させていただきます。
SELECT
SELECT文は
データベースから特定のデータを取得したい際に使用するSQL文
です。
使用例としては、掲示板アプリで投稿情報を表示したいとき、投稿情報をデータベースから取得するときなどが挙げられます。
上図ではIDが2のデータを選択する様子を示していますが、実際には例えば名前や色に対して条件を指定する形でデータを取得することが可能です。
本章ではパターンとして以下3つについて解説します。
- すべてのデータを取得する場合
- 列を指定しつつ、すべてのデータを取得する場合
- 条件に一致するすべてのデータを取得する場合
すべてのデータを取得する場合
すべてのデータを取得する場合、SQLは以下のようになります。
すべてのデータを取得するSQL文
SELECT * FROM テーブル名;
SQLでは基本的にメインとなる命令(SELECT)を先頭に書きます。
その後ろに続く*(アスタリスク)とFROM テーブル名はそれぞれ以下のような意味を持ちます。
・*(アスタリスク)……すべての列(カラム)
・FROM テーブル名……『テーブル名』から取得する
また、このSQL文では、条件の指定を行っていません。
したがって、上記の1文により、「『テーブル名』からすべてのデータを取得する」という意味になります。
列を指定しつつ、すべてのデータを取得する場合
データを取得する際、特定の列情報があれば十分な場合があります。
そんなときは以下のように記述をします。
特定の列からのみデータを取得する
SELECT 名前, 数量 FROM テーブル名;
SELECTの後ろにカラム名(列名)をカンマ区切りで記述しています。
こうすることで、特定のカラムだけを取得することが可能です。
もちろん、1列だけ選択するという記述の仕方も可能です。
また補足として、以下の①、②のSQL文は同じ取得結果になります。
①SELECT * テーブル名;
②SELECT ID, 名前, 色 ,数量 FROM テーブル名;
条件に一致するすべてのデータを取得する場合
条件を指定してデータを取得する場合は、これまでの構文に加えてWHERE文を使用します。
書き方は以下の通りです。
条件を指定してデータを取得するSQL文
SELECT * FROM テーブル名 WHERE 条件;
また、複数の条件を指定することも可能で、その場合はANDやORを使用します。
複数の条件を指定するSQL文
SELECT * FROM テーブル名 WHERE 条件⓵ OR 条件⓶;
以下の例では、「IDが2または数量が20のデータ」を取得します。
このようにSQLでは基本的な構文を組み合わせることで様々なデータを取得することが可能です。
INSERT
INSERT文は、既存のテーブルに新しいデータを追加する際に使用します。
Webアプリケーションでは、例えば掲示板アプリに投稿があった際、投稿データをテーブルにINSERTするといったシチュエーションが挙げられます。
基本的な書き方は以下の通りです。
INSERT文の基本的な書き方
INSERT INTO テーブル名 (列名1, 列名2,…) VALUES (値1, 値2,…);
以下の例では、既存テーブルに「いちご」の情報を新規追加します。
INSERT INTO テーブル名 (ID, 名前, 色, 数量) VALUES (5, ‘いちご’, ‘レッド’, 13);
この例では説明のためにIDの情報も記述していますが、基本的にデータを一意に識別するための連番はデータベース側の設定で自動的に入力されるようにします。
したがって、実際の開発の際にはIDの部分は省略してしまって大丈夫なケースがほとんどです。
UPDATE
UPDATE文は、既存データを更新したいときに使用します。
例えば掲示板アプリでは、過去に投稿した投稿内容を修正する機能で使用します。
基本的な書き方はこちらです。
UPDATE文の基本的な書き方
UPDATE (テーブル名) SET (カラム名1) = (値1) WHERE (条件);
少々見づらいかもしれませんが、日本語で簡単に見ると
指定したテーブル内の条件に当てはまるデータの内、指定したカラムの情報を(値1)に置き換える
という意味です。
イメージが湧きづらい方は、まずUPDATE~(値1)までを1つのまとまりとして捉えてみて下さい。
例えば、IDが1のデータの数量を15に更新するというSQL文は以下のようになります。
UPDATE テーブル名 SET 数量 = 値1 WHERE ID = 1;
DELETE
最後はDELETE文です。
DELETE文は、条件に一致する既存データを削除したいときに使用します。
例えば掲示板アプリでは、過去の投稿内容を削除する機能で使用します。
基本的な書き方は以下の通りです。
DELETE文の基本的な書き方
DELETE FROM テーブル名 WHERE 条件;
以下の例では、IDが3のデータを削除しています。
DELETE FROM テーブル名 WHERE ID = 3;
DELETE FROM テーブル名;
以上がCRUDの解説でした。
余談ですが、今回の例ではすべてアルファベットを大文字で記述していましたが、SQLでは全角と半角の区別は無いため、半角で記述することも可能です。
SQLの基本であるCRUDの書き方を理解してPHPでWebアプリ開発をしよう
以上がWebアプリ開発をする際に必要不可欠なSQLの基本、CRUDの解説でした。
改めて、CRUDとはWebアプリにおけるデータベース操作の4つの基本機能の頭文字を取った用語でした。
- Create(作成) …… INSERT文
- Read(読み取り)…… SELECT文
- Update(更新) …… UPDATE文
- Delete(削除) …… DELETE文
これらの書き方をきちんと理解できれば、Webアプリを開発することが可能です。
PHPの基礎を習得し、Webアプリを開発するとなれば避けては通れないSQLですが、この記事の内容が理解できたなら、実際に使えるようになるまでそう時間はかかりません。
もしも実際にCRUDを使用している様子をご覧になりたいという場合は、以下の記事もおすすめです。
最後までご覧いただきありがとうございました!
また別の記事でお会いできるのを楽しみにしております。