SQLは、データベースを操作するための言語です。 データベースにはMySQLをはじめ、Oracle、SQLiteなどさまざまな種類があります。SQLの構文はデータベースごとに若干の違いがありますが、基本的な書き方はほぼ共通しています。
SQLは、開発やデータベースのメンテナンス時にエンジニアが直接実行することもあれば、PHPなどのプログラミング言語に組み込まれ、プログラムがSQLを実行する形で使われることもあります。
実際のシステム開発では、以下の5つのSQL文が特によく使われます。
これらは、データベースを管理する上で最も重要な操作です。他にも多くのSQL文がありますが、使用頻度は比較的低いため、必要になったタイミングで学習していけば問題ありません。まずは基本の5つをしっかり理解し、実践できるようになりましょう。
テーブルはデータを保存するための構造です。以下のSQLでテーブルを作成できます。
システム開発では、エンジニアが新しいデータ構造を定義する際にCREATE文を使ってテーブルを作成します。これにより、ユーザー情報や商品データなどの保存場所が確保されます。
また、WordPressプラグインやスマートフォンアプリの開発でもCREATE文が頻繁に使用されます。インストール時や初回起動時に自動的にデータ保存先として、必要なテーブルを生成します。具体的には、プラグインやアプリが最初にアクセスされた際に、設定データやユーザーの利用状況を保存するためのテーブルが自動的に作成されることが一般的です。
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(100),
age INT
);
解説
id
は主キー(PRIMARY KEY)で、自動的に番号が増える(AUTO_INCREMENT)
name
は文字列(VARCHAR)で最大50文字
email
は文字列で最大100文字
age
は整数(INT)
登録されたデータを取得するために
SELECT
文を使用します。
SELECT文は非常によく使われるSQL文です。 PHPでSELECT文を実行して指定した条件のデータを取得するとう使い方をします。
SELECT * FROM users WHERE email = 'test@example.com'
でログイン情報を確認。
SELECT * FROM users;
解説
*
は全ての列を選択する
FROM users
は
users
テーブルからデータを取得する
特定のデータを取得するには、
WHERE
を使います。
SELECT name, email FROM users WHERE age > 20;
解説
name, email
は取得する列を指定
WHERE age > 20
で年齢が20歳より大きいユーザーを取得
新しいデータを追加するには
INSERT
文を使用します。
INSERT文はSELECT文の次のよく使うSQLです。 販売システムなら顧客の新規登録、注文の登録、購入、メッセージ投稿など多くの用途で使用されます。
INSERT INTO users (name, email, age) VALUES ('Taro', 'taro@example.com', 25);
解説
INSERT INTO users
で
users
テーブルにデータを追加
(name, email, age)
は追加するカラム
VALUES ('Taro', 'taro@example.com', 25)
で具体的な値を指定
既存のデータを更新するには
UPDATE
文を使用します。
INSERT文ほど多くは使われません。 プロフィールの変更、誤入力の修正更新などで使われます。
また、エンジニアがデータをメンテナンスしたり修正するときUPDATE文を用いることも多々あります。
UPDATE users SET age = 30 WHERE name = 'Taro';
解説
UPDATE users
で
users
テーブルのデータを変更
SET age = 30
で
age
を 30 に変更
WHERE name = 'Taro'
で特定のレコードのみ更新
データを削除するには
DELETE
文を使用します。
DELETE文は、システム内で慎重に扱われる機能です。 その理由の一つは、誤ってDELETE文を実行するとデータが完全に削除され、復旧が困難になる可能性があるためです。そのため、多くのシステムでは、データを直接削除するのではなく、削除フラグ(論理削除) をONにして「削除済み」とみなす方法が一般的に採用されています。
また、エンジニアがシステムのメンテナンスやデータ整理のためにDELETE文を実行することがありますが、その際に誤って重要なデータをすべて削除してしまう事故が発生することもあります。そのようなリスクを避けるため、削除前にバックアップを取る、トランザクションを利用する、削除対象を慎重に確認するなどの対策が重要です。
DELETE FROM users WHERE name = 'Taro';
解説
DELETE FROM users
で
users
テーブルからデータを削除
WHERE name = 'Taro'
で特定のレコードのみ削除
注意:
WHERE
を指定しないと、すべてのデータが削除されます!
DELETE FROM users;
これは
users
テーブル内の全データを削除するので、使用する際は慎重に!
今回のレッスンでは、基本的なSQLについて学びました。
「そろそろPHPの学習に進みたい」と思うかもしれませんが、実践レベルでデータベースを扱うには、もう少し基礎知識を深めることが重要です。データベースの仕組みをしっかり理解することで、より効率的で安全なシステム開発が可能になります。
今後、以下の重要な概念についても学んでいきます。
これらを習得することで、より実践的なスキルを身につけ、データベースを活用したシステム開発がスムーズに行えるようになります。引き続き、しっかりと学んでいきましょう!