MySQL INSERT INTO Query: Hogyan adhatom meg a sort a táblázatban (példa)

Tartalomjegyzék:

Anonim

Mi az INSERT INTO?

Az INSERT INTO az adatok tárolására szolgál a táblákban. Az INSERT parancs ú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 szolgáltatják.

Alapszintaktika

Nézzük meg az INSERT INTO MySQL parancs alapvető szintaxisát:

INSERT INTO `table_name` (oszlop_1, oszlop_2,…) ÉRTÉKEK (érték_1, érték_2, ...);

ITT

  • Az INSERT INTO "table_name" az a parancs, amely megmondja a MySQL szervernek, hogy adjon hozzá egy új sort a "table_name" nevű táblához.
  • (oszlop_1, oszlop_2,…) adja meg az új MySQL sorban frissítendő oszlopokat
  • Az VALUES (érték_1, érték_2,…) meghatározza az új sorba 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 egyetlen idézőjelbe kell foglalni.
  • Numerikus adattípusok - az összes numerikus értéket közvetlenül kell megadni anélkül, hogy azokat egyetlen vagy dupla idézőjelbe kellene foglalni.
  • Dátum adattípusok - a dátumértékeket egyetlen idézőjelben csatolja „ÉÉÉÉ-HH-NN” formátumban.

Példa:

Tegyük fel, hogy a következő új könyvtártagokkal rendelkezünk, amelyeket fel kell venni az adatbázisba.

Teljes nevek Születési dátum nem Valódi cím postázási cím Elérhetőség Email cím
Leonard Hofstadter Férfi Woodcrest 0845738767
Sheldon Cooper Férfi Woodcrest 0976736763
Rajesh Koothrappali Férfi Fairview 0938867763
Leslie Winkle 1984. 02. 14 Férfi 0987636553
Howard Wolowitz 1981. augusztus 24 Férfi déli Park PO Box 4563 0987786553 Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.

ADJUK be az adatokat egyesével. Leonard Hofstadterrel kezdjük. A kapcsolattartó számot numerikus adattípusként kezeljük, és nem csatoljuk az idézőjeleket.

INSERT INTO "tagok" ("teljes_nevek", "nem", "fizikai_cím", "elérhetőség_szám") ÉRTÉKEK ("Leonard Hofstadter", "Férfi", "Woodcrest", 0845738767);

A fenti parancsfájl végrehajtása eldobja a 0 értéket Leonard kapcsolattartási számától. Ennek oka, hogy az értéket numerikus értékként kezeljük, és az elején a nulla (0) eldobásra kerül, mivel nem szignifikáns.

Az ilyen problémák elkerülése érdekében az értéket egyetlen idézőjelbe kell foglalni, az alábbiak szerint -

INSERT INTO "tagok" ("teljes_nevek", "nem", "fizikai_cím", "kapcsolattartó_szám") ÉRTÉKEK ("Sheldon Cooper", "Férfi", "Woodcrest", "0976736763"); 

A fenti esetben a nullát (0) nem vesszük el

Az oszlopok sorrendjének megváltoztatása nincs hatással az INSERT lekérdezésre a MySQL-ben, mindaddig, amíg a helyes értékeket hozzárendelték a megfelelő oszlopokhoz.

Az alább látható lekérdezés bemutatja a fenti pontot.

INSERT INTO "tagok" ("kapcsolat_szám", "nem", "teljes_nevek", "fizikai_cím") ÉRTÉKEK ("0938867763", "Férfi", "Rajesh Koothrappali", "Woodcrest");

A fenti lekérdezések kihagyták a születési dátum oszlopot. Alapértelmezés szerint a MySQL NULL értékeket fog beilleszteni az INSERT lekérdezésből kihagyott oszlopokba.

Helyezzük be a Leslie nyilvántartását, amely a születési dátumot tartalmazza. A dátumértéket egyetlen idézőjelben kell feltüntetni az „ÉÉÉÉ-HH-NN” formátumban.

INSERT INTO "tagok" ("teljes_nevek", "születési dátum", "nem", "fizikai_cím", "kapcsolattartó_szám") ÉRTÉKEK ("Leslie Winkle", "1984-02-14", "Férfi", "Woodcrest", " 0987636553 ”); 

A fenti lekérdezések mindegyike meghatározta az oszlopokat, és a MySQL insert utasítás értékeihez rendelte őket. Ha a táblázat MINDEN oszlopának értékét adjuk meg, akkor kihagyhatjuk az oszlopokat a MySQL beszúrási lekérdezésből.

Példa:-

INSERT INTO "tagok" ÉRTÉKEI (9, "Howard Wolowitz", "Male", "1981-08-24",
"SouthPark", "PO Box 4563", "0987786553", "lwolowitz [at] email.me") ;

Most használjuk a SELECT utasítást a tagtáblázat összes sorának megtekintéséhez.

SELECT * FROM `members`; 
Tagsági szám teljes_nevek nem születési dátum valódi cím postázási cím folytatás_ szám email
1 Janet Jones Női 1980-07-21 Első utca 4. sz Privát táska 0759 253 542 Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.
2 Janet Smith Jones Női 1980-06-23 Melrose 123 NULLA NULLA Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.
3 Robert Phil Férfi 1989-07-12 3. utca 34 NULLA 12345 Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.
4 Gloria Williams Női 1984-02-14 2. utca 23 NULLA NULLA NULLA
5. Leonard Hofstadter Férfi NULLA Woodcrest NULLA 845738767 NULLA
6. Sheldon Cooper Férfi NULLA Woodcrest NULLA 976736763 NULLA
7 Rajesh Koothrappali Férfi NULLA Woodcrest NULLA 938867763 NULLA
8. Leslie Winkle Férfi 1984-02-14 Woodcrest NULLA 987636553 NULLA
9. Howard Wolowitz Férfi 1981-08-24 Déli Park PO Box 4563 987786553 Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.

Figyelje meg, hogy Leonard Hofstadter kapcsolattartási száma a nulláról (0) esett le a kapcsolat számáról. A többi kapcsolattartási szám az elején nem ejtette a nullát (0).

Beillesztés egy másik táblázat táblájába

Az INSERT paranccsal adatok is beilleszthetők egy másik tábla táblájába. Az alapszintaktika az alábbiakban látható.

INSERT INTO table_1 SELECT * FROM table_2; 

Most nézzünk meg egy gyakorlati példát. Demonstrációs célokra létrehozunk egy dummy táblázatot a filmkategóriákhoz. Az új kategóriatáblát kategóriaarchívumnak hívjuk. 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,` megjegyzések` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`)) 

A táblázat létrehozásához hajtsa végre a fenti parancsfájlt.

Helyezzük be most a kategóriák táblázat összes sorát a kategóriák archívum táblájába. Az alább látható szkript segít abban, hogy ezt elérjük.

INSERT INTO `categories_archive` SELECT * FROM` categories`; 

A fenti szkript végrehajtása a kategóriák táblázat összes sorát beszúrja a kategóriák archívum táblájába. Vegye figyelembe, hogy a táblázatoknak meg kell egyezniük a szkript működéséhez. Robusztusabb szkript az, amely a beszúrótábla oszlopneveit az adatokat tartalmazó táblázatban feltérképezi.

Az alább látható lekérdezés bemutatja használatát.

INSERT INTO `categories_archive` (kategória_azonosító, kategória_neve, megjegyzések) SELECT kategória_azonosító, kategória_neve, megjegyzések FROM` kategóriákból ';

A SELECT lekérdezés végrehajtása

KIVÁLASZTÁS * FROM `categories_archive`

az alábbi eredményeket mutatja.

category_id kategória név megjegyzések
1 Komédia Filmek humorral
2 Romantikus Szerelmi történetek
3 Epikus Történeti filmek
4 Borzalom NULLA
5. Tudományos-fantasztikus NULLA
6. Krimi NULLA
7 Akció NULLA
8. Romantikus komédia NULLA
9. Rajzfilmek NULLA
10. Rajzfilmek NULLA

PHP példa: Helyezze be a MySQL táblába

A mysqli_query függvény SQL lekérdezések végrehajtására szolgál.

A függvény a következő lekérdezési típusok végrehajtására használható;

  • Helyezze be
  • Válassza a lehetőséget
  • Frissítés
  • töröl

A következő szintaxissal rendelkezik.

mysqli_query($db_handle,$query);

ITT,

"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, felhasználható a szerverkapcsolat link továbbítására

Példa

$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);}}

Összegzés

  • Az INSERT paranccsal új adatokat lehet hozzáadni egy táblához. A MySql új sort ad hozzá, amint a parancs végrehajtásra kerül.
  • A dátumot és a karakterláncot egyetlen idézőjelben kell feltüntetni.
  • A numerikus értékeket nem kell idézőjelek közé tenni.
  • Az INSERT paranccsal adatok is beilleszthetők az egyik táblából a másikba.