Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como inserir várias linhas no MySQL


Às vezes você pode precisar inserir várias linhas de dados no MySQL. O MySQL permite que você insira várias linhas de informações com uma única consulta. Neste artigo, veremos como inserir várias linhas no MySQL.



Como inserir várias linhas no MySQL


Aqui estão as etapas para inserir várias linhas no MySQL. Existem várias maneiras de inserir várias linhas no MySQL. Veremos cada uma dessas abordagens uma a uma.



Inserir várias linhas usando INSERT


Digamos que você tenha a seguinte tabela employees(id, first_name, last_name) .
mysql> create table employees(id int,
       first_name varchar(255),
       last_name varchar(255));

Aqui está a sintaxe para inserir várias linhas usando a instrução INSERT.
INSERT INTO table_name(column1, column2, ...),
    values(row1_value1, row1_value2,...),
          (row2_value1, row2_value2,...),
          ...

Na consulta acima, você precisa mencionar o nome da tabela na qual precisa inserir valores. Em seguida, você precisa inserir os valores de cada linha entre colchetes '()' de maneira separada por vírgula.

Aqui está a consulta SQL para inserir várias linhas de informações em funcionários tabela.
mysql> insert into employees(id, first_name, last_name)
values(1,'John','Doe'),
(2,'Jane','Doe');

mysql> select * from employees;
+------+------------+-----------+
| id | first_name | last_name |
+------+------------+-----------+
| 1 | John | Doe |
| 2 | Jane | Doe |
+------+------------+-----------+



Inserir várias linhas de SELECT


Você também pode inserir várias linhas de dados em sua tabela usando o resultado de uma consulta SELECT.

Aqui está a sintaxe de consulta SQL para copiar dados de uma tabela para outra usando a instrução INSERT INTO.
INSERT INTO table1 (column1, column2, ...)
select column1, column2, ...
from table2

Na consulta acima, selecionamos coluna1, coluna2, … da tabela2 e os inserimos na tabela1.

Observe que as colunas usadas na instrução INSERT INTO e na instrução SELECT devem ter o mesmo nome e ordem. Caso contrário, você receberá um erro.

Aqui está a consulta SQL para copiar dados de funcionários tabela para funcionários2 tabela.
mysql> insert into employees2(id, first_name, last_name)
       select id, first_name, last_name
       from employees;

mysql> select * from employees2;
+------+------------+-----------+
| id   | first_name | last_name |
+------+------------+-----------+
|    1 | John       | Doe       |
|    2 | Jane       | Doe       |
+------+------------+-----------+



Inserir várias linhas sem duplicar


Se você deseja evitar registros duplicados automaticamente ao inserir vários valores em sua tabela, use a palavra-chave IGNORE após INSERT em sua consulta SQL.

No entanto, isso funciona apenas para tabelas que possuem uma chave primária.

Aqui está um exemplo,
mysql> create table employees(id int primary key,
       first_name varchar(255),
       last_name varchar(255));

mysql> insert ignore into employees(id, first_name, last_name)
            values(1,'John','Doe'),
            (1,'John','Doe');

mysql> select * from employees;
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
|  1 | John       | Doe       |
+----+------------+-----------+

Como você pode ver, apenas 1 linha foi inserida em vez de duas linhas duplicadas.

O Ubiq facilita a visualização de dados e o monitoramento em painéis em tempo real. Experimente o Ubiq gratuitamente.