MySQL INSERT INTO Query: Hvordan legge til rad i tabell (eksempel)
Hva er INSERT INTO?
INSERT I 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 kommando:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
HER
- INSERT INTO `tabellnavn` er kommandoen som forteller MySQL server for รฅ legge til en ny rad i en tabell kalt `tabellnavn.`
- (column_1,column_2,...) spesifiserer kolonnene som skal oppdateres i den nye MySQL rad
- VERDIER (verdi_1, verdi_2,...) spesifiserer verdiene som skal legges til i den nye raden
Nรฅr du oppgir dataverdiene som skal settes inn i den nye tabellen, bรธr fรธlgende tas i betraktning:
- Strengdatatyper โ alle strengverdiene skal omsluttes av enkle anfรธrselstegn.
- Numeriske datatyper - alle numeriske verdier skal oppgis direkte uten รฅ omslutte dem i enkle eller doble anfรธrselstegn.
- Datodatatyper โ omslutt datoverdier i enkle anfรธrselstegn i formatet 'ร ร ร ร -MM-DD'.
Eksempel:
Anta at vi har fรธlgende liste over nye bibliotekmedlemmer som mรฅ legges til databasen.
| Fulle 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 | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
La oss SETTE INN data รฉn etter รฉn. Vi starter med Leonard Hofstadter. Vi vil behandle kontaktnummeret som en numerisk datatype og ikke omslutte nummeret i enkle anfรธrselstegn.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Nรฅr du kjรธrer skriptet ovenfor, faller 0-en fra Leonards kontaktnummer. Dette er fordi verdien vil bli behandlet som en numerisk verdi, og null (0) i begynnelsen blir droppet siden den ikke er signifikant.
For รฅ unngรฅ slike problemer mรฅ verdien settes i enkle anfรธrselstegn som vist nedenfor โ
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
I tilfellet ovenfor vil ikke null(0) bli slettet
Endring av rekkefรธlgen pรฅ kolonnene har ingen effekt pรฅ INSERT-spรธrringen i MySQL sรฅ lenge de riktige verdiene er tilordnet de riktige kolonnene.
Spรธrringen vist nedenfor demonstrerer punktet ovenfor.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Spรธrringene ovenfor hoppet over fรธdselsdatokolonnen. Som standard, MySQL vil 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. Datoverdien skal vรฆre omgitt av enkle anfรธrselstegn ved รฅ bruke formatet 'ร ร ร ร -MM-DD'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Alle de ovennevnte spรธrringene spesifiserte kolonnene og tilordnet dem til verdier i MySQL sette inn uttalelse. Hvis vi oppgir verdier for ALLE kolonnene i tabellen, kan vi utelate kolonnene fra MySQL sett inn spรธrring.
Eksempel:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
La oss nรฅ bruke SELECT-setning for รฅ se alle radene i medlemmets tabell.
SELECT * FROM `members`;
| medlemsnummer | fulle_ navn | kjรธnn | fรธdselsdato | fysisk_adresse | postadresse | kontakt_nummer | emalje |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Hunn | 21-07-1980 | First Street tomt nr. 4 | Privat bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Hunn | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | mann | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 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 | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | mann | NULL | Woodcrest | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | mann | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | mann | 24-08-1981 | Sรธr Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Legg merke til at kontaktnummeret til Leonard Hofstadter har droppet nullen (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 SELECT * FROM table_2;
La oss nรฅ se pรฅ et praktisk eksempel. Vi vil lage en dummy-tabell for filmkategorier for demonstrasjonsformรฅl. Vi vil kalle de nye kategoriene tabellen kategorier_arkiv. Skriptet vist nedenfor lager bordet.
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`))
Utfรธr skriptet ovenfor for รฅ lage tabellen.
La oss nรฅ sette inn alle radene fra kategoritabellen i kategoriarkivtabellen. Skriptet vist nedenfor hjelper oss รฅ oppnรฅ det.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Ved รฅ kjรธre skriptet ovenfor setter du inn alle radene fra kategoritabellen i kategoriarkivtabellen. 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,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Utfรธrer SELECT-spรธrringen
SELECT * FROM `categories_archive`
gir fรธlgende resultater vist nedenfor.
| kategori_id | category_name | bemerkninger |
|---|---|---|
| 1 | Komedie | Filmer med humor |
| 2 | Romantisk | Kjรฆrlighetshistorier |
| 3 | Epic | Gamle historiefilmer |
| 4 | Horror | 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 Bord
Mysqli_query-funksjonen brukes til รฅ utfรธre SQL spรธrringer.
SQL-insert into table-funksjonen kan brukes til รฅ utfรธre fรธlgende spรธrringstyper:
- innfelt
- Velg
- Oppdater
- slette
Den har fรธlgende syntaks.
mysqli_query($db_handle,$query);
HER,
"mysqli_query(...)" er funksjonen som utfรธrer SQL-spรธrringene.
"$query" er SQL-spรธrringen som skal utfรธres
"$link_identifier" er valgfritt, den kan brukes til รฅ sende inn servertilkoblingslenken
Eksempel
$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);
}
}
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 omgitt av enkle anfรธrselstegn.
- De numeriske verdiene trenger ikke vรฆre omgitt av anfรธrselstegn.
- INSERT-kommandoen kan ogsรฅ brukes til รฅ sette inn data fra en tabell til en annen.
