※この記事は「2021年5月21日」に更新しました。
前回は、PDOを利用したデータベース接続について学習しました。
前回の記事を見直して、少し解説が雑な点があったと反省し、必要な知識をこれから少しずつ捕捉していこうと検討しています。
今回は、SQL文についてです。
SQLとは
SQL(Structured Query Language)とは、データベース言語の中で最も普及しているものです。
Webアプリケーションでデータを格納するときは、RDBMS(リレーショナルデータベースマネージメントシステム)を使います。
そして、そのときに使用する言語が SQL です。
それでは、実際にどんな SQL文があるのか見ていきましょう。
DDL
SQLは、DDL(データ定義言語)という命令群があります。
プログラムの運用に入るとあまり使いませんが、アプリケーションをサーバーに仕込む段階で使うことが多いです。
CREATE
RDBMS では、テーブルをいくつかまとめてデータベースという単位で管理します。
CREATE は、データベースやテーブルを作成するときに使います。
データベースを作成するときは下記の書式で記述します。
CREATE DATABASE データベース名
テーブルを作成するときは下記の書式で記述します。
CREATE TABLE テーブル名 ( カラム名 型 オプション, カラム名 型 オプション, カラム名 型 オプション )
DROP
DROP は、データベースやテーブルを削除するときに使います。
データベースを削除するときは下記の書式で記述します。
DROP DATABASE データベース名
テーブルを作成するときは、下記の書式で記述します。
DROP TABLE テーブル名
DML
SQL というとこちらを指すことが多いですが、DML(データ操作言語)は、テーブル内のデータ挿入やデータの検索といった処理を表します。
これを使うときは、すでにデータベースやテーブルができあがっている必要があります。
PHPでプログラミングするときに意識するのはこのDMLがほとんどだと思います。
SELECT
SELECT は、指定したテーブルから行を抽出するときに使います。
SELECT カラム名 FROM テーブル名
INSERT
INSERT は、指定したテーブルにデータを挿入するときに使います。
INSERT INTO テーブル名 (カラム名) VALUES (値)
DELETE
DELETE は、指定したテーブルからデータを削除するときに使います。
DELETE FROM テーブル名
ただし、この場合は全ての行を指定していることになるのでテーブルが空になります。
そこで WHERE を末尾に追加して、データを絞り込みます。
UPDATE
UPDATE は、指定したテーブルのデータを更新するときに使います。
UPDATE テーブル名 SET カラム名=値
こちらも DELETE同様、このままだと全ての行をしていることになります。
やはり WHERE を末尾に追加して、データを絞りこみます。
WHEREを使ってデータを絞り込む
データを絞り込むには、WHERE を使います。
UPDATE と DELETE で軽く紹介しましたが、SELECT などでも普通に使います。
例えば、member というテーブルに id というカラムがあるとき。
id が 3 のメンバーを抽出する SQL は以下の通りです。
SELECT * FROM member WHERE id=3
最後に
いかがでしょうか。
ざっくり説明しましたが、PHPでコーディングするときによく使うのは DML の部分です。
今回の内容は、本当に最低限といった内容なのですが、サンプルコードを写経するときに参考にしていただければ幸いです。
次回は、DDL(データ定義言語)を使って、実際にサーバーに仕込む段階の流れを MySQL でやっていこうと思っています。
あと MySQL などで SQL を実行するとき、SQL文の終わりには、セミコロンをつけるので注意しましょう。