MySQL INSERT INTO Query: Jak přidat řádek do tabulky (příklad)
⚡ Chytré shrnutí
MySQL INSERT INTO Query přidává do tabulky nové řádky, a to buď explicitním pojmenováním cílových sloupců, nebo zadáním hodnoty pro každý sloupec. Správné uvedení řetězců, čísel a dat v uvozovkách určuje, zda uložená data přežijí beze změny.

Co je INSERT INTO?
VLOŽTE DO se používá k ukládání dat do tabulek. Příkaz INSERT vytvoří v tabulce nový řádek pro ukládání dat. Data jsou obvykle dodávána aplikačními programy, které běží nad databází.
Základní syntaxe
Podívejme se na základní syntaxi INSERT INTO MySQL příkaz:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
ZDE
- INSERT INTO `název_tabulky` je příkaz, který říká MySQL serveru přidat nový řádek do tabulky s názvem `název_tabulky.`
- (sloupec_1, sloupec_2,…) určuje sloupce, které mají být aktualizovány v novém MySQL řádek
- VALUES (value_1, value_2,…) určuje hodnoty, které mají být přidány do nového řádku
Při zadávání hodnot dat, které mají být vloženy do nové tabulky, je třeba vzít v úvahu následující:
- Datové typy řetězce – všechny hodnoty řetězce by měly být uzavřeny v jednoduchých uvozovkách.
- Číselné datové typy – všechny číselné hodnoty by měly být zadávány přímo bez uzavírání do jednoduchých nebo dvojitých uvozovek.
- Datové typy data – hodnoty data uzavřete do jednoduchých uvozovek ve formátu 'RRRR-MM-DD'.
Vkládání více řádků najednou
Jeden příkaz INSERT může obsahovat několik řádků. Jednotlivé sady hodnot oddělte čárkou. Jeden příkaz je rychlejší než mnoho, protože index se aktualizuje jednou.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Příklad dotazu INSERT INTO
Předpokládejme, že máme následující seznam nových členů knihovny, které je třeba přidat do databáze.
| Celé jméno | Datum narození | rod | Fyzická adresa | Poštovní adresa | Kontaktní číslo | Emailová adresa |
|---|---|---|---|---|---|---|
| Leonard Hofstadter | Muž | Woodcrest | 0845738767 | |||
| Sheldon Cooper | Muž | Woodcrest | 0976736763 | |||
| Rajesh Koothrappali | Muž | Woodcrest | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Muž | Woodcrest | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Muž | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Vkládejme data po řádcích, počínaje Leonardem Hofstadterem. S kontaktním číslem budeme zacházet jako s číselným datovým typem a nebudeme ho uzavírat do jednoduchých uvozovek.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Spuštěním výše uvedeného skriptu se z Leonardova kontaktního čísla odstraní 0, protože hodnota je považována za číselnou a úvodní nula není významná.
Aby se těmto problémům předešlo, musí být hodnota uzavřena v jednoduchých uvozovkách, jak je znázorněno níže.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Tip: Telefonní čísla, PSČ a podobné identifikátory ukládejte do textového sloupce, například VARCHAR. Číselné sloupce nemohou mít úvodní nulu.
Změna pořadí sloupců
Změna pořadí sloupců nemá žádný vliv na dotaz INSERT v MySQL, pokud byly správné hodnoty namapovány na správné sloupce. Níže uvedený dotaz tento bod demonstruje.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Výše uvedené dotazy přeskočily sloupec data narození. Ve výchozím stavu, MySQL Vloží hodnoty NULL do sloupců, které jsou v dotazu INSERT vynechány.
Nyní vložme záznam pro Leslie, který má zadané datum narození. Datum musí být uzavřeno v jednoduchých uvozovkách ve formátu 'RRRR-MM-DD'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Vynechání seznamu sloupců
Všechny výše uvedené dotazy pojmenovaly sloupce a namapovaly je na hodnoty. Pokud zadáme hodnoty pro VŠECHNY sloupce v tabulce, lze seznam sloupců z tabulky vynechat. MySQL vložit dotaz.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Pojďme nyní použít příkaz SELECT zobrazit všechny řádky v tabulce členů.
SELECT * FROM `members`;
| členské číslo | celá_ jména | rod | datum narození | fyzická adresa | poštovní_ adresa | číslo_kontaktu | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jonesová | Žena | 21-07-1980 | První ulice pozemek č. 4 | Soukromá taška | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jonesová | Žena | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Muž | 12-07-1989 | 3. ulice 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williamsová | Žena | 14-02-1984 | 2. ulice 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Muž | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Muž | NULL | Woodcrest | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Muž | NULL | Woodcrest | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | Muž | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | Muž | 24-08-1981 | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Všimněte si, že kontaktní číslo Leonarda Hofstadtera ztratilo úvodní nulu, přesně jak bylo předpovězeno. Uvedená čísla si ji zachovala.
Vkládání do tabulky z jiné tabulky
Příkaz INSERT lze také použít k vložení dat do tabulky z jiné tabulky. Základní syntaxe je uvedena níže.
INSERT INTO table_1 SELECT * FROM table_2;
Nyní vytvoříme fiktivní tabulku pro kategorie filmů s názvem categories_archive. Skript níže vytvoří tabulku.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Spusťte výše uvedený skript pro vytvoření tabulky. Nyní vložme všechny řádky z tabulky kategorií do tabulky archivu kategorií.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Aby skript fungoval, musí být struktury tabulek stejné. Robustnější skript mapuje názvy sloupců v cílové tabulce na názvy sloupců v tabulce obsahující data, jak je znázorněno níže.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Spuštění níže uvedeného dotazu SELECT dává následující výsledky.
SELECT * FROM `categories_archive`;
| category_id | category_name | poznámky |
|---|---|---|
| 1 | Komedie | Filmy s humorem |
| 2 | Romantický | Milostné příběhy |
| 3 | Úžasné | Příběhové starověké filmy |
| 4 | Hrůza | NULL |
| 5 | Sci-fi | NULL |
| 6 | Detektivka | NULL |
| 7 | Akce | NULL |
| 8 | Romantická komedie | NULL |
| 9 | Kreslené | NULL |
| 10 | Kreslené | NULL |
Příklad PHP: Vložit do MySQL Tabulka
K provedení se používá funkce mysqli_query SQL dotazy z PHP. Spouští příkazy Insert, Select, Update a Delete stejným způsobem a má následující syntaxi.
mysqli_query($db_handle,$query);
TADY,
- „mysqli_query(…)“ je funkce, která provádí dotazy SQL.
- „$query“ je SQL dotaz, který má být proveden.
- „$db_handle“ je odkaz na připojení k serveru vrácený funkcí mysqli_connect.
Příklad
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO addkeyworddata(link, keyword) VALUES ('https://www.guru99.com/','1000')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully" . '<br>'; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
