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

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全機能バイブルposted with ヨメレバ

鈴木啓修/山田奈緒子 技術評論社 2015年01月

Amazon

Kindle

楽天ブックス

7net

honto

e-hon

紀伊國屋書店

よかったらシェアしてね!
  • URLをコピーしました!
目次