第4回 データの登録と参照を覚えよう - MySQL講座
サカイ先生のMySQL講座
Lecutures on PHP
第4回 データの登録と参照を覚えよう (その2)
データの登録 ~ INSERT

それではマニュアルのたどり方を覚えたところで、SQL文を学んでいきましょう。最初は登録処理(INSERT)です。
まず INSERT 文についてのマニュアルを参照してみます。図6のもくじに INSERT という節がありますね。そう、図6では 11.2.4 節と表示されているものです。ではこれをクリックしてください。念のため直接このページに行くためのリンクも掲載しておきます(マニュアルの辿り方を覚えたあなたには、こんな直接リンクのURLなんて不要ですね!)。
※ INSERT文のマニュアルのURL
http://dev.mysql.com/doc/refman/5.0/en/insert.html
そのページを見ると、INSERT文について3つの構文が書いてあります。その中のひとつがこんな感じ。
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
ちょっと複雑だと思いますので、この中から最低限覚えておきたい構文を以下に紹介します。
INSERT INTO テーブル名 [(列名, 列名, ...)]
VALUES (値, 値, ...), (...), ...
※ [ ] 内は省略可能。 .,. は複数件続くことがある、の意。
では実際にデータを入れていくために、前回作った kohaku テーブルを一旦からっぽにしておきましょう。以下のコマンドを mysql> プロンプトで入力します。ここでは一旦テーブルそのものを破棄してから再度作り直すことで、からっぽのテーブルを用意しています。
DROP TABLE kohaku;
CREATE TABLE kohaku (
no INT NOT NULL PRIMARY KEY,
year INT,
aka_tori VARCHAR(32),
shiro_tori VARCHAR(32),
winner VARCHAR(2)
);
今回もこのテーブルに図7のデータを入れていきます。
●図7「NHK紅白歌合戦のトリ歌手と勝利チーム」のデータ

では INSERT 文の各形式を簡単な形から積み上げ式で覚えていきましょう。
一番シンプルな形は、こうです。
この形式はテーブルのカラム名を指定しない形式です。 VALUES の後ろに全カラムの値を与える場合は、カラム名を明記しないこの形式で INSERT をすることができます。実際にデータを登録してみましょう。
INSERT INTO kohaku VALUES (52, 2001, "和田アキ子", "北島三郎", "白");
複数件のデータを一発で登録することもできます。以下の形式です。
VALUES (値, 値, ...), (値, 値, ...) ...
2行に分かれていますが、改行は気にしなくて良いのでしたね。この形式は、VALUES の後ろの値のセットが複数ある形式です。これも実際のデータ登録で見てみましょう。以下の例は5件のデータをいっぺんに登録しています。1件ずつ5回に分けて登録する場合に比べて、一般に高速に登録できるメリットもあります。もっとも、この程度の件数ではさほど差はありませんが。
INSERT INTO kohaku
VALUES (53, 2002, "石川さゆり", "五木ひろし", "紅"),
(54, 2003, "天童よしみ", "SMAP", "白"),
(55, 2004, "小林幸子", "五木ひろし", "紅"),
(56, 2005, "天童よしみ", "SMAP", "白"),
(57, 2006, "川中美幸", "北島三郎", "白");
そして最後に紹介するのが列名を指定する形式です。
これも実際にデータを登録してみます。
INSERT INTO kohaku (no, year, aka_tori, shiro_tori, winner) VALUES (58, 2007, "石川さゆり", "五木ひろし", "白");
カラム名を明示する場合は登録したいカラムだけを指定することもできます。2008年もおそらく(大波乱が起こらなければ)紅白は開催されるでしょうが、当然まだトリも勝利チームも決まっていません。いま決まっている「回数」と「年」だけを登録しておくには以下のようにします。
INSERT INTO kohaku (no, year) VALUES (59, 2008);




ページのトップへ


GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。