LoginSignup
2
0

More than 5 years have passed since last update.

DB

Last updated at Posted at 2017-06-06

システムを作るとき、多くのデータを扱います。それらのデータを検索・更新などの活用をしやすくしたものを「データベース」といいます。

7.1 DBの操作

データの登録(Create)・検索(Read)・更新(Update)・削除(Delete)の4つの処理を合わせて「CRUD(クラッド)」といいます。
PHPでデータベースを利用する場合、データベースへの接続・SQL文の実行・データベースの接続切断という流れで使用する。

7.2 SQL

データベースに履いているデータの操作をするとき、SQL文を実行する。

INSERT文

データをDBに登録する場合、INSERT命令をを実行します。
DBのテーブルにデータを登録する(INSERT)ときは、以下のように記述する。

//例)
INSERT INTO テーブル名(カラム名1, カラム名2, ... ) VALUES ("値1", "値2", ... );

テーブル名には、データを格納したいテーブル名を指定します。カラム名と値は、対応する順に指定してあげましょう。実際は以下のように記述します。

INSERT INTO `ccm` (`member_name`) VALUES (" /*自分の名前*/ ");

SELECT文

テーブルからデータを取得(SELECT)するときは、以下のように記述する。

SELECT 取得したいカラム名1, 取得したいカラム名2, ... FROM テーブル名 WHERE 絞り込み条件;

すべてのカラムを取得したい場合、アスタリスク「*」を用います。
また、

絞り込み条件
(1) 条件
文字列による絞り込み条件
・カラム名 = 検索文字
 カラムの値と検索したい文字列が完全一致するデータの表示

    WHERE `member_name` = "hoge"

・ カラム名 LIKE 検索文字(あいまい検索)
 カラムの値に検索したい文字列を含むデータの表示

    WHERE `member_name` LIKE "%hoge%" 

WHERE `member_name` LIKE %foo% -> 検索したい文字列に「foo」を含んでいる(部分一致)
WHERE `member_name` LIKE fuga% -> 検索したい文字列が「fuga」から始まる文字列(前方一致)
WHERE `member_name` LIKE var% -> 検索したい文字列が「var」で終わる文字列(後方一致) 

数値による絞り込み条件

記述 意味
WHERE `member_id` < 7 member_idカラムが7より小さいレコードの表示
WHERE `member_id` > 7 member_idカラムが7より大きいレコードの表示
WHERE `member_id` >= 7 member_idカラムが7以下のレコードを表示
WHERE `member_id` <= 7 member_idカラムが7以上レコードを表示

(2) データの取得数の制限

LIMIT句を用いることで、検索結果を何件取得するのかという指定をすることができる。

 SELECT * FROM `members` LIMIT 5
 //検索結果としては5件のみが取得できる

(3) データ件数の取得

COUNT句を用いることで、検索結果を何件取得できたのかを知ることができる。

SELECT COUNT(*) FROM `members`

(4) データの並び替え
ORDER BYを用いることで、idの昇順・降順を指定することができます。

SELECT * FROM `members` ORDER BY `member_id` ASC; //(昇順);
SELECT * FROM `members` ORDER BY `member_id` DESC; //(降順)

(5) テーブル結合

複数のテーブルから1つのテーブルに作り変えることができ、これを用いることでテーブルの関係性を持ったデータの取得ができる。

SELECT カラム名1, カラム名2, ... FROM テーブル名1 LEFT JOIN テーブル名2 ON テーブル名1.フィールド名 = テーブル名2.フィールド名
WHERE 条件

UPDATE文

テーブルにあるデータの更新(UPDATE)するときは、以下のように記述する。

UPDATE テーブル名 SET カラム名1="値1", カラム名2="値2", ... WHERE 条件;

実際にmembersテーブルのデータを更新してみましょう。

UPDATE `members` SET `member_name` = "hoge" WHERE `member_id` = 3;
//member_id = 3のmember_nameが櫻井に更新される

条件はSELECT文と同じで、更新対象のレコードの絞り込みで用います。 条件を記述しないと、全てのレコードが更新されてしまうので注意が必要です。

DELETE文

テーブルにあるデータを削除(DELETE)するときは、以下のように記述する。

DELETE FROM テーブル名 WHERE 条件;

実際にmembersテーブルのデータを1件削除してみましょう。

DELETE FROM `members` WHERE `member_id` = 1;
//member_id = 1のレコードが削除される

条件はSELECT文と同じで、削除対象のレコードの絞り込みで用います。 条件を記述しないと、全てのレコードが削除されてしまうので注意が必要です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0