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.

  • 📥 Põhisüntaks: INSERT INTO `tabeli_nimi`(veerg_1,veerg_2) VALUES(väärtus_1,väärtus_2) loob nimetatud tabelisse ühe uue rea.
  • 🔤 Tsiteerimise reegel: Stringi- ja kuupäevaväärtused nõuavad ülakomakke; arvväärtused esitatakse ilma jutumärkideta.
  • 0️⃣ Juhtiv nulllõks: Tsitaatides mitteolevat telefoninumbrit loetakse numbrina, seega jäetakse eesolev null märkamatult ära.
  • 🔀 Veergude järjekord: Veergude järjekord päringus pole oluline, kui iga väärtus on seotud vastava veeruga.
  • 🕳️ Väljajäetud veerud: Lausest välja jäetud veerud saavad väärtuseks NULL või oma deklareeritud vaikeväärtuse.
  • 📑 Laud lauale: INSERT INTO … SELECT kopeerib read tabelite vahel, kui veerustruktuurid joonduvad.

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

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

KKK

MySQL lükkab selle tagasi duplikaatkirje vea tõttu. Rea vaikselt vahelejätmiseks kasutage INSERT IGNORE või olemasoleva rea ​​värskendamiseks INSERT … ON DUPLICATE KEY UPDATE.

Käivita kohe pärast sisestamist SELECT LAST_INSERT_ID() või kutsu PHP-s välja mysqli_insert_id($conn). See tagastab sinu enda ühenduse viimase rea jaoks genereeritud AUTO_INCREMENT võtme.

Ärge kunagi liitke kasutaja sisendit päringustringiga. Kasutage ettevalmistatud lauseid seotud parameetritega, et väärtused liiguksid päringust eraldi. SQL ja neid ei saa käskudena käivitada.

Jah. Tehisintellekti assistendid muudavad arvutustabelid või lihtsad kirjeldused INSERT-lauseteks ja MySQL Workbench saab neid käivitada. Kontrollige veergude järjekorda ja tsiteerimist, sest mudel võib skeemi ära arvata.

Sisesta see esmalt arenduskoopiasse. Tehisintellekti loodud read võivad rikkuda võõrvõtmeid, ületada veergude pikkusi või leiutada sobimatuid kuupäevi. Käivita partii tehingus, et seda saaks tagasi võtta.

Võta see postitus kokku järgmiselt: