MySQL INSERT INTO Päring: kuidas lisada tabelisse rida (näide)

Mis on INSERT INTO?

SISSE kasutatakse andmete salvestamiseks tabelitesse. Käsk INSERT loob andmete salvestamiseks tabelisse uue rea. Andmeid edastavad tavaliselt andmebaasi peal töötavad rakendusprogrammid.

Põhiline süntaks

Vaatame INSERT INTO põhisüntaksit MySQL käsk:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

SIIN

  • INSERT INTO Tabeli_nimi on käsk, mis ütleb MySQL server uue rea lisamiseks tabelisse nimega "tabeli_nimi".
  • (veerg_1, veerg_2,…) määrab veerud, mida uues versioonis värskendatakse MySQL rida
  • VÄÄRTUSED (väärtus_1, väärtus_2,…) määrab uuele reale lisatavad väärtused

Uude tabelisse lisatavate andmeväärtuste esitamisel tuleks arvesse võtta järgmist.

  • Stringi andmetüübid – kõik stringi väärtused tuleks paigutada jutumärkidesse.
  • Numbrilised andmetüübid – kõik arvväärtused tuleb esitada otse, ilma neid ühe- või topeltjutumärkidesse panemata.
  • Kuupäeva andmetüübid – lisage kuupäeva väärtused jutumärkidesse vormingus 'AAAA-KK-PP'.


Näide:

Oletame, et meil on järgmine loend uutest raamatukogu liikmetest, kes tuleb andmebaasi lisada.

Täisnimed Sünnikuupäev sugu Füüsiline aadress postiaadress Kontaktnumber E-posti aadress
Leonard Hofstadter Mees Puidupuust 0845738767
Sheldon Cooper Mees Puidupuust 0976736763
Rajesh Koothrappali Mees Fairview 0938867763
Leslie Winkle 14/02/1984 Mees 0987636553
Howard Wolowitz 24/08/1981 Mees South Park PO Box 4563 0987786553 lwolowitz@email.me

Sisestame andmed ükshaaval. Alustame Leonard Hofstadteriga. Käsitleme kontaktnumbrit numbrilise andmetüübina ja ei pane numbrit jutumärkidesse.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

Ülaltoodud skripti käivitamisel langeb Leonardi kontaktnumbrilt 0. Selle põhjuseks on asjaolu, et väärtust käsitletakse arvväärtusena ja alguses olev null (0) jäetakse välja, kuna see pole oluline.

Selliste probleemide vältimiseks tuleb väärtus lisada ühekordsetesse jutumärkidesse, nagu allpool näidatud –

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`)  VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

Ülaltoodud juhul nulli(0) ei jäeta


Veergude järjekorra muutmine ei mõjuta päringut INSERT MySQL seni, kuni õiged väärtused on vastendatud õigetele veergudele.

Allpool näidatud päring demonstreerib ülaltoodud punkti.

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)  VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

Ülaltoodud päringutes jäeti sünnikuupäeva veerg vahele. Vaikimisi MySQL lisab NULL väärtused veergudesse, mis jäetakse päringus INSERT välja.

Sisestame nüüd Leslie kirje, millel on sünnikuupäev. Kuupäeva väärtus tuleks lisada ühekordsetesse jutumärkidesse, kasutades vormingut „AAAA-KK-PP”.

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`)  VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

Kõik ülaltoodud päringud määrasid veerud ja vastendasid need väärtustega MySQL sisestage avaldus. Kui anname väärtused KÕIGI tabeli veergude jaoks, siis saame veerud tabelist välja jätta MySQL sisestage päring.

Näide: -

INSERT INTO `members`  VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');

Kasutame nüüd SELECT avaldus liikmete tabeli kõigi ridade vaatamiseks.

SELECT * FROM `members`;
liikme_number täis_ nimed sugu sünnikuupäev füüsiline_aadress postiaadress kontakt_number e-mail
1 Janet Jones Naine 21-07-1980 Esimese tänava krunt nr 4 Privaatne kott +0759 253 janetjones@yagoo.cm
2 Janet Smith Jones Naine 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Mees 12-07-1989 3. tänav 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Naine 14-02-1984 2. tänav 23 NULL NULL NULL
5 Leonard Hofstadter Mees NULL Puidupuust NULL 845738767 NULL
6 Sheldon Cooper Mees NULL Puidupuust NULL 0976736763 NULL
7 Rajesh Koothrappali Mees NULL Puidupuust NULL 0938867763 NULL
8 Leslie Winkle Mees 14-02-1984 Puidupuust NULL 0987636553 NULL
9 Howard Wolowitz Mees 24-08-1981 South Park PO Box 4563 0987786553 lwolowitz@email.me

Pange tähele, et Leonard Hofstadteri kontaktnumber on kaotanud kontaktnumbri nulli (0). Teised kontaktnumbrid pole alguses nulli (0) langenud.

Sisestamine tabelisse teisest tabelist

Käsku INSERT saab kasutada ka andmete sisestamiseks tabelisse teisest tabelist. Põhisüntaks on selline, nagu allpool näidatud.

INSERT INTO table_1 SELECT * FROM table_2;

Vaatame nüüd praktilist näidet. Me loome näidistabeli filmikategooriate jaoks. Nimetame uute kategooriate tabeli kategooriad_arhiiv. Allpool näidatud skript loob tabeli.

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`))

Tabeli loomiseks käivitage ülaltoodud skript.

Sisestame nüüd kõik kategooriate tabeli read kategooriate arhiivi tabelisse. Allpool näidatud skript aitab meil seda saavutada.

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

Ülaltoodud skripti käivitamine lisab kõik kategooriate tabeli read kategooriate arhiivi tabelisse. Pange tähele, et skripti toimimiseks peavad tabelistruktuurid olema samad. Tugevam on skript, mis vastendab sisestustabelis olevad veergude nimed andmeid sisaldava tabeli veergude nimedega.

Allpool näidatud päring näitab selle kasutamist.

INSERT INTO `categories_archive`(category_id,category_name,remarks)  SELECT category_id,category_name,remarks FROM `categories`;

SELECT päringu täitmine

SELECT * FROM `categories_archive`

annab järgmised allpool näidatud tulemused.

kategooria_id CATEGORY_NAME märkused
1 Komöödia Filmid huumoriga
2 Romantiline Armulood
3 Eepiline Muistsed filmid
4 Õudus NULL
5 Ulme NULL
6 Triller NULL
7 tegevus NULL
8 Romantiline komöödia NULL
9 Multikad NULL
10 Multikad NULL

PHP näide: sisestage MySQL Tabel

Käivitamiseks kasutatakse funktsiooni mysqli_query SQL päringud.

Funktsiooni SQL-i lisamine tabelisse saab kasutada järgmiste päringutüüpide täitmiseks:

  • Sisesta
  • valima
  • Värskendused
  • kustutama

Sellel on järgmine süntaks.

mysqli_query($db_handle,$query);

SIIN,

"mysqli_query(…)" on funktsioon, mis täidab SQL-päringuid.

"$query" on käivitatav SQL-päring

"$link_identifier" on valikuline, seda saab kasutada serveriühenduse lingi edastamiseks

Näide

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

kokkuvõte

  • Käsku INSERT kasutatakse tabelisse uute andmete lisamiseks. Kui käsk on täidetud, lisab MySql uue rea.
  • Kuupäeva ja stringi väärtused tuleks lisada jutumärkidesse.
  • Arvväärtusi ei pea jutumärkidesse panema.
  • Käsku INSERT saab kasutada ka andmete sisestamiseks ühest tabelist teise.