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 email
1 Janet Jones 21-07-1980 4. számú első utcai telek Privát táska +0759 253 542 XNUMX janetjones@yagoo.cm
2 Janet Smith Jones 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 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.