MySQL INSERT INTO Query: Slik legger du til rad i tabell (eksempel)

Innholdsfortegnelse:

Anonim

Hva er INSERT INTO?

INSERT INTO brukes til å lagre data i tabellene. INSERT-kommandoen oppretter en ny rad i tabellen for å lagre data. Dataene leveres vanligvis av applikasjonsprogrammer som kjører på toppen av databasen.

Grunnleggende syntaks

La oss se på den grunnleggende syntaksen til INSERT INTO MySQL-kommandoen:

INSERT INTO `table_name` (column_1, column_2,…) VALUES (value_1, value_2,…);

HER

  • INSERT INTO `table_name` er kommandoen som forteller MySQL-serveren å legge til en ny rad i en tabell som heter` table_name.`
  • (column_1, column_2,…) spesifiserer kolonnene som skal oppdateres i den nye MySQL-raden
  • VERDIER (verdi_1, verdi_2, ...) spesifiserer verdiene som skal legges til i den nye raden

Når du leverer dataverdiene som skal settes inn i den nye tabellen, bør følgende vurderes:

  • Strengdatatyper - alle strengverdiene skal være vedlagt enkelt anførselstegn.
  • Numeriske datatyper - alle numeriske verdier bør leveres direkte uten å legge dem inn i enkle eller doble anførselstegn.
  • Datodatatyper - legg inn datoverdier i enkelt anførselstegn i formatet 'ÅÅÅÅ-MM-DD'.

Eksempel:

Anta at vi har følgende liste over nye biblioteksmedlemmer som må legges til databasen.

Fullt navn Fødselsdato kjønn Fysisk adresse postadresse Kontakt nummer Epostadresse
Leonard Hofstadter Mann Woodcrest 0845738767
Sheldon Cooper Mann Woodcrest 0976736763
Rajesh Koothrappali Mann Fairview 0938867763
Leslie Winkle 14.02.1984 Mann 0987636553
Howard Wolowitz 24.08.1981 Mann Sør Park Postboks 4563 0987786553 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.

La oss sette inn data en etter en. Vi starter med Leonard Hofstadter. Vi vil behandle kontaktnummeret som en numerisk datatype og ikke legge inn nummeret i enkelt anførselstegn.

INSERT IN `members` (` full_names`, `gender ',` fysisk_adresse', `contact_number ') VERDIER (' Leonard Hofstadter ',' Male ',' Woodcrest ', 0845738767);

Å utføre ovennevnte skript slipper 0 fra Leonards kontaktnummer. Dette er fordi verdien blir behandlet som en numerisk verdi, og null (0) i begynnelsen slippes siden den ikke er signifikant.

For å unngå slike problemer, må verdien legges inn i enkelt anførselstegn som vist nedenfor -

INSERT IN `members` (` full_names`, `gender ',' physical_address ',` contact_number') VERDIER ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763'); 

I ovennevnte tilfelle vil ikke null (0) slettes

Endring av rekkefølgen på kolonnene har ingen innvirkning på INSERT-spørringen i MySQL så lenge de riktige verdiene er tilordnet de riktige kolonnene.

Spørringen vist nedenfor viser punktet ovenfor.

INSERT IN `members` (` contact_number`, `kjønn`,` fullnavn`, `fysisk_adresse`) VERDIER ('0938867763', 'Male', 'Rajesh Koothrappali', 'Woodcrest');

Ovennevnte spørsmål hoppet over fødselsdatoen. Som standard vil MySQL sette inn NULL-verdier i kolonner som er utelatt i INSERT-spørringen.

La oss nå sette inn posten for Leslie, som har fødselsdatoen oppgitt. Datoværdien skal være inkludert i enkelt anførselstegn ved bruk av formatet 'ÅÅÅÅ-MM-DD'.

INSERT IN `members` (` full_names`, `date_of_birth`,` kjønn`, `fysisk_adresse`,` contact_number`) VERDIER ('Leslie Winkle', '1984-02-14', 'Male', 'Woodcrest', ' 0987636553 '); 

Alle de ovennevnte spørsmålene spesifiserte kolonnene og kartla dem til verdier i MySQL-setningsuttalelsen. Hvis vi leverer verdier for ALLE kolonnene i tabellen, kan vi utelate kolonnene fra MySQL-innføringsspørsmålet.

Eksempel:-

INSERT IN `medlemmets VERDIER (9, 'Howard Wolowitz', 'Male', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;

La oss nå bruke SELECT-setningen for å vise alle radene i medlemmets tabell.

SELECT * FROM `members`; 
medlemsnummer full_ navn kjønn fødselsdato fysisk adresse postadresse kont.nr e-post
1 Janet Jones Hunn 21-07-1980 First Street Plot No 4 Privat veske 0759 253 542 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
2 Janet Smith Jones Hunn 23-06-1980 Melrose 123 NULL NULL Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
3 Robert Phil Mann 12-07-1989 3. gate 34 NULL 12345 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
4 Gloria Williams Hunn 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Mann NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Mann NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Mann NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Mann 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Mann 24-08-1981 Sør Park Postboks 4563 987786553 Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.

Legg merke til at kontaktnummeret til Leonard Hofstadter har falt null (0) fra kontaktnummeret. De andre kontaktnumrene har ikke falt null (0) i begynnelsen.

Sette inn i en tabell fra en annen tabell

INSERT-kommandoen kan også brukes til å sette inn data i en tabell fra en annen tabell. Den grunnleggende syntaksen er som vist nedenfor.

INSERT INTO table_1 VELG * FRA table_2; 

La oss nå se på et praktisk eksempel. Vi vil lage en dummy-tabell for filmkategorier for demonstrasjonsformål. Vi vil kalle den nye kategoritabellen categories_archive. Skriptet vist nedenfor lager tabellen.

OPPRETT TABELL `categories_archive '(` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) STANDARD NULL,` bemerkninger` varchar (500) STANDARD NULL, PRIMÆR NØKKEL (`category_id`)) 

Utfør skriptet ovenfor for å lage tabellen.

La oss nå sette inn alle radene fra kategoritabellen i kategorien arkivtabell. Skriptet vist nedenfor hjelper oss med å oppnå det.

INSERT INTO `categories_archive` VELG * FRA` kategorier`; 

Å utføre skriptet ovenfor setter inn alle radene fra kategoritabellen i kategoritabellen. Merk at tabellstrukturene må være de samme for at skriptet skal fungere. Et mer robust skript er et som tilordner kolonnenavnene i innsettingstabellen til de i tabellen som inneholder dataene.

Spørringen vist nedenfor viser bruken.

INSERT INTO `categories_archive '(category_id, category_name, comments) VELG category_id, category_name, merknader FRA` kategorier';

Utfører SELECT-spørringen

VELG * FRA `kategorier_arkiv '

gir følgende resultater vist nedenfor.

category_id kategori navn bemerkninger
1 Komedie Filmer med humor
2 Romantisk Kjærlighetshistorier
3 Episk Historiske aktive filmer
4 Skrekk NULL
5 Science Fiction NULL
6 Thriller NULL
7 Handling NULL
8 Romantisk komedie NULL
9 Tegneserier NULL
10 Tegneserier NULL

PHP-eksempel: Sett inn i MySQL-tabellen

Mysqli_query-funksjonen brukes til å utføre SQL-spørringer.

Funksjonen kan brukes til å utføre følgende spørringstyper;

  • Sett inn
  • Å velge
  • Oppdater
  • slett

Den har følgende syntaks.

mysqli_query($db_handle,$query);

HER,

"mysqli_query (

…) "Er funksjonen som utfører SQL-spørringene.

"$ spørring" er SQL-spørringen som skal utføres

"$ link_identifier" er valgfritt, den kan brukes til å sende inn koblingen til serverforbindelsen

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

Sammendrag

  • INSERT-kommandoen brukes til å legge til nye data i en tabell. MySql vil legge til en ny rad når kommandoen er utført.
  • Dato- og strengverdiene skal være inkludert i enkelt anførselstegn.
  • De numeriske verdiene trenger ikke å være vedlagt anførselstegn.
  • INSERT-kommandoen kan også brukes til å sette inn data fra en tabell i en annen.