MariaDB/MySQL

[MySQL/MariaDB] ”insert”文でデータ挿入

2018年9月4日

こんにちは!土門大貴(daikidomon)です。

MySQL/MariaDBのデータ挿入SQL、「insert」文について紹介します。

insert」文は、「update」、「delete」と同様にDML(Data Manipulation Language )と呼ばれ、データを操作するSQL文になります。

基本構文:insert into ~ value

insert 文の基本構文は以下になります。
insert into <テーブル名> (
<列名①>,
<列名②>,
<列名③>...
) values (
<列①の値>,
<列②の値>,
<列③の値>...
)
下がサンプルのinsert文になります。

MariaDB [test001]> select *
-> from EMPLOYEE;
Empty set (0.00 sec)

MariaDB [test001]> insert into EMPLOYEE (
-> EMPNO,
-> NAME,
-> SALARY
-> ) values (
-> '00001',
-> 'TARO TANAKA',
-> 300000
-> );
Query OK, 1 row affected (0.00 sec)

MariaDB [test001]> commit;
Query OK, 0 rows affected (0.00 sec)

MariaDB [test001]> select *
-> from EMPLOYEE;
+-------+-------------+--------+
| EMPNO | NAME | SALARY |
+-------+-------------+--------+
| 00001 | TARO TANAKA | 300000 |
+-------+-------------+--------+
1 row in set (0.00 sec)
またinsert文は全カラムを指定した場合、列名を省略して記載することができます。
insert into <テーブル名>
values (
<列①の値>,
<列②の値>,
<列③の値>...
)
下が全カラムを指定した場合のサンプルinsert文になります。
insert into EMPLOYEE
values (
'00001',
'TARO TANAKA',
300000
);

表データをまとめて挿入:insert into ~ select

表データをまとめてinsertすることが出来るのが「insert into ~ select」で実施することができます。
insert into <テーブル名>
(<列名>,
<列名>,
<列名>...)
select
<列名>,
<列名>,
<列名>...
from <ソースのテーブル名>;
以下がサンプルになります。

列名を省略してもinsertすることも出来ます。

MariaDB [test001]> create table EMPLOYEE_BK (
-> EMPNO varchar(10),
-> NAME varchar(20),
-> SALARY int
-> );
Query OK, 0 rows affected (0.00 sec)

MariaDB [test001]> select *
-> from EMPLOYEE;
+-------+---------------+--------+
| EMPNO | NAME | SALARY |
+-------+---------------+--------+
| 00001 | TARO TANAKA | 300000 |
| 00002 | HANAKO YAMADA | 800000 |
| 00003 | ICHIRO HANAKO | 500000 |
+-------+---------------+--------+
3 rows in set (0.00 sec)

MariaDB [test001]> insert into EMPLOYEE_BK(EMPNO, NAME, SALARY)
-> select EMPNO, NAME, SALARY from EMPLOYEE;
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0

MariaDB [test001]>
MariaDB [test001]> select *
-> from EMPLOYEE_BK;
+-------+---------------+--------+
| EMPNO | NAME | SALARY |
+-------+---------------+--------+
| 00001 | TARO TANAKA | 300000 |
| 00002 | HANAKO YAMADA | 800000 |
| 00003 | ICHIRO HANAKO | 500000 |
+-------+---------------+--------+
3 rows in set (0.00 sec)

MariaDB [test001]> insert into EMPLOYEE_BK
-> select * from EMPLOYEE;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

MariaDB [test001]>
MariaDB [test001]> select *
-> from EMPLOYEE_BK;
+-------+---------------+--------+
| EMPNO | NAME | SALARY |
+-------+---------------+--------+
| 00001 | TARO TANAKA | 300000 |
| 00002 | HANAKO YAMADA | 800000 |
| 00003 | ICHIRO HANAKO | 500000 |
| 00001 | TARO TANAKA | 300000 |
| 00002 | HANAKO YAMADA | 800000 |
| 00003 | ICHIRO HANAKO | 500000 |
+-------+---------------+--------+
6 rows in set (0.00 sec)
 

関連記事

-MariaDB/MySQL

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.