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 | |
---|---|---|---|---|---|---|---|
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.