MySQL INFOGA I fråga: Hur man lägger till rad i tabell (exempel)
⚡ Smart sammanfattning
MySQL INSERT INTO Query lägger till nya rader i en tabell, antingen genom att namnge målkolumnerna explicit eller genom att ange ett värde för varje kolumn. Korrekt citering av strängar, siffror och datum avgör om lagrade data förblir intakta.

Vad är INSERT INTO?
INSERT IN används för att lagra data i tabellerna. INSERT-kommandot skapar en ny rad i tabellen för att lagra data. Informationen tillhandahålls vanligtvis av applikationsprogram som körs ovanpå databasen.
Grundläggande syntax
Låt oss titta på den grundläggande syntaxen för INSERT INTO MySQL kommando:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
HÄR
- INSERT INTO `tabellnamn` är kommandot som talar om MySQL server för att lägga till en ny rad i en tabell med namnet `tabellnamn.`
- (kolumn_1, kolumn_2,...) anger de kolumner som ska uppdateras i den nya MySQL v
- VÄRDEN (värde_1, värde_2,...) anger de värden som ska läggas till i den nya raden
När du anger datavärdena som ska infogas i den nya tabellen bör följande beaktas:
- Strängdatatyper – alla strängvärden ska omges av enkla citattecken.
- Numeriska datatyper – alla numeriska värden ska anges direkt utan att omge dem med enkla eller dubbla citattecken.
- Datumdatatyper – omge datumvärden inom enstaka citattecken i formatet 'ÅÅÅÅ-MM-DD'.
Infoga flera rader samtidigt
En enda INSERT-sats kan innehålla flera rader. Separera varje uppsättning värden med ett kommatecken. En sats är snabbare än många, eftersom indexet uppdateras en gång.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL INSERT INTO-frågeexempel
Anta att vi har följande lista över nya biblioteksmedlemmar som behöver läggas till i databasen.
| Fullständiga namn | Födelsedatum | kön | Fysisk adress | postadress | Kontaktnummer | E-postadress |
|---|---|---|---|---|---|---|
| Leonard Hofstadter | man | Trästomme | 0845738767 | |||
| Sheldon Cooper | man | Trästomme | 0976736763 | |||
| Rajesh Koothrappali | man | Trästomme | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | man | Trästomme | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | man | Southpark | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Låt oss SÄTT IN informationen en rad i taget, med början med Leonard Hofstadter. Vi kommer att behandla kontaktnumret som en numerisk datatyp och inte omge numret med enkla citattecken.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Om du kör ovanstående skript tas 0:an från Leonards kontaktnummer bort, eftersom värdet behandlas som numeriskt och en inledande nolla inte är signifikant.
För att undvika sådana problem måste värdet omges av enkla citationstecken som visas nedan.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Tips: Lagra telefonnummer, postnummer och liknande identifierare i en textkolumn som VARCHAR. Numeriska kolumner kan inte ha en inledande nolla.
Ändra kolumnordningen
Att ändra ordningen på kolumnerna har ingen effekt på INSERT-frågan i MySQL, så länge som rätt värden har mappats till rätt kolumner. Frågan nedan visar detta.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Ovanstående frågor hoppade över kolumnen för födelsedatum. Som standard, MySQL infogar NULL-värden i kolumner som utelämnas från INSERT-frågan.
Nu infogar vi posten för Leslie, som har födelsedatumet angivet. Datumvärdet måste omges av enkla citattecken med 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');
Utelämna kolumnlistan
Alla ovanstående frågor namngav kolumnerna och mappade dem till värden. Om vi anger värden för ALLA kolumner i tabellen kan kolumnlistan utelämnas från MySQL infoga fråga.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Låt oss nu använda SELECT-sats för att visa alla rader i medlemstabellen.
SELECT * FROM `members`;
| medlemsnummer | Fullständiga namn | kön | födelsedatum | fysisk adress | postadress | kontakt_nummer | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Kvinna | 21-07-1980 | First Street Tomt nr 4 | Privat väska | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Kvinna | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | man | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Kvinna | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | man | NULL | Trästomme | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | man | NULL | Trästomme | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | man | NULL | Trästomme | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | man | 14-02-1984 | Trästomme | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | man | 24-08-1981 | Southpark | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Observera att Leonard Hofstadters kontaktnummer har tagit bort sin inledande nolla, precis som förutspått. De citattecknade numren behåller den.
Infoga i en tabell från en annan tabell
Kommandot INSERT kan också användas för att infoga data i en tabell från en annan tabell. Den grundläggande syntaxen är som visas nedan.
INSERT INTO table_1 SELECT * FROM table_2;
Vi ska nu skapa en dummy-tabell för filmkategorier, kallad categories_archive. Skriptet nedan skapar 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`))
Kör ovanstående skript för att skapa tabellen. Nu infogar vi alla rader från kategoritabellen i kategoriarkivtabellen.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Tabellstrukturerna måste vara desamma för att skriptet ska fungera. Ett mer robust skript mappar kolumnnamnen i måltabellen till de i tabellen som innehåller data, som visas nedan.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Att köra SELECT-frågan nedan ger följande resultat.
SELECT * FROM `categories_archive`;
| kategori_id | CATEGORY_NAME | anmärkningar |
|---|---|---|
| 1 | Komedi | Filmer med humor |
| 2 | Romantisk | Kärlekshistorier |
| 3 | Episk | Berättelse gamla filmer |
| 4 | Fasa | NULL |
| 5 | Science Fiction | NULL |
| 6 | Thriller | NULL |
| 7 | Handling | NULL |
| 8 | Romantisk komedi | NULL |
| 9 | Tecknade serier | NULL |
| 10 | Tecknade serier | NULL |
PHP Exempel: Infoga i MySQL Bord
Funktionen mysqli_query används för att köra SQL frågor från PHP. Den kör Insert-, Select-, Update- och Delete-satser på samma sätt och har följande syntax.
mysqli_query($db_handle,$query);
HÄR,
- "mysqli_query(...)" är funktionen som exekverar SQL-frågorna.
- "$query" är den SQL-fråga som ska köras.
- "$db_handle" är serveranslutningslänken som returneras av mysqli_connect.
Exempelvis
$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); }
