MySQL INSERT INTO Query: Rij in tabel toevoegen (voorbeeld)

Inhoudsopgave:

Anonim

Wat is INSERT IN?

INSERT INTO wordt gebruikt om gegevens in de tabellen op te slaan. Het INSERT-commando maakt een nieuwe rij in de tabel om gegevens op te slaan. De gegevens worden meestal geleverd door applicatieprogramma's die bovenop de database draaien.

Basissyntaxis

Laten we eens kijken naar de basissyntaxis van het INSERT INTO MySQL-commando:

INVOEGEN IN `tabelnaam` (kolom_1, kolom_2,…) WAARDEN (waarde_1, waarde_2,…);

HIER

  • INSERT INTO `table_name` is het commando dat de MySQL-server vertelt 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 de nieuwe MySQL-rij
  • WAARDEN (waarde_1, waarde_2,…) specificeert de waarden die aan de nieuwe rij moeten worden toegevoegd

Bij het aanleveren van de datawaarden die in de nieuwe tabel moeten worden ingevoegd, dient met het volgende rekening te worden gehouden:

  • String-gegevenstypen - alle stringwaarden moeten tussen enkele aanhalingstekens staan.
  • Numerieke gegevenstypen: alle numerieke waarden moeten rechtstreeks worden opgegeven zonder ze tussen enkele of dubbele aanhalingstekens te plaatsen.
  • Datumgegevenstypen - plaats datumwaarden tussen enkele aanhalingstekens in de indeling 'JJJJ-MM-DD'.

Voorbeeld:

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-mailadres
Leonard Hofstadter Mannetje Woodcrest 0845738767
Sheldon Cooper Mannetje Woodcrest 0976736763
Rajesh Koothrappali Mannetje Fairview 0938867763
Leslie Winkle 14/02/1984 Mannetje 0987636553
Howard Wolowitz 24/08/1981 Mannetje South Park Postbus 4563 0987786553 Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.

Laten we de gegevens een voor een INVOEGEN. We beginnen met Leonard Hofstadter. We behandelen het contactnummer als een numeriek gegevenstype en zetten het nummer niet tussen enkele aanhalingstekens.

INVOEGEN IN `leden` ​​(` volledige_namen`, `geslacht`,` fysiek_adres`, `contactnummer`) WAARDEN ('Leonard Hofstadter', 'Man', 'Woodcrest', 0845738767);

Bij het uitvoeren van het bovenstaande script wordt de 0 van Leonard's contactnummer verwijderd. Dit komt doordat de waarde wordt behandeld als een numerieke waarde en de nul (0) aan het begin wordt verwijderd omdat deze niet significant is.

Om dergelijke problemen te voorkomen, moet de waarde tussen enkele aanhalingstekens worden geplaatst, zoals hieronder wordt weergegeven -

INVOEGEN IN `leden` ​​(` volledige_namen`, `geslacht`,` fysiek_adres`, `contactnummer`) WAARDEN ('Sheldon Cooper', 'Mannelijk', 'Woodcrest', '0976736763'); 

In het bovenstaande geval wordt nul (0) niet verwijderd

Het wijzigen van de volgorde van de kolommen heeft geen effect op de INSERT-query in MySQL zolang de juiste waarden zijn toegewezen aan de juiste kolommen.

De onderstaande vraag illustreert het bovenstaande punt.

INVOEGEN IN `leden` ​​(` contactnummer`, `geslacht`,` volledige_namen`, `fysiek_adres`) WAARDEN ('0938867763', 'Man', 'Rajesh Koothrappali', 'Woodcrest');

De bovenstaande zoekopdrachten hebben de geboortedatumkolom overgeslagen. MySQL zal standaard NULL-waarden invoegen in kolommen die worden weggelaten in de INSERT-query.

Laten we nu het record voor Leslie invoegen, waarin de geboortedatum is opgegeven. De datumwaarde moet tussen enkele aanhalingstekens worden geplaatst met de indeling 'JJJJ-MM-DD'.

INVOEGEN IN `leden` ​​(` volledige_namen`, `geboortedatum`,` geslacht`, `fysiek_adres`,` contactnummer`) WAARDEN ('Leslie Winkle', '1984-02-14', 'Mannelijk', 'Woodcrest', ' 0987636553 '); 

Alle bovenstaande query's specificeerden de kolommen en brachten ze in kaart met waarden in de MySQL-instructie insert. Als we waarden opgeven voor ALLE kolommen in de tabel, kunnen we de kolommen weglaten uit de MySQL-invoegquery.

Voorbeeld:-

INVOEGEN IN 'leden' WAARDEN (9, 'Howard Wolowitz', 'Male', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;

Laten we nu de SELECT-instructie gebruiken om alle rijen in de tabel van het lid te bekijken.

SELECT * FROM `members`; 
lidmaatschapsnummer volledige namen geslacht geboortedatum fysiek adres postadres contct_ nummer e-mail
1 Janet Jones Vrouw 21-07-1980 First Street Plot No 4 Privétas 0759253542 Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.
2 Janet Smith Jones Vrouw 23-06-1980 Melrose 123 NUL NUL Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.
3 Robert Phil Mannetje 12-07-1989 3e straat 34 NUL 12345 Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.
4 Gloria Williams Vrouw 14-02-1984 2e straat 23 NUL NUL NUL
5 Leonard Hofstadter Mannetje NUL Woodcrest NUL 845738767 NUL
6 Sheldon Cooper Mannetje NUL Woodcrest NUL 976736763 NUL
7 Rajesh Koothrappali Mannetje NUL Woodcrest NUL 938867763 NUL
8 Leslie Winkle Mannetje 14-02-1984 Woodcrest NUL 987636553 NUL
9 Howard Wolowitz Mannetje 24-08-1981 SouthPark Postbus 4563 987786553 Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.

Merk op dat het contactnummer voor Leonard Hofstadter de nul (0) van het contactnummer heeft laten vallen. De andere contactnummers hebben de nul (0) aan het begin niet laten vallen.

Invoegen in een tafel vanuit een andere tafel

De opdracht INSERT kan ook worden gebruikt om gegevens uit een andere tabel in een tabel in te voegen. De basissyntaxis is zoals hieronder weergegeven.

INSERT IN table_1 SELECT * FROM table_2; 

Laten we nu naar een praktisch voorbeeld kijken. We zullen een dummy-tabel maken voor filmcategorieën voor demonstratiedoeleinden. We noemen de nieuwe categorietabel categories_archive. Het onderstaande script maakt de tabel.

CREATE TABLE `categories_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) STANDAARD NULL,` opmerkingen` varchar (500) STANDAARD NULL, PRIMAIRE SLEUTEL (`categorie_id`)) 

Voer het bovenstaande script uit om de tabel te maken.

Laten we nu alle rijen uit de categorietabel invoegen in de categoriearchieftabel. Het onderstaande script helpt ons daarbij.

INVOEGEN IN `categorieën_archief` SELECTEER * UIT` categorieën`; 

Door het bovenstaande script uit te voeren, worden alle rijen van de categorietabel ingevoegd in de categoriearchieftabel. Merk op dat de tabelstructuren hetzelfde moeten zijn om het script te laten werken. Een robuuster script is een script dat de kolomnamen in de invoegtabel toewijst aan die in de tabel met de gegevens.

De onderstaande vraag toont het gebruik ervan.

INVOEGEN IN `categorieën_archief` (categorie_id, categorie_naam, opmerkingen) SELECTEER categorie_id, categorie_naam, opmerkingen VAN` categorieën`;

De SELECT-query uitvoeren

SELECTEER * UIT `categorieën_archief`

geeft de volgende resultaten hieronder weergegeven.

categorie ID categorie naam opmerkingen
1 Komedie Films met humor
2 Romantisch Liefdesverhalen
3 Episch Verhaalachtige films
4 Verschrikking NUL
5 Science fiction NUL
6 Thriller NUL
7 Actie NUL
8 Romantische komedie NUL
9 Tekenfilms NUL
10 Tekenfilms NUL

PHP-voorbeeld: invoegen in MySQL-tabel

De functie mysqli_query wordt gebruikt om SQL-query's uit te voeren.

De functie kan worden gebruikt om de volgende typen query's uit te voeren;

  • Invoegen
  • Selecteer
  • Bijwerken
  • verwijderen

Het heeft de volgende syntaxis.

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

"$ link_identifier" is optioneel, het kan worden gebruikt om de serververbindingslink door te geven

Voorbeeld

$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}

Overzicht

  • Het INSERT-commando wordt gebruikt om nieuwe gegevens aan een tabel toe te voegen. MySql zal een nieuwe rij toevoegen zodra de opdracht is uitgevoerd.
  • De datum- en tekenreekswaarden moeten tussen enkele aanhalingstekens staan.
  • De numerieke waarden hoeven niet tussen aanhalingstekens te staan.
  • De opdracht INSERT kan ook worden gebruikt om gegevens van de ene tabel in de andere in te voegen.