Vad är INSERT IN?
INSERT INTO används för att lagra data i tabellerna. INSERT-kommandot skapar en ny rad i tabellen för att lagra data. Data levereras 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-kommandot:
INSÄTTA I `tabellnamn` (kolumn_1, kolumn_2, ...) VÄRDEN (värde_1, värde_2, ...);
HÄR
- INSERT INTO `tabellnamn 'är kommandot som ber MySQL-servern att lägga till en ny rad i en tabell med namnet' tabellnamn. '
- (column_1, column_2, ...) anger vilka kolumner som ska uppdateras i den nya MySQL-raden
- VALUES (value_1, value_2,…) anger värdena som ska läggas till i den nya raden
När du tillhandahåller de datavärden som ska införas i den nya tabellen bör följande övervägas:
- Strängdatatyper - alla strängvärden bör bifogas i enstaka citat.
- Numeriska datatyper - alla numeriska värden ska tillhandahållas direkt utan att de bifogas i enkla eller dubbla citat.
- Datumdatatyper - bifoga datumvärden i enstaka citat i formatet "ÅÅÅÅ-MM-DD".
Exempel:
Antag att vi har följande lista över nya biblioteksmedlemmar som måste läggas till i databasen.
Fullständiga namn | Födelsedatum | kön | Fysisk adress | postadress | Kontaktnummer | E-postadress |
---|---|---|---|---|---|---|
Leonard Hofstadter | Manlig | Woodcrest | 0845738767 | |||
Sheldon Cooper | Manlig | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Manlig | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Manlig | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Manlig | South Park | PO Box 4563 | 0987786553 | Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. |
Låt oss INSÄTTA data en efter en. Vi börjar med Leonard Hofstadter. Vi kommer att behandla kontaktnumret som en numerisk datatyp och inte bifoga numret i enstaka offert.
INSÄTTA I 'medlemmar' ('fullständiga namn', 'kön', 'fysisk_adress', 'kontaktnummer') VÄRDEN ('Leonard Hofstadter', 'Man', 'Woodcrest', 0845738767);
Genom att utföra ovanstående skript släpps 0 från Leonards kontaktnummer. Detta beror på att värdet kommer att behandlas som ett numeriskt värde och noll (0) i början tappas eftersom det inte är signifikant.
För att undvika sådana problem måste värdet bifogas i enstaka citat som visas nedan -
INSÄTTA I 'medlemmar' ('fullständiga namn', 'kön', 'fysisk_adress', 'kontaktnummer') VÄRDEN ('Sheldon Cooper', 'Man', 'Woodcrest', '0976736763');
I ovanstående fall kommer noll (0) inte att släppas
Att ändra ordningen på kolumnerna har ingen effekt på INSERT-frågan i MySQL så länge korrekta värden har mappats till rätt kolumner.
Frågan som visas nedan visar ovanstående punkt.
INSÄTTA I "medlemmar" ("kontaktnummer", "kön", "fullständiga namn", "fysisk_adress") VÄRDEN ('0938867763', 'Man', 'Rajesh Koothrappali', 'Woodcrest');
Ovanstående frågor hoppade över födelsedatumskolumnen. Som standard infogar MySQL NULL-värden i kolumner som utelämnas i INSERT-frågan.
Låt oss nu infoga posten för Leslie, som har födelsedatumet. Datumvärdet ska bifogas i enstaka citat med formatet "ÅÅÅÅ-MM-DD".
INSÄTTA I 'medlemmar' ('fullständiga namn', 'datum_födsel', 'kön', 'fysisk_adress', 'kontaktnummer') VÄRDEN ('Leslie Winkle', '1984-02-14', 'Man', 'Woodcrest', ' 0987636553 ');
Alla ovanstående frågor angav kolumnerna och mappade dem till värden i MySQL infoga uttalande. Om vi levererar värden för ALLA kolumnerna i tabellen kan vi utelämna kolumnerna från MySQL-infoga frågan.
Exempel:-
INSÄTTA I 'medlemmars VÄRDEN (9,' Howard Wolowitz ',' Man ',' 1981-08-24 ',
' SouthPark ',' PO Box 4563 ',' 0987786553 ',' lwolowitz [at] email.me ') ;
Låt oss nu använda SELECT-uttalandet för att visa alla raderna i medlemmens tabell.
SELECT * FROM `members`;
medlemsnummer | Fullständiga namn | kön | födelsedatum | fysisk adress | postadress | kont_nummer | e-post |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kvinna | 21-07-1980 | First Street tomt nr 4 | Privat väska | 0759 253 542 | Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. |
2 | Janet Smith Jones | Kvinna | 23-06-1980 | Melrose 123 | NULL | NULL | Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. |
3 | Robert Phil | Manlig | 12-07-1989 | 3rd Street 34 | NULL | 12345 | Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. |
4 | Gloria Williams | Kvinna | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Manlig | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Manlig | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Manlig | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Manlig | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Manlig | 24-08-1981 | SouthPark | PO Box 4563 | 987786553 | Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. |
Lägg märke till att kontaktnumret för Leonard Hofstadter har tappat nollan (0) från kontaktnumret. De andra kontaktnumren har inte tappat nollan (0) i början.
Infoga i en tabell från en annan tabell
INSERT-kommandot 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 VÄLJ * FRÅN table_2;
Låt oss nu titta på ett praktiskt exempel. Vi skapar en dummy-tabell för filmkategorier för demonstrationsändamål. Vi kommer att kalla den nya kategoritabellen categories_archive. Skriptet som visas nedan skapar tabellen.
SKAPA TABELL `categories_archive '(` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) STANDARD NULL,` anmärkningar` varchar (500) STANDARD NULL, PRIMÄR KEY (`category_id`))
Kör ovanstående skript för att skapa tabellen.
Låt oss nu infoga alla raderna från kategoritabellen i kategorierna arkivtabellen. Skriptet som visas nedan hjälper oss att uppnå det.
INSERT INTO `categories_archive` VÄLJ * FRÅN` kategorier`;
Genom att utföra ovanstående skript infogas alla rader från kategoritabellen i kategorierna arkivtabell. Observera att tabellstrukturerna måste vara desamma för att manuset ska fungera. Ett mer robust skript är ett som mappar kolumnnamnen i infogningstabellen till de i tabellen som innehåller data.
Frågan som visas nedan visar dess användning.
INSERT INTO `categories_archive` (category_id, category_name, anmärkningar) VÄLJ category_id, category_name, anmärkningar FRÅN` kategorier`;
Utför SELECT-frågan
VÄLJ * FRÅN `categories_archive`
ger följande resultat som visas nedan.
category_id | kategori namn | anmärkningar |
---|---|---|
1 | Komedi | Filmer med humor |
2 | Romantisk | Kärlekshistorier |
3 | Episk | Historiska akuta filmer |
4 | Skräck | 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-tabellen
Funktionen mysqli_query används för att utföra SQL-frågor.
Funktionen kan användas för att utföra följande frågetyper;
- Föra in
- Välj
- Uppdatering
- radera
Den har följande syntax.
mysqli_query($db_handle,$query);
HÄR,
"mysqli_query (
...) "är funktionen som kör SQL-frågorna."$ fråga" är SQL-frågan som ska köras
"$ link_identifier" är valfritt, det kan användas för att skicka in serveranslutningslänken
Exempel
$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);}}
Sammanfattning
- INSERT-kommandot används för att lägga till nya data i en tabell. MySql lägger till en ny rad när kommandot har körts.
- Datum och strängvärden ska bifogas i enstaka citat.
- De numeriska värdena behöver inte ingå i offerten.
- INSERT-kommandot kan också användas för att infoga data från en tabell till en annan.