MySQL INSERT INTO Lekérdezés: Sor hozzáadása a táblázathoz (példa)
⚡ Okos összefoglaló
MySQL Az INSERT INTO lekérdezés új sorokat ad hozzá egy táblázathoz, akár a cél oszlopok explicit elnevezésével, akár minden oszlop értékének megadásával. A karakterláncok, számok és dátumok helyes idézőjelei határozzák meg, hogy a tárolt adatok épségben megmaradnak-e.

Mi az INSERT INTO?
INSERT INTO az adatok táblázatokban történő tárolására szolgál. 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ásprogramok biztosítjá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, idézőjelek közé vagy dupla idézőjelek közé téve.
- Dátum adattípusok – a dátumértékeket idézőjelbe helyezze „ÉÉÉÉ-HH-NN” formátumban.
Több sor beszúrása egyszerre
Egyetlen INSERT utasítás több sort is tartalmazhat. Az egyes értékkészleteket vesszővel válassza el. Egy utasítás gyorsabb, mint sok, mivel az index egyszer frissül.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL INSERT INTO lekérdezési 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 | Woodcrest | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | férfi | Woodcrest | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | férfi | Déli Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
SZŰRJÜK BE az adatokat soronként, Leonard Hofstadterrel kezdve. A telefonszámot numerikus adattípusként kezeljük, és nem tesszük aposztrófok közé.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
A fenti szkript végrehajtása során a program eltávolítja a 0-t Leonard telefonszámából, mivel az értéket numerikusként kezeli, és a kezdő nulla nem jelentős.
Az ilyen problémák elkerülése érdekében az értéket aposztrófok közé kell tenni, az alábbiak szerint.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Tipp: Telefonszámokat, irányítószámokat és hasonló azonosítókat tároljon szöveges oszlopban, például VARCHAR oszlopban. A numerikus oszlopok nem tartalmazhatnak kezdő nullát.
Az oszlopsorrend módosítása
Az oszlopok sorrendjének megváltoztatása nincs hatással az INSERT lekérdezésre MySQL, feltéve, hogy a megfelelő értékek a megfelelő oszlopokhoz vannak leképezve. Az alábbi lekérdezés ezt a pontot demonstrálja.
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éket aposztrófok közé kell tenni, az „ÉÉÉÉ-HH-NN” formátumot használva.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Az oszloplista kihagyása
A fenti lekérdezések mindegyike elnevezte az oszlopokat és értékekhez rendelte őket. Ha a táblázat ÖSSZES oszlopához megadjuk az értékeket, az oszloplista elhagyható a lekérdezésből. MySQL lekérdezés beszúrása.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Használjuk most a SELECT utasítás a tagok tábla ö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 alkalmazott | 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 |
Figyeljük meg, hogy Leonard Hofstadter telefonszámának kezdő nullája lekerült, pontosan az előrejelzésnek megfelelően. Az idézőjelek megtartották.
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;
Most létrehozunk egy próbatáblát a filmkategóriákhoz, amelyet categories_archive-nak hívunk. Az alábbi szkript 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`))
Hajtsa végre a fenti szkriptet a tábla létrehozásához. Most illessze be a kategóriák tábla összes sorát a kategóriák archívumtáblájába.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
A szkript működéséhez a táblázatok szerkezetének azonosnak kell lennie. Egy robusztusabb szkript a céltábla oszlopneveit az adatokat tartalmazó táblázat oszlopneveihez rendeli, az alábbiak szerint.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Az alábbi SELECT lekérdezés végrehajtása a következő eredményeket adja.
SELECT * FROM `categories_archive`;
| 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 PHP lekérdezéseket futtat. Insert, Select, Update és Delete utasításokat egyaránt futtat, és 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 „$db_handle” a mysqli_connect által visszaadott szerverkapcsolati hivatkozás.
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); }
