MySQL INSERT INTO Lekérdezés: Sor hozzáadása a táblázathoz (példa)
Mi az INSERT INTO?
INSERT INTO adatok tárolására szolgál a táblázatokban. Az INSERT parancs egy új sort hoz létre a táblázatban az adatok tárolására. Az adatokat általában az adatbázis tetején futó alkalmazási programok szolgáltatják.
Alapszintaxis
Nézzük meg az INSERT INTO alapvető szintaxisát MySQL parancs:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
ITT
- INSERT INTO A `tábla_neve` az a parancs, amely megmondja MySQL szervert, hogy új sort adjon a `tábla_neve.` nevű táblához
- (oszlop_1,oszlop_2,…) megadja a frissítendő oszlopokat az új MySQL sor
- Az VALUES (érték_1,érték_2,…) meghatározza az új sorba hozzáadandó értékeket
Az új táblázatba beillesztendő adatértékek megadásakor a következőket kell figyelembe venni:
- Karakterlánc-adattípusok – az összes karakterlánc-értéket idézőjelek közé kell tenni.
- Numerikus adattípusok – minden numerikus értéket közvetlenül kell megadni anélkül, hogy szimpla vagy dupla idézőjelekbe helyeznénk őket.
- Dátum adattípusok – a dátumértékeket idézőjelbe helyezze „ÉÉÉÉ-HH-NN” formátumban.
Példa:
Tegyük fel, hogy megvan a következő lista azokról az új könyvtártagokról, amelyeket fel kell venni az adatbázisba.
Teljes nevek | Születési idő | nemek | Valódi cím | postázási cím | Elérhetőség | E-mail címe |
---|---|---|---|---|---|---|
Leonard Hofstadter | férfi | Woodcrest | 0845738767 | |||
Sheldon Cooper | férfi | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | férfi | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | férfi | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | férfi | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Egyenként illesszük be az adatokat. Leonard Hofstadterrel kezdjük. A telefonszámot numerikus adattípusként kezeljük, és nem teszünk idézőjelbe.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
A fenti szkript végrehajtása ledobja a 0-t Leonard telefonszámáról. Ennek az az oka, hogy az értéket a rendszer numerikus értékként kezeli, és az elején lévő nulla (0) kiesik, mivel nem jelentős.
Az ilyen problémák elkerülése érdekében az értéket idézőjelek közé kell tenni az alábbiak szerint –
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
A fenti esetben a nulla(0) nem kerül eldobásra
Az oszlopok sorrendjének megváltoztatása nincs hatással az INSERT lekérdezésre MySQL mindaddig, amíg a megfelelő értékeket a megfelelő oszlopokhoz rendelték hozzá.
Az alább látható lekérdezés a fenti pontot szemlélteti.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
A fenti lekérdezések kihagyták a születési dátum oszlopot. Alapértelmezés szerint, MySQL NULL értékeket szúr be az INSERT lekérdezésből kihagyott oszlopokba.
Most illesszük be Leslie rekordját, amely tartalmazza a születési dátumot. A dátum értékét idézőjelek közé kell tenni „ÉÉÉÉ-HH-NN” formátumban.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
A fenti lekérdezések mindegyike megadta az oszlopokat, és leképezte azokat a MySQL utasítás beszúrása. Ha a táblázat ÖSSZES oszlopához megadunk értékeket, akkor az oszlopokat kihagyhatjuk a MySQL lekérdezés beszúrása.
Példa:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Használjuk most a SELECT utasítás a tagok táblázatának összes sorának megtekintéséhez.
SELECT * FROM `members`;
Tagsági szám | teljes_ nevek | nemek | születési dátum | valódi cím | postázási cím | kapcsolat_szám | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | nő | 21-07-1980 | 4. számú első utcai telek | Privát táska | +0759 253 542 XNUMX | janetjones@yagoo.cm |
2 | Janet Smith Jones | nő | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | férfi | 12-07-1989 | 3. utca 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | nő | 14-02-1984 | 2. utca 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | férfi | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | férfi | NULL | Woodcrest | NULL | 0976736763 | NULL |
7 | Rajesh Koothrappali | férfi | NULL | Woodcrest | NULL | 0938867763 | NULL |
8 | Leslie Winkle | férfi | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
9 | Howard Wolowitz | férfi | 24-08-1981 | Déli Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Figyelje meg, hogy Leonard Hofstadter telefonszáma nullát (0) csökkent a kapcsolati számból. A többi telefonszámon az elején nem esett a nulla (0).
Beszúrás egy másik táblázatból egy táblázatba
Az INSERT paranccsal egy másik táblából is beszúrhatunk adatokat egy táblába. Az alapvető szintaxis az alábbiak szerint látható.
INSERT INTO table_1 SELECT * FROM table_2;
Nézzünk most egy gyakorlati példát. Demonstrációs céllal készítünk egy próbatáblát a filmkategóriákhoz. Az új kategóriák táblát kategóriák_archívumnak nevezzük. Az alább látható forgatókönyv létrehozza a táblázatot.
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`))
A táblázat létrehozásához futtassa a fenti szkriptet.
Szúrjuk be a kategóriatáblázat összes sorát a kategóriaarchívum táblájába. Az alábbi forgatókönyv segít ennek elérésében.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
A fenti parancsfájl végrehajtása a kategóriatáblázat összes sorát beszúrja a kategóriaarchívum táblájába. Vegye figyelembe, hogy a táblaszerkezeteknek azonosaknak kell lenniük ahhoz, hogy a szkript működjön. Robusztusabb szkript az, amely a beszúrási táblában lévő oszlopneveket leképezi az adatokat tartalmazó táblázat oszlopneveire.
Az alább látható lekérdezés a használatát mutatja be.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
A SELECT lekérdezés végrehajtása
SELECT * FROM `categories_archive`
az alábbi eredményeket adja.
kategória_azonosítója | CATEGORY_NAME | megjegyzések |
---|---|---|
1 | Vígjáték | Filmek humorral |
2 | Romantikus | Szerelmi történetek |
3 | Epikus | Régi történetű filmek |
4 | Borzalom | NULL |
5 | Tudományos fantasztikum | NULL |
6 | Krimi | NULL |
7 | Akció | NULL |
8 | Romantikus komédia | NULL |
9 | Rajzfilmek | NULL |
10 | Rajzfilmek | NULL |
PHP példa: Insert into MySQL Táblázat
A mysqli_query függvény végrehajtására szolgál SQL lekérdezéseket.
Az SQL beszúrás a táblába funkcióval a következő lekérdezéstípusok hajthatók végre:
- betétlap
- választ
- Frissítések
- töröl
A következő szintaxissal rendelkezik.
mysqli_query($db_handle,$query);
ITT,
A „mysqli_query(…)” az SQL lekérdezéseket végrehajtó függvény.
A „$query” a végrehajtandó SQL lekérdezés
A „$link_identifier” opcionális, használható a szerverkapcsolati hivatkozás átadására
Példa
$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); } }
Összegzésként
- Az INSERT parancs új adatok hozzáadására szolgál egy táblához. A parancs végrehajtása után a MySql új sort ad hozzá.
- A dátum és a karakterlánc értékeket idézőjelek közé kell tenni.
- A számértékeket nem kell idézőjelbe tenni.
- Az INSERT paranccsal adatok szúrhatók be egyik táblából a másikba.