MySQL INSERT INTO Päring: kuidas lisada tabelisse rida (näide)
⚡ Nutikas kokkuvõte
MySQL INSERT INTO päring lisab tabelisse uusi ridu, kas nimetades sihtveergu otseselt või sisestades iga veeru jaoks väärtuse. Stringide, numbrite ja kuupäevade õige tsiteerimine määrab, kas salvestatud andmed säilivad puutumata.

Mis on INSERT INTO?
SISSE kasutatakse andmete salvestamiseks tabelitesse. Käsk INSERT loob tabelisse uue rea andmete salvestamiseks. Andmed pärinevad tavaliselt andmebaasi peal töötavatest rakendusprogrammidest.
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 tuleks esitada otse, ilma ühe- või kahekordsete jutumärkideta.
- Kuupäeva andmetüübid – lisage kuupäeva väärtused jutumärkidesse vormingus 'AAAA-KK-PP'.
Mitme rea korraga lisamine
Üks INSERT-lause võib sisaldada mitut rida. Eraldage iga väärtuskomplekt komaga. Üks lause on kiirem kui mitu, sest indeks uueneb üks kord.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL INSERT INTO päringu 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 | Puidupuust | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Mees | Puidupuust | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Mees | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
LISAGE andmed ridahaaval, alustades Leonard Hofstadterist. Käsitleme kontaktnumbrit numbrilise andmetüübina ega pane seda ülakomadesse.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Ülaltoodud skripti käivitamisel eemaldatakse Leonardi kontaktnumbrilt 0, kuna väärtust käsitletakse numbrilisena ja eesolev null pole oluline.
Selliste probleemide vältimiseks tuleb väärtus panna ülakomadesse, nagu allpool näidatud.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Näpunäide: Salvestage telefoninumbreid, postiindekseid ja sarnaseid identifikaatoreid tekstiveerus, näiteks VARCHAR. Numbrilistes veergudes ei saa alguses olla nulli.
Veergude järjekorra muutmine
Veergude järjekorra muutmine ei mõjuta päringut INSERT MySQL, kui õiged väärtused on õigetele veergudele kaardistatud. Allolev päring demonstreerib seda seisukohta.
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 INSERT-päringust välja jäetakse.
Sisestame nüüd Leslie kirje, kus on sisestatud sünnikuupäev. Kuupäeva väärtus tuleb panna ülakomadesse ja kasutada 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');
Veergude loendi väljajätmine
Kõik ülaltoodud päringud panid veergudele nimed ja kaardistasid need väärtustega. Kui anname väärtused KÕIGILE tabeli veergudele, saab veergude loendi päringust välja jätta. MySQL sisestage päring.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Kasutame nüüd SELECT avaldus liikmete tabeli kõigi ridade kuvamiseks.
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 |
Pane tähele, et Leonard Hofstadteri kontaktnumbri ees olev null on täpselt nii, nagu ennustatud. Tsiteeritud numbrites see on alles.
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;
Nüüd loome filmide kategooriate jaoks näidistabeli nimega categories_archive. Allolev 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`))
Käivita ülaltoodud skript tabeli loomiseks. Nüüd lisame kõik kategooriate tabeli read kategooriate arhiivi tabelisse.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Selle skripti toimimiseks peavad tabeli struktuurid olema samad. Tugevam skript seob sihttabeli veerunimed andmeid sisaldava tabeli veerunimedega, nagu allpool näidatud.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Alloleva SELECT-päringu käivitamine annab järgmised tulemused.
SELECT * FROM `categories_archive`;
| 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 PHP-st. See käivitab nii Insert, Select, Update kui ka Delete käske ning 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.
- „$db_handle” on mysqli_connecti tagastatud serveriühenduse link.
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); }
