データ操作(SQL文)データ挿入(INSERT文)
レコード挿入(カラム名とデータを指定)
unknown
INSERT INTO テーブル名 (カラム名1[,カラム名2, ... ]) VALUES (値1[,値2, ... ]);
カラム名を指定して、そのカラムに対応する値を挿入します。
複数のデータを指定する場合は、カンマ区切りで指定します。
# MySQLログイン、データベース選択 C:\mysql\bin> mysql -u root -p db_User Enter Enter password: ***** Enter Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6387 to server version: 4.0.26-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. # tbl_Customerテーブルの構造 mysql> DESCRIBE tbl_CustomerA; Enter +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | UserID | varchar(4) | | PRI | | | | FirstName | varchar(32) | | | | | | LastName | varchar(32) | | | | | | Sex | char(2) | YES | | NULL | | | Age | int(11) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) # カラム名とデータを指定してレコード挿入 # テーブルtbl_CustomerAに4件のデータを挿入 mysql> INSERT INTO tbl_CustomerA (UserID, FirstName, LastName, Sex) Enter -> ('U001','花子','鈴木','f',21), Enter -> ('U002','太郎','田中','m',30), Enter -> ('U003','一郎','鈴木','m',45), Enter -> ('U004','萌子','山口','f',18); Enter Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 # データが挿入されたか確認 mysql> SELECT * FROM tbl_CustomerA; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U001 | 花子 | 鈴木 | f | 21 | | U002 | 太郎 | 田中 | m | 30 | | U003 | 一郎 | 鈴木 | m | 45 | | U004 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) mysql>
レコード挿入(データのみ指定)
unknown
INSERT INTO テーブル名 VALUES (値1[, 値2, ...]);
カラム名を指定せず、テーブルのフィールド順にデータを挿入します。
# MySQLログイン、データベース選択 C:\mysql\bin> mysql -u root -p db_User Enter Enter password: ***** Enter Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6387 to server version: 4.0.26-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. # tbl_Customerテーブルの構造 mysql> DESCRIBE tbl_CustomerA; Enter +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | UserID | varchar(4) | | PRI | | | | FirstName | varchar(32) | | | | | | LastName | varchar(32) | | | | | | Sex | char(2) | YES | | NULL | | | Age | int(11) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) # データのみ指定してレコード挿入(テーブルのフィールド順) # テーブルtbl_CustomerAに4件のデータを挿入 mysql> INSERT INTO tbl_CustomerA VALUES Enter -> ('U001','花子','鈴木','f',21), Enter -> ('U002','太郎','田中','m',30), Enter -> ('U003','一郎','鈴木','m',45), Enter -> ('U004','萌子','山口','f',18); Enter Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 # データが挿入されたか確認 mysql> SELECT * FROM tbl_CustomerA; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U001 | 花子 | 鈴木 | f | 21 | | U002 | 太郎 | 田中 | m | 30 | | U003 | 一郎 | 鈴木 | m | 45 | | U004 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) mysql>
SELECT文の結果を挿入
unknown
INSERT INTO テーブル名(フィールド名) VALUES (値) SELECT 文;
# テーブルtbl_CustomerAの中身確認 mysql> SELECT * FROM tbl_CustomerA; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U001 | 花子 | 鈴木 | f | 21 | | U002 | 太郎 | 田中 | m | 30 | ←このデータをtbl_CustomerBに挿入 | U003 | 一郎 | 鈴木 | m | 45 | | U004 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.01 sec) # テーブルtbl_CustomerBの中身確認 mysql> SELECT * FROM tbl_CustomerB; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | P001 | まなみ | 青山 | f | 43 | | P002 | 綾子 | 沢崎 | f | 36 | | P003 | 研二 | 羽山 | m | 45 | +--------+-----------+----------+------+------+ 3 rows in set (0.00 sec) # テーブルtbl_CustomerAのUserIDが'U002'のデータを # テーブルtbl_CustomerBに挿入 mysql> INSERT INTO tbl_CustomerB Enter -> SELECT * FROM tbl_CustomerA WHERE UserID='U002'; Enter Query OK, 1 row affected (0.39 sec) Records: 1 Duplicates: 0 Warnings: 0 # データが挿入されているかテーブルtbl_CustomerBの中身を確認 mysql> SELECT * FROM tbl_CustomerB; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | P001 | まなみ | 青山 | f | 43 | | P002 | 綾子 | 沢崎 | f | 36 | | P003 | 研二 | 羽山 | m | 45 | | U002 | 太郎 | 田中 | m | 30 | ←データ「挿入」 +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) mysql>
このページで使用しているサンプルデータ
unknown
サンプルデータ
### データベース(db_User)作成 CREATE DATABASE IF NOT EXISTS db_User; ###データベース選択 USE db_User; ### テーブル(tbl_CustomerA)作成 CREATE TABLE tbl_CustomerA( UserID VARCHAR(4) NOT NULL PRIMARY KEY, FirstName VARCHAR(32) NOT NULL, LastName VARCHAR(32) NOT NULL, Sex CHAR(2) DEFAULT NULL, Age INTEGER DEFAULT NULL ); # データ挿入 INSERT INTO tbl_CustomerA (UserID,FirstName,LastName,Sex,Age) VALUES ('U001','花子','鈴木','f',21), ('U002','太郎','田中','m',30), ('U003','一郎','鈴木','m',45), ('U004','萌子','山口','f',18); ### テーブル(tbl_CustomerB)作成 CREATE TABLE IF NOT EXISTS db_User.tbl_CustomerB( UserID VARCHAR(4) NOT NULL PRIMARY KEY, FirstName VARCHAR(32) NOT NULL, LastName VARCHAR(32) NOT NULL, Sex CHAR(2) DEFAULT NULL, Age INTEGER DEFAULT NULL ); # データ挿入 INSERT INTO tbl_CustomerB (UserID,FirstName,LastName,Sex,Age) VALUES ('P001','まなみ','青山','f',43), ('P002','綾子','沢崎','f',36), ('P003','研二','羽山','m',45);