sql >> Databasteknik >  >> RDS >> Mysql

Hur man infogar flera rader i MySQL

Ibland kan du behöva infoga flera rader med data i MySQL. MySQL låter dig ange flera rader med information med en enda fråga. I den här artikeln kommer vi att titta på hur man infogar flera rader i MySQL.


Hur man infogar flera rader i MySQL

Här är stegen för att infoga flera rader i MySQL. Det finns flera sätt att infoga flera rader i MySQL. Vi kommer att titta på var och en av dessa tillvägagångssätt en efter en.


Infoga flera rader med INSERT

Låt oss säga att du har följande tabell anställda(id, förnamn, efternamn) .

mysql> create table employees(id int,
       first_name varchar(255),
       last_name varchar(255));

Här är syntaxen för att infoga flera rader med hjälp av INSERT-satsen.

INSERT INTO table_name(column1, column2, ...),
    values(row1_value1, row1_value2,...),
          (row2_value1, row2_value2,...),
          ...

I ovanstående fråga måste du nämna ditt tabellnamn som du behöver infoga värden i. Därefter måste du ange värden för varje rad omgiven av runda parenteser "()" på ett kommaseparerat sätt.

Här är SQL-frågan för att infoga flera rader med information i anställda bord.

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 |
+------+------------+-----------+


Infoga flera rader från SELECT

Du kan också infoga flera rader med data i din tabell med hjälp av resultatet av en SELECT-fråga.

Här är SQL-frågesyntaxen för att kopiera data från en tabell till en annan med hjälp av INSERT INTO-satsen.

INSERT INTO table1 (column1, column2, ...)
select column1, column2, ...
from table2

I ovanstående fråga väljer vi kolumn1, kolumn2, … från tabell2 och infogar dem i tabell1.

Observera att kolumnerna som används i INSERT INTO-satsen och SELECT-satsen måste ha samma namn och ordning. Annars får du ett felmeddelande.

Här är SQL-frågan för att kopiera data från anställda tabell till anställda2 bord.

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       |
+------+------------+-----------+


Infoga flera rader utan dubbletter

Om du automatiskt vill undvika dubbletter av poster när du infogar flera värden i din tabell, använd IGNORE nyckelordet efter INSERT i din SQL-fråga.

Detta fungerar dock bara för tabeller som har en primärnyckel.

Här är ett exempel,

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       |
+----+------------+-----------+

Som du kan se infogades bara en rad istället för två dubbletter.

Ubiq gör det enkelt att visualisera data och övervaka dem i realtidsinstrumentpaneler. Prova Ubiq gratis.

  1. 2 sätt att lista alla funktioner i MySQL

  2. Kan jag blanda MySQL API:er i PHP?

  3. Konvertera UTC millisekunder till DATETIME i SQL-server

  4. Hur man skapar användare i Oracle och tilldelar privilegier