2php : MySQLのデータの格納(INSERT)

 

データの格納(INSERT)

MySQLのテーブルにデータを格納するにはINSERT文を使います。

INSERT INTO [テーブル名] (フィールド名A,フィールド名B....) VALUES (フィールドの順番で格納するデータ)

テーブル名の次に指定するフィールド名は、格納するデータの順番がフィールドの順番通りであれば、省略することも可能です。

テーブルを新規に作成して、データを格納してみましょう。

mysql> CREATE TABLE userinfo
    -> (
    -> id INT UNSIGNED AUTO_INCREMENT NOT NULL,
    -> name VARCHAR(100) NOT NULL,
    -> email VARCHAR(100) NOT NULL,
    -> city VARCHAR(50) NOT NULL,
    -> PRIMARY KEY(id)
    -> );
Query OK, 0 rows affected (0.00 sec)

DESCRIBE文で、userinfoの情報を確認します。

mysql> DESCRIBE userinfo;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned |      | PRI | NULL    | auto_increment |
| name  | varchar(100)     |      |     |         |                |
| email | varchar(100)     |      |     |         |                |
| city  | varchar(50)      |      |     |         |                |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

AUTO_INCREMENT属性を指定したidのフィールドにはNULLを設定することで自動的に1ずつ増加数字を指定することができます。

INSERT文で、userinfoにデータを格納します。

mysql> INSERT INTO userinfo
    -> VALUES(NULL,'tamakichi','tamakichi@beam.tld','Tokyo');
Query OK, 1 row affected (0.00 sec)

VALUES()の()の中には、フィールド毎にカンマ『,』で区切り、文字型のデータは『''(シングルクォーテーション)』で囲んで格納します。数字型のデータの場合はシングルクォーテーションで囲む必要はありません。

上の例では、VALUES()の中にフィールドの順番通り、データを格納しているので、テーブルのフィールドを指定する必要はありません。指定する場合は以下の様にします。

mysql> INSERT INTO userinfo (id,city,email,name)
    -> VALUES(NULL,'Tokyo','hiropon@beam.ltd','HIROPON');
Query OK, 1 row affected (0.00 sec)