MySQL INSERT INTO Query: rij toevoegen aan tabel (voorbeeld)
โก Slimme samenvatting
MySQL Met een INSERT INTO-query worden nieuwe rijen aan een tabel toegevoegd, door de doelkolommen expliciet te benoemen of door voor elke kolom een โโwaarde op te geven. Correcte aanhalingstekens bij tekenreeksen, getallen en datums bepalen of de opgeslagen gegevens intact blijven.

Wat is INSERT INTO?
INVOEGEN De INSERT-opdracht wordt gebruikt om gegevens in tabellen op te slaan. Met de INSERT-opdracht wordt een nieuwe rij in de tabel aangemaakt om de gegevens op te slaan. De gegevens worden meestal aangeleverd door applicatieprogramma's die bovenop de database draaien.
Basissyntaxis
Laten we eens kijken naar de basissyntaxis van INSERT INTO MySQL opdracht:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
HIER
- INSERT INTO `tabelnaam` is het commando dat vertelt MySQL server om een โโnieuwe rij toe te voegen aan een tabel met de naam `table_name.`
- (column_1,column_2,โฆ) specificeert de kolommen die moeten worden bijgewerkt in het nieuwe bestand MySQL rij
- VALUES (waarde_1,waarde_2,โฆ) specificeert de waarden die aan de nieuwe rij moeten worden toegevoegd
Bij het opgeven van de datavaarden die in de nieuwe tabel moeten worden ingevoegd, moet u rekening houden met het volgende:
- String-gegevenstypen โ alle stringwaarden moeten tussen enkele aanhalingstekens staan.
- Numerieke gegevenstypen โ alle numerieke waarden moeten direct worden ingevoerd, zonder ze tussen enkele of dubbele aanhalingstekens te plaatsen.
- Datumgegevenstypen โ plaats datumwaarden tussen enkele aanhalingstekens in het formaat 'JJJJ-MM-DD'.
Meerdere rijen tegelijk invoegen
Een enkele INSERT-instructie kan meerdere rijen bevatten. Scheid elke set waarden met een komma. Eรฉn instructie is sneller dan meerdere, omdat de index slechts รฉรฉn keer wordt bijgewerkt.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Voorbeeld van een INSERT INTO-query
Stel dat we de volgende lijst hebben met nieuwe bibliotheekleden die aan de database moeten worden toegevoegd.
| Volledige namen | Geboortedatum | geslacht | Fysiek adres | postadres | Contact nummer | E-mail adres |
|---|---|---|---|---|---|---|
| Leonard Hofstadter | Mannen | Houthaantje | 0845738767 | |||
| Sheldon Cooper | Mannen | Houthaantje | 0976736763 | |||
| Rajesh Koothrappali | Mannen | Houthaantje | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Mannen | Houthaantje | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Mannen | South Park | P.O. Box 4563 | 0987786553 | lwolowitz@email.me |
Laten we de gegevens rij voor rij invoegen, te beginnen met Leonard Hofstadter. We behandelen het contactnummer als een numeriek gegevenstype en plaatsen het nummer niet tussen enkele aanhalingstekens.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Door het bovenstaande script uit te voeren, wordt de 0 uit Leonards contactnummer verwijderd, omdat de waarde als numeriek wordt beschouwd en een voorloopnul niet significant is.
Om dergelijke problemen te voorkomen, moet de waarde tussen enkele aanhalingstekens worden geplaatst, zoals hieronder weergegeven.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
โ ๏ธ Tip: Sla telefoonnummers, postcodes en vergelijkbare identificatiegegevens op in een tekstkolom, bijvoorbeeld van het type VARCHAR. Numerieke kolommen mogen geen voorloopnul bevatten.
De kolomvolgorde wijzigen
Het wijzigen van de volgorde van de kolommen heeft geen effect op de INSERT-query in MySQLmits de juiste waarden aan de juiste kolommen zijn toegewezen. De onderstaande query illustreert dit punt.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Bij de bovenstaande zoekopdrachten is de kolom geboortedatum overgeslagen. Standaard, MySQL Voegt NULL-waarden in kolommen in die niet in de INSERT-query zijn opgenomen.
Laten we nu de gegevens voor Leslie invoegen, inclusief de geboortedatum. De datum moet tussen enkele aanhalingstekens staan โโin het formaat 'JJJJ-MM-DD'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
De kolomlijst weglaten
Alle bovenstaande query's hebben de kolommen benoemd en aan waarden gekoppeld. Als we waarden opgeven voor ALLE kolommen in de tabel, kan de kolomlijst worden weggelaten. MySQL vraag invoegen.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Laten we nu de SELECT-instructie om alle rijen in de ledentabel te bekijken.
SELECT * FROM `members`;
| lidmaatschapsnummer | volledige namen | geslacht | geboortedatum | fysiek adres | postadres | contact_nummer | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Vrouwen | 21-07-1980 | Eerste straatkavel nr. 4 | Privรฉ tas | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smit Jones | Vrouwen | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Fil | Mannen | 12-07-1989 | 3e Straat 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Vrouwen | 14-02-1984 | 2e Straat 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Mannen | NULL | Houthaantje | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Mannen | NULL | Houthaantje | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Mannen | NULL | Houthaantje | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | Mannen | 14-02-1984 | Houthaantje | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | Mannen | 24-08-1981 | South Park | P.O. Box 4563 | 0987786553 | lwolowitz@email.me |
Merk op dat het contactnummer van Leonard Hofstadter de voorloopnul heeft verloren, precies zoals voorspeld. De geciteerde nummers behouden deze wel.
Invoegen in een tabel vanuit een andere tabel
Het INSERT-commando kan ook worden gebruikt om gegevens uit een andere tabel in een tabel in te voegen. De basissyntaxis is zoals hieronder weergegeven.
INSERT INTO table_1 SELECT * FROM table_2;
We gaan nu een dummytabel aanmaken voor filmcategorieรซn, genaamd categories_archive. Het onderstaande script is hiervoor bedoeld. maakt de tabel.
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`))
Voer het bovenstaande script uit om de tabel te maken. Laten we nu alle rijen uit de categorieรซntabel invoegen in de archieftabel met categorieรซn.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
De tabelstructuren moeten hetzelfde zijn om het script te laten werken. Een robuuster script koppelt de kolomnamen in de doeltabel aan de kolomnamen in de tabel met de gegevens, zoals hieronder weergegeven.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Het uitvoeren van de onderstaande SELECT-query levert de volgende resultaten op.
SELECT * FROM `categories_archive`;
| categorie ID | category_name | opmerkingen |
|---|---|---|
| 1 | Komedie | Films met humor |
| 2 | Romantiek | Liefdesverhalen |
| 3 | episch | Verhaal-historische films |
| 4 | Verschrikking | NULL |
| 5 | Science Fiction | NULL |
| 6 | Thriller | NULL |
| 7 | Actie | NULL |
| 8 | Romantische komedie | NULL |
| 9 | cartoons | NULL |
| 10 | cartoons | NULL |
PHP-voorbeeld: invoegen in MySQL tafel
De mysqli_query-functie wordt gebruikt om uit te voeren SQL Het voert query's uit vanuit PHP. Het voert INSERT-, SELECT-, UPDATE- en DELETE-instructies uit en heeft de volgende syntax.
mysqli_query($db_handle,$query);
HIER,
- โmysqli_query(โฆ)โ is de functie die de SQL-queryโs uitvoert.
- โ$queryโ is de SQL-query die moet worden uitgevoerd.
- โ$db_handleโ is de serververbindingslink die wordt geretourneerd door mysqli_connect.
Voorbeeld
$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); }
