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.