データの挿入

テーブルへのデータの追加

テーブルにデータを追加するにはINSERT文を使います。基本となる書式は次の通りです。

INSERTの書式①
INSERT INTO データベース名.テーブル名(列名1, 列名2, ...) VALUES (値1, 値2, ...);

指定のデータベース内にある指定のテーブルに対してデータを追加します。データベース名は、useで指定されている場合は省略可能です。そのような場合、以下のような表現になります。

INSERTの書式②
INSERT INTO データベース名.テーブル名(列名1, 列名2, ...) VALUES (値1, 値2, ...);

データを追加するテーブルには通常複数のカラムが存在しています。データを追加する時に値を指定したいカラムを列挙し、そのカラムの数だけ値を指定して下さい。テーブルの中で値が指定されなかったカラムにはデフォルトの値が格納されます。

またテーブルに含まれている全てのカラムに値を指定する場合に限ってカラムの記述を省略することができます。実際には次の書式となります。

INSERTの書式③
INSERT INTO テーブル名VVALUES (値1, 値2, ...);

サンプル

では、実際にテーブルにデータを挿入するサンプルを見てみましょう。2日目で紹介した、studentテーブルにデータを挿入してみましょう。

Sample301.sql
# データベースSCHOOLを作成する。(作成してある場合は、必要ありません。)
CREATE DATABASE SCHOOL;

# データベースをSCHOOLに切り替える
USE SCHOOL;

# テーブルstudentを作成する。(作成してある場合は、必要ありません。)
CREATE TABLE student(
	id		int PRIMARY KEY,
	name	varchar(128),
	grade	int
);

# データの挿入
INSERT INTO student (id,name,grade) VALUES(1001,'山田太郎',1);
INSERT INTO student (id,name,grade) VALUES(2001,'太田隆',2);
INSERT INTO student (id,name,grade) VALUES(3001,'林敦子',3);
INSERT INTO student (id,name,grade) VALUES(3002,'市川次郎',3);

コメント

このサンプル中には、#で始まる行がいくつかあります。これは、コメントと呼ばれ、それ自体にはなにも意味がありませんが、sql文を見やすくするために、いわば注釈のようにして用いることができます。MySQLでは、複数のコメントを用いることが出来ます。(表3-1.)

表3-1.MySQLで用いることができるコメント
パターン内容
#行末までのコメント
--行末までのコメント(--の後は半角スペース必須)
第/*から*/改行を許容するコメント

データの出力

以上のsql文を実行すると、データベースSCHOOL、テーブルstudentが生成され、そこにINSERT文でデータが挿入されます。では、挿入されたデータの内容はどのように確認することができるのでしょうか?以下のSQL文を実行してみてください。

studentデータベースの出力
SELECT * FROM student;

すると、以下のように結果が表れます。(図3-1.)

図3-1.studentテーブルの内容
studentテーブルの内容

このように、studentテーブルには、id,name,gradeという列があり、それぞれにINSERT文でデータが挿入されていることがわかります。SELECT文については、後ほど詳しく説明しますが、今は、以下のようにすると、任意のテーブルのすべてのデータを出力できることを覚えておきましょう。

テーブル内のデータの出力
SELECT * FROM (テーブル名);

続いて、このSELECT文をさらに使いこなし、データをより細かく表示する方法についてみてみましょう。

データの検索

テーブルデータの検索

テーブルデータの検索には、SELECT文を利用します。基本の書式は以下の通りです。

SELECT文の書式
SELECT 列名1,列名2,… FROM テーブル名 [条件];

すでに説明したとおり、列名を列挙する部分に、列名の変わりに*(アスタリスク)を入れると、指定したテーブルのすべての列が選択されます。このSELECT文は、データベースの中で最も頻繁に利用される命令であり、また、表現方法は実に様々です。そこで、この部分の詳細に関しては、後ほど独立した章で詳しく説明していくものとします。

ここでは、基本的なサンプルをいくつか紹介するにとどめておきます。

Sample302.sql:studentテーブルの、すべての列の情報を表示
SELECT * FROM student;

すでに述べたとおり、この方法により、studentテーブルのすべての内容を出力します。

Sample303.sql:② studentテーブルの、idと名前の列をすべて表示
SELECT id,name FROM student;

このSQL文の実行結果は以下のようになります。(図3-2.)

図3-2.Sample303.sqlの内容
Sample303.sqlの内容

このように、SELECT文を用いれば、テーブルの全体、もしくは一部を切り取って出力することが可能です。