sql >> Database teknologi >  >> RDS >> Mysql

Sådan indsætter du flere rækker i MySQL

Nogle gange skal du muligvis indsætte flere rækker af data i MySQL. MySQL giver dig mulighed for at indtaste flere rækker af information med en enkelt forespørgsel. I denne artikel vil vi se på, hvordan du indsætter flere rækker i MySQL.


Sådan indsætter du flere rækker i MySQL

Her er trinene til at indsætte flere rækker i MySQL. Der er flere måder at indsætte flere rækker i MySQL. Vi vil se på hver af disse tilgange én efter én.


Indsæt flere rækker ved hjælp af INSERT

Lad os sige, at du har følgende tabel medarbejdere(id, fornavn, efternavn) .

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

Her er syntaksen til at indsætte flere rækker ved hjælp af INSERT-sætning.

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

I ovenstående forespørgsel skal du nævne dit tabelnavn, som du skal indsætte værdier i. Derefter skal du indtaste værdier for hver række omgivet af runde parenteser '()' på en kommasepareret måde.

Her er SQL-forespørgslen til at indsætte flere rækker med information i medarbejdere tabel.

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


Indsæt flere rækker fra SELECT

Du kan også indsætte flere rækker af data i din tabel ved hjælp af resultatet af en SELECT-forespørgsel.

Her er SQL-forespørgselssyntaksen til at kopiere data fra en tabel til en anden ved hjælp af INSERT INTO-sætning.

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

I ovenstående forespørgsel vælger vi kolonne1, kolonne2, … fra tabel2 og indsætter dem i tabel1.

Bemærk venligst, at kolonnerne, der bruges i INSERT INTO-sætningen og SELECT-sætningen, skal have samme navn og rækkefølge. Ellers får du en fejl.

Her er SQL-forespørgslen til at kopiere data fra medarbejdere tabel til medarbejdere2 tabel.

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


Indsæt flere rækker uden duplikat

Hvis du automatisk vil undgå duplikerede poster, når du indsætter flere værdier i din tabel, skal du bruge IGNORE nøgleord efter INSERT i din SQL-forespørgsel.

Dette virker dog kun for tabeller, der har en primær nøgle.

Her er et eksempel,

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, blev der kun indsat 1 række i stedet for to duplikerede rækker.

Ubiq gør det nemt at visualisere data og overvåge dem i dashboards i realtid. Prøv Ubiq gratis.

  1. Fuldtekstsøgning siden PostgreSQL 8.3

  2. ORA-00257:arkiveringsfejl. Tilslut kun internt, indtil det frigøres.

  3. Eksporter MySQL-data til Excel i PHP

  4. Hvordan inkluderes det samlede antal returnerede rækker i resultatsættet fra SELECT T-SQL-kommandoen?