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.

  • ๐Ÿ“ฅ Kernsyntaxis: INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) maakt een nieuwe rij aan in de genoemde tabel.
  • ๐Ÿ”ค Citeerregel: Tekst- en datumwaarden moeten tussen enkele aanhalingstekens staan; numerieke waarden worden zonder aanhalingstekens aangeleverd.
  • 0๏ธโƒฃ Voorloopnulval: Een telefoonnummer zonder aanhalingstekens wordt als een getal gelezen, waardoor de voorloopnul stilzwijgend wordt weggelaten.
  • ๐Ÿ”€ Kolomvolgorde: De kolomvolgorde binnen de query is irrelevant, zolang elke waarde maar overeenkomt met de bijbehorende kolom.
  • ๏ธ Weggelaten kolommen: Kolommen die niet in de instructie worden genoemd, krijgen de waarde NULL of hun opgegeven standaardwaarde.
  • ๐Ÿ“‘ Van tafel naar tafel: INSERT INTO โ€ฆ SELECT kopieert rijen tussen tabellen wanneer de kolomstructuren overeenkomen.

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 email
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);
}

Veelgestelde vragen

MySQL wordt afgewezen met een foutmelding voor dubbele invoer. Gebruik INSERT IGNORE om de rij stilzwijgend over te slaan, of INSERT โ€ฆ ON DUPLICATE KEY UPDATE om de bestaande rij in plaats daarvan bij te werken.

Voer direct na de invoeging SELECT LAST_INSERT_ID() uit, of roep mysqli_insert_id($conn) aan in PHP. Deze functie retourneert de AUTO_INCREMENT-sleutel die is gegenereerd voor de meest recente rij op uw eigen verbinding.

Voeg nooit gebruikersinvoer samen met de queryreeks. Gebruik voorbereide statements met gebonden parameters, zodat waarden afzonderlijk van de queryreeks worden verzonden. SQL en kunnen niet als commando's worden uitgevoerd.

Ja. AI-assistenten zetten spreadsheets of eenvoudige beschrijvingen om in INSERT-instructies, en MySQL Werkbank Je kunt ze uitvoeren. Controleer de kolomvolgorde en de aanhalingstekens, want een model kan het schema raden.

Voeg het eerst toe aan een ontwikkelingskopie. Door AI gegenereerde rijen kunnen vreemde sleutels verbreken, de maximale kolomlengte overschrijden of ongeldige datums genereren. Voer de batch uit in een transactie, zodat deze kan worden teruggedraaid.

Vat dit bericht samen met: