Mis on INSERT INTO?
INSERT INTO kasutatakse andmete salvestamiseks tabelitesse. Käsk INSERT loob tabelisse uue rea andmete salvestamiseks. Andmeid edastavad tavaliselt rakendusprogrammid, mis töötavad andmebaasi peal.
Põhisüntaks
Vaatame käsu INSERT INTO MySQL põhisüntaksit:
INSERT INTO tabeli_nimi (veerg_1, veerg_2,…) VALUES (väärtus_1, väärtus_2,…);
SIIN
- INSERT INTO "table_name" on käsk, mis käsib MySQL-serveril lisada tabelisse "table_name" uue rea.
- (veerg_1, veerg_2,…) määrab värskendatavad veerud uues MySQL-i real
- VALUES (väärtus_1, väärtus_2,…) määrab väärtused, mis lisatakse uude ritta
Uude tabelisse lisatavate andmeväärtuste edastamisel tuleks arvesse võtta järgmist:
- Stringi andmetüübid - kõik stringi väärtused peaksid olema ümbritsetud üksikute jutumärkidega.
- Numbrilised andmetüübid - kõik arvväärtused tuleks edastada otse, lisamata neid ühe- või topelt jutumärkidesse.
- Kuupäeva andmetüübid - kuupäeva väärtused lisatakse jutumärkidesse kujul „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 | Kontakti number | 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 | Postkast 4563 | 0987786553 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Sisestame andmed ükshaaval. Alustame Leonard Hofstadteriga. Käsitleme kontakti numbrit arvulise andmetüübina ja ei pane numbrit ühte jutumärki.
INSERT INTO "liikmed" ("täisnimed", "sugu", "füüsiline aadress", "kontaktnumber") VÄÄRTUSED ("Leonard Hofstadter", "Mees", "Woodcrest", 0845738767);
Ülaltoodud skripti käivitamisel langeb Leonardi kontaktnumbrilt 0. Seda seetõttu, et väärtust käsitletakse arvväärtusena ja alguses null (0) langeb, kuna see pole oluline.
Selliste probleemide vältimiseks tuleb väärtus lisada üksikutesse jutumärkidesse, nagu allpool näidatud -
INSERT INTO "liikmed" ("täisnimed", "sugu", "füüsiline aadress", "kontaktnumber") VÄÄRTUSED ("Sheldon Cooper", "Mees", "Woodcrest", "0976736763");
Ülaltoodud juhul nulli (0) ei langeta
Veergude järjekorra muutmine ei mõjuta MySQL-i päringut INSERT, kui õiged väärtused on õigete veergudega kaardistatud.
Allpool toodud päring näitab ülaltoodud punkti.
INSERT INTO "liikmed" ("kontakti_number", "sugu", "täisnimed", "füüsiline aadress") VÄÄRTUSED ("0938867763", "Mees", "Rajesh Koothrappali", "Woodcrest");
Ülaltoodud päringud jätsid sünnikuupäeva veeru vahele. Vaikimisi lisab MySQL veergudesse NULL väärtused, mis on päringus INSERT välja jäetud.
Lisame nüüd Leslie registri, millel on sünnikuupäev. Kuupäeva väärtus tuleks lisada üksikutesse jutumärkidesse, kasutades vormingut „AAAA-KK-PP“.
INSERT INTO "liikmed" ("täisnimed", "sünnikuupäev", "sugu", "füüsiline aadress", "kontakti number") VÄÄRTUSED ("Leslie Winkle", "1984-02-14", "Mees", "Woodcrest", " 0987636553 ');
Kõik ülaltoodud päringud täpsustasid veerge ja vastendasid need MySQL-i sisestuslause väärtustele. Kui esitame tabeli KÕIKI veergude väärtused, siis võime veerud MySQL-i sisestuspäringust välja jätta.
Näide: -
INSERT INTO "liikmete" VÄÄRTUSED (9, "Howard Wolowitz", "Male", "1981-08-24",
"SouthPark", "PO Box 4563", "0987786553", "lwolowitz [at] email.me") ;
Kasutame nüüd liikme tabeli kõigi ridade vaatamiseks käsku SELECT.
SELECT * FROM `members`;
liikmenumber | täis_nimed | sugu | sünnikuupäev | füüsiline_aadress | postiaadress | cont_ number | e-post |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Naine | 21-07-1980 | Esimese tänava krunt nr 4 | Privaatne kott | 0759 253 542 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | Janet Smith Jones | Naine | 23.06.1980 | Melrose 123 | NULL | NULL | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | Robert Phil | Mees | 12-07-1989 | 3. tänav 34 | NULL | 12345 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
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 | 976736763 | NULL |
7 | Rajesh Koothrappali | Mees | NULL | Puidupuust | NULL | 938867763 | NULL |
8 | Leslie Winkle | Mees | 14-02-1984 | Puidupuust | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Mees | 24-08-1981 | South Park | Postkast 4563 | 987786553 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Pange tähele, et Leonard Hofstadteri kontaktnumber on kontakti numbrilt nulli (0) langenud. Ülejäänud kontaktnumbrid pole alguses nulli (0) langetanud.
Lisamine teisest tabelist tabelisse
INSERT käsku saab kasutada ka andmete lisamiseks teise tabeli tabelisse. Põhisüntaks on selline, nagu allpool näidatud.
INSERT INTO table_1 VALI * FROM table_2;
Vaatame nüüd praktilist näidet. Loome demonstratsiooniks filmi kategooriate jaoks näiv tabeli. Nimetame uut kategooriate tabelit kategooriate_arhiiviks. Allpool toodud skript loob tabeli.
CREATE TABEL `categories_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` märkused` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Tabeli loomiseks käivitage ülaltoodud skript.
Lisagem nüüd kõik kategooriate tabeli read kategooriate arhiivitabelisse. Allpool toodud skript aitab meil seda saavutada.
INSERT INTO "kategooriate_arhiiv" VALI * kategooriatest ";
Ülaltoodud skripti käivitamine lisab kõik kategooriate tabeli read kategooriate arhiivitabelisse. Pange tähele, et skripti tööks peavad tabelistruktuurid olema samad. Tugevam skript on see, mis kaardistab sisestustabeli veergude nimed andmeid sisaldava tabeli omadega.
Allpool toodud päring näitab selle kasutamist.
INSERT INTO "kategooriate_arhiiv" (kategooria_id, kategooria_nimi, märkused) SELECT category_id, kategooria_nimi, märkused FROM `kategooriatest ';
SELECT-päringu käivitamine
VALI * FROM `kategooriate_arhiivist '
annab järgmised tulemused.
category_id | kategooria_nimi | märkused |
---|---|---|
1 | Komöödia | Huumoriga filmid |
2 | Romantiline | Armulood |
3 | Eepiline | Jutukad filmid |
4 | Õudus | NULL |
5 | Ulme | NULL |
6 | Põnevik | NULL |
7 | Tegevus | NULL |
8 | Romantiline komöödia | NULL |
9 | Multikad | NULL |
10 | Multikad | NULL |
PHP näide: sisestage MySQL-i tabelisse
Funktsiooni mysqli_query kasutatakse SQL-i päringute täitmiseks.
Funktsiooni saab kasutada järgmiste päringutüüpide täitmiseks;
- Sisesta
- Valige
- Uuenda
- kustuta
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 sisestamiseks
Näide
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Kokkuvõte
- INSERT käsku kasutatakse uute andmete lisamiseks tabelisse. Kui käsk on täidetud, lisab MySql uue rea.
- Kuupäev ja stringi väärtused tuleks lisada üksikute jutumärkidesse.
- Numbrilisi väärtusi pole vaja jutumärkidesse lisada.
- INSERT käsku saab kasutada ka andmete sisestamiseks ühest tabelist teise.