MySQL INSERT INTO Query: Sådan tilføjes række i tabel (eksempel)

Indholdsfortegnelse:

Anonim

Hvad er INDSÆT I?

INSERT INTO bruges til at gemme data i tabellerne. INSERT-kommandoen opretter en ny række i tabellen til lagring af data. Dataene leveres normalt af applikationsprogrammer, der kører oven på databasen.

Grundlæggende syntaks

Lad os se på den grundlæggende syntaks for INSERT INTO MySQL-kommandoen:

INDSÆT I 'tabelnavn' (kolonne_1, kolonne_2,…) VÆRDIER (værdi_1, værdi_2,…);

HER

  • INSERT INTO `table_name` er den kommando, der fortæller MySQL-serveren at tilføje en ny række til en tabel, der hedder` table_name.`
  • (column_1, column_2,…) angiver de kolonner, der skal opdateres i den nye MySQL-række
  • VALUES (value_1, value_2,…) angiver de værdier, der skal føjes til den nye række

Når du leverer de dataværdier, der skal indsættes i den nye tabel, skal følgende overvejes:

  • Strengdatatyper - alle strengværdier skal være anbragt i enkelte anførselstegn.
  • Numeriske datatyper - alle numeriske værdier skal leveres direkte uden at omslutte dem i enkelt eller dobbelt anførselstegn.
  • Datodatatyper - omslut datoværdier i enkelt anførselstegn i formatet 'ÅÅÅÅ-MM-DD'.

Eksempel:

Antag, at vi har følgende liste over nye biblioteksmedlemmer, der skal føjes til databasen.

Fuld navne Fødselsdato køn Fysisk adresse postadresse Kontakt nummer Email adresse
Leonard Hofstadter Han Woodcrest 0845738767
Sheldon Cooper Han Woodcrest 0976736763
Rajesh Koothrappali Han Fairview 0938867763
Leslie Winkle 14/02/1984 Han 0987636553
Howard Wolowitz 24/08/1981 Han South Park Postboks 4563 0987786553 Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.

Lad os indsætte data en efter en. Vi starter med Leonard Hofstadter. Vi behandler kontaktnummeret som en numerisk datatype og ikke vedlægger nummeret i enkelte tilbud.

INDSÆT I "medlemmer" ("fulde_navne", "køn", "fysisk_adresse", "kontaktnummer") VÆRDIER ('Leonard Hofstadter', 'Mand', 'Woodcrest', 0845738767);

Ved at udføre ovenstående script falder 0 fra Leonards kontaktnummer. Dette skyldes, at værdien vil blive behandlet som en numerisk værdi, og nul (0) i starten falder, da det ikke er signifikant.

For at undgå sådanne problemer skal værdien være lukket i enkelte tilbud som vist nedenfor -

INDSÆT I "medlemmer" ("fulde_navne", "køn", "fysisk_adresse", "kontakt_nummer") VÆRDIER ('Sheldon Cooper', 'Mand', 'Woodcrest', '0976736763'); 

I ovennævnte tilfælde slettes nul (0) ikke

Ændring af rækkefølgen af ​​kolonnerne har ingen effekt på INSERT-forespørgslen i MySQL, så længe de korrekte værdier er blevet kortlagt til de korrekte kolonner.

Forespørgslen nedenfor viser ovenstående punkt.

INDSÆT I `medlemmer` (` kontakt_nummer`, `køn`,` fulde_navne`, `fysisk_adresse`) VÆRDIER ('0938867763', 'Mand', 'Rajesh Koothrappali', 'Woodcrest');

Ovenstående forespørgsler sprang over fødselsdatoen. Som standard indsætter MySQL NULL-værdier i kolonner, der er udeladt i INSERT-forespørgslen.

Lad os nu indsætte posten for Leslie, som har fødselsdatoen angivet. Datoværdien skal være lukket i enkelt anførselstegn ved brug af formatet 'ÅÅÅÅ-MM-DD'.

INDSÆT I "medlemmer" ("fulde_navne", "dato_fødsel", "køn", "fysisk_adresse", "kontakt_nummer") VÆRDIER ('Leslie Winkle', '1984-02-14', 'Mand', 'Woodcrest', ' 0987636553 '); 

Alle ovenstående forespørgsler specificerede kolonnerne og kortlagde dem til værdier i MySQL-indsætningserklæringen. Hvis vi leverer værdier for ALLE kolonnerne i tabellen, kan vi udelade kolonnerne fra MySQL-indsætningsforespørgslen.

Eksempel:-

INDSÆT I `` medlemsVÆRDIER (9, 'Howard Wolowitz', 'Mand', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;

Lad os nu bruge SELECT-sætningen til at se alle rækkerne i medlemmets tabel.

SELECT * FROM `members`; 
medlemsnummer fulde_ navne køn fødselsdato fysisk adresse postadresse kont.nr e-mail
1 Janet Jones Kvinde 21-07-1980 First Street Plot No 4 Privat taske 0759 253 542 Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.
2 Janet Smith Jones Kvinde 23-06-1980 Melrose 123 NUL NUL Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.
3 Robert Phil Han 12-07-1989 3rd Street 34 NUL 12345 Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.
4 Gloria Williams Kvinde 14-02-1984 2nd Street 23 NUL NUL NUL
5 Leonard Hofstadter Han NUL Woodcrest NUL 845738767 NUL
6 Sheldon Cooper Han NUL Woodcrest NUL 976736763 NUL
7 Rajesh Koothrappali Han NUL Woodcrest NUL 938867763 NUL
8 Leslie Winkle Han 14-02-1984 Woodcrest NUL 987636553 NUL
9 Howard Wolowitz Han 24-08-1981 South Park Postboks 4563 987786553 Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.

Bemærk kontaktnummeret for Leonard Hofstadter har droppet nul (0) fra kontaktnummeret. De andre kontaktnumre er ikke faldet nul (0) i starten.

Indsættelse i en tabel fra en anden tabel

INSERT-kommandoen kan også bruges til at indsætte data i en tabel fra en anden tabel. Den grundlæggende syntaks er som vist nedenfor.

INDSÆT I tabel_1 VÆLG * FRA tabel_2; 

Lad os nu se på et praktisk eksempel. Vi opretter en dummy-tabel til filmkategorier til demonstrationsformål. Vi kalder tabellen for nye kategorier kategorier_arkiv. Nedenstående script opretter tabellen.

OPRET TABEL `kategorier_arkiv` (` kategori_id` int (11) AUTO_INCREMENT, `kategori_navn` varchar (150) STANDARD NULL,` bemærkninger` varchar (500) STANDARD NULL, PRIMÆR NØGLE (`kategori_id`)) 

Udfør ovenstående script for at oprette tabellen.

Lad os nu indsætte alle rækkerne fra kategoritabellen i kategoriarkivtabellen. Nedenstående script hjælper os med at opnå det.

INSERT INTO `categories_archive` VÆLG * FRA` kategorier`; 

Udførelse af ovenstående script indsætter alle rækkerne fra kategoritabellen i kategorierne arkivtabellen. Bemærk, at tabelstrukturer skal være de samme for at scriptet skal fungere. Et mere robust script er et, der kortlægger kolonnenavnene i indsætningstabellen til dem i tabellen, der indeholder dataene.

Forespørgslen nedenfor viser, hvordan den bruges.

INDSÆT I "kategorier_arkiv" (kategori-id, kategorienavn, bemærkninger) VÆLG kategori-id, kategorinavn, bemærkninger FRA "kategorier";

Udførelse af SELECT-forespørgslen

VÆLG * FRA `kategorier_arkiv`

giver følgende resultater vist nedenfor.

category_id category_name bemærkninger
1 Komedie Film med humor
2 Romantisk Kærlighedshistorier
3 Episk Historiske aktive film
4 Rædsel NUL
5 Science Fiction NUL
6 Thriller NUL
7 Handling NUL
8 Romantisk komedie NUL
9 Tegneserier NUL
10 Tegneserier NUL

PHP-eksempel: Indsæt i MySQL-tabel

Funktionen mysqli_query bruges til at udføre SQL-forespørgsler.

Funktionen kan bruges til at udføre følgende forespørgselstyper;

  • Indsæt
  • Vælg
  • Opdatering
  • slet

Den har følgende syntaks.

mysqli_query($db_handle,$query);

HER,

"mysqli_query (

...) "er den funktion, der udfører SQL-forespørgsler.

"$ forespørgsel" er den SQL-forespørgsel, der skal udføres

"$ link_identifier" er valgfri, den kan bruges til at videregive linket til serverforbindelse

Eksempel

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

Resumé

  • INSERT-kommandoen bruges til at tilføje nye data til en tabel. MySql tilføjer en ny række, når kommandoen er udført.
  • Dato- og strengværdierne skal være indeholdt i enkelt anførselstegn.
  • De numeriske værdier behøver ikke at være indeholdt i anførselstegn.
  • INSERT-kommandoen kan også bruges til at indsætte data fra en tabel i en anden.