前回記事MySQLでテーブル作成1ではテーブルを作成しました。今回はそのテーブルに対して色々な操作をし、理解を深めていきたいと思います。6月1日記事

目次



テーブルの情報を取得する

テーブルがまずあるか確認する。

データベースを選択していなければ。
mysql> use データベース名;
データベースを選択後
mysql> SHOW TABLES;

すると次のように表示されるはずです。 mysql> show tables;

+-----------------------+
| Tables_in_nicepaperdb |
+-----------------------+
| information            |
+-----------------------+
1 row in set (0.00 sec)

テーブルの構造を見てみる。

mysql> DESC information;
すると以下のように出てきます。
+-----------+--------------+------+-----+------------+----------------+
| Field     | Type         | Null | Key | Default    | Extra          |
+-----------+--------------+------+-----+------------+----------------+
| id        | int(11)      | NO   | PRI | NULL       | auto_increment |
| info_date | date         | NO   | MUL | 0000-00-00 |                |
| title     | varchar(255) | NO   |     |            |                |
| type      | tinyint(1)   | NO   |     | 0          |                |
| info_text | text         | NO   |     | NULL       |                |
| url       | varchar(255) | NO   |     |            |                |
| status    | tinyint(1)   | NO   | MUL | 0          |                |
+-----------+--------------+------+-----+------------+----------------+
7 rows in set (0.01 sec)

テーブルにフィールドを挿入してみる。

挿入

本来、phpや他のプログラムの方でMySQLのクエリを実行するので、コマンドラインで挿入することはないです。ただ、値がちゃんと格納されるか等の確認をし、検索もできるかを確認したいと思います。

mysql> INSERT INTO information (info_date, title , type ,info_text , url ,status) VALUES ('2015-06-01','サイトオープンしました', '1', 'サイトオープンしました。今後ともよろしくお願い致します。','http://www63.atwiki.jp/nicepaper/pages/1.html', '1');

文法:INSERT INTO テーブル名(カラム名1,カラム名2,カラム名3...) VALUES (値1,値2,値3....);と書いていきます。値に関してはシングルクオーテーションを付けていきます。また、idの宣言および挿入値の宣言は必要ないです。

確認

mysql> SELECT * FROM information;

コピペすると、形がかなり崩れるので、表示しません。ご了承ください。アスタリスク(*)はフィールドの全情報を取得するという意味です。

違った値を挿入してみる。

違う型を入れたデータを挿入してみる。typeの部分は数値型なのですが、文字列を入れてみます。typeの部分に「ニュース」というものを入れてみます。

mysql> INSERT INTO information (info_date, title , type ,info_text , url ,status) 
VALUES ('2015-06-01','サイトオープンしました', 'ニュース', 
'サイトオープンしました。今後ともよろしくお願い致します。',
'http://www63.atwiki.jp/nicepaper/pages/1.html', '1');
Query OK, 1 row affected, 1 warning (0.00 sec)

確認

確かに挿入はできるのですが、テーブルを見てみるとどうでしょうか。

mysql> SELECT * FROM information WHERE id = '2';

するとtypeの値がデフォルトの0になっていることが確認できると思います。 数字入れてどうするの?と思いがちな方もいらっしゃると思いますが、プログラムでデータベースの値を読み取って、値が1ならニュース、値が2ならIR情報などと表示させるようにプログラムさせればいいだけです。

フィールドを削除してみる。

削除

設計でstatusの数値に関して公開は2、下書きは1、削除は0と設計しています。履歴を残す場合statusの部分を0にすれば、データベースには残り、フロントエンド側には表示されずにすることができます。なので以下の行為はあまり意味ないですが、やってみましょう。

mysql> DELETE FROM information WHERE id = '2';

無事削除ができました。

確認

再び挿入してみるとidはどう変化するのでしょうか?確認してみます。

mysql> INSERT INTO information (info_date, title , type ,info_text , url ,status) 
VALUES ('2015-06-02','新しい商品入荷しました', '1',
 '新しい商品のnicepaperが入荷しました。',
'http://www63.atwiki.jp/nicepaper/pages/1.html', '1');

するとidが3になっていることがわかります。

値や文字列の情報を変更してみる。

続いては情報の変更です。

変更

mysql> UPDATE information SET type = '2' , info_text = '商品はnicepaperを入荷し、10個限定販売です。'
 WHERE id = '3';

確認

mysql> SELECT * FROM information;

すると情報が変更できていることを確認することができます。

どうでしょうか。このように、データベースの設計をし、あとはプログラム側でクエリを投げるプログラムを書けば、データベースに挿入や削除や値の変更ができます。ここで使ったMySQLの文法を確認すると

  1. SELECT文(データベースからフィールド引き出し)
  2. INSERT文(フィールドの挿入)
  3. DELETE文(フィールドの削除)
  4. UPDATE文(フィールドの更新)
  5. WHERE句(フィールドの検索) です。

続いては、phpでMySQLへフォームを使って挿入を作っていきます。

最終更新:2015年06月01日 19:00