Jak vložit více záznamů v SQL

Jak vložit více záznamů v SQL

SQL (Structured Query Language) je mocný jazyk pro práci s databázemi. Umožňuje nám vytvářet, číst, aktualizovat a odstraňovat data z databází. Vložení více záznamů do databáze SQL je běžnou operací, kterou můžeme provést pomocí příkazu INSERT.

Vkládání více záznamů pomocí příkazu INSERT

Základní syntaxe pro vložení více záznamů pomocí příkazu INSERT je následující:

sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...),
(value3, value4, ...),
...;

kde:

* table_name je název tabulky, do které chceme vložit záznamy.
* column1, column2, … jsou názvy sloupců, do kterých chceme vložit data.
* value1, value2, … jsou hodnoty, které chceme vložit do odpovídajících sloupců.
* (...) uzavírá sadu sloupců a hodnot pro jeden záznam.
* Konstrukce (, ...) uzavírá všechny záznamy, které chceme vložit.

Příklad vložení více záznamů

Předpokládejme, že máme tabulku s názvem students s následující strukturou:

sql
CREATE TABLE students (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id)
);

Chcete-li do této tabulky vložit více záznamů, můžeme použít následující příkaz INSERT:

sql
INSERT INTO students (name, age)
VALUES ('John Doe', 21),
('Jane Doe', 22),
('Peter Parker', 23);

Tento příkaz vloží tři záznamy do tabulky students. První záznam má jméno „John Doe“ a věk 21, druhý záznam má jméno „Jane Doe“ a věk 22 a třetí záznam má jméno „Peter Parker“ a věk 23.

Další možnosti pro vložení více záznamů

Kromě použití příkazu INSERT existují i ​​další způsoby, jak vložit více záznamů do databáze SQL.

Použití příkazu INSERT … SELECT

Příkaz INSERT ... SELECT nám umožňuje vložit záznamy z jedné tabulky do jiné. Syntaxe je následující:

sql
INSERT INTO table_name (column1, column2, ...)
SELECT column1, column2, ...
FROM source_table
WHERE condition;

kde:

* table_name je název cílové tabulky, do které chceme vložit záznamy.
* column1, column2, … jsou názvy sloupců, do kterých chceme vložit data.
* source_table je název zdrojové tabulky, ze které chceme vybrat data.
* condition je volitelná podmínka, která určuje, které záznamy se mají vybrat.

Použití příkazu INSERT … VALUES SELECT

Příkaz INSERT ... VALUES SELECT je kombinací příkazů INSERT a VALUES SELECT. Syntaxe je následující:

sql
INSERT INTO table_name (column1, column2, ...)
VALUES (SELECT column1, column2, ... FROM source_table);

kde:

* table_name je název cílové tabulky, do které chceme vložit záznamy.
* column1, column2, … jsou názvy sloupců, do kterých chceme vložit data.
* source_table je název zdrojové tabulky, ze které chceme vybrat data.

Závěr

Vložení více záznamů do databáze SQL je důležitá operace, kterou lze provést pomocí příkazu INSERT. Existují různé způsoby, jak toho dosáhnout, včetně použití příkazů INSERT … SELECT a INSERT … VALUES SELECT. Výběr nejlepší metody závisí na konkrétních požadavcích.

Často kladené dotazy (FAQ)

1. Jaké jsou různé způsoby vložení více záznamů do databáze SQL?

Existují tři hlavní způsoby vložení více záznamů do databáze SQL:

* Použití příkazu INSERT
* Použití příkazu INSERT … SELECT
* Použití příkazu INSERT … VALUES SELECT

2. Jaký je rozdíl mezi příkazy INSERT … SELECT a INSERT … VALUES SELECT?

Příkaz INSERT … SELECT vybírá data z jiné tabulky a vkládá je do cílové tabulky. Naproti tomu příkaz INSERT … VALUES SELECT vybírá data z jiné tabulky a vkládá je do cílové tabulky pomocí klíčového slova VALUES.

3. Mohu do stejného příkazu INSERT vložit záznamy do více tabulek?

Ano, je možné vložit záznamy do více tabulek pomocí konstrukce INSERT … SELECT. Například:

sql
INSERT INTO table1 (column1, column2)
VALUES (value1, value2),
(value3, value4);

INSERT INTO table2 (column1, column2)
VALUES (value5, value6),
(value7, value8);

4. Existuje limit počtu záznamů, které mohu vložit do jedné tabulky pomocí příkazu INSERT?

Ne, není žádný limit na počet záznamů, které můžete vložit do jedné tabulky pomocí příkazu INSERT.

5. Co když chci aktualizovat některé záznamy místo jejich vložení?

Pro aktualizaci stávajících záznamů můžete použít příkaz UPDATE. Syntaxe příkazu UPDATE je následující:

sql
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

6. Jaký je rozdíl mezi klíčovými slovy INSERT IGNORE a INSERT REPLACE?

Klíčové slovo INSERT IGNORE vloží záznam pouze v případě, že neexistuje žádný duplicitní záznam. Klíčové slovo INSERT REPLACE přepsá všechny existující záznamy, které mají stejný klíč.

7. Mohu vložit záznamy do tabulky, která již obsahuje primární klíč?

Ano, můžete vložit záznamy do tabulky, která již obsahuje primární klíč. Hodnota primárního klíče bude automaticky vygenerována databází.

8. Jak mohu vložit NULL hodnoty do sloupců tabulky?

Pro vložení NULL hodnoty do sloupce můžete použít klíčové slovo NULL. Například:

sql
INSERT INTO table_name (column1, column2)
VALUES (value1, NULL);