Kas ir INSERT INTO?
INSERT INTO izmanto, lai datus glabātu tabulās. INSERT komanda tabulā izveido jaunu rindu datu glabāšanai. Datus parasti nodrošina lietojumprogrammas, kas darbojas virs datu bāzes.
Pamata sintakse
Apskatīsim komandas INSERT INTO MySQL pamata sintaksi:
INSERT INTO `table_name` (kolonna_1, kolonna_2,…) VALUES (vērtība_1, vērtība_2,…);
ŠEIT
- INSERT INTO "table_name" ir komanda, kas MySQL serverim liek pievienot jaunu rindu tabulā ar nosaukumu "table_name".
- (sleja_1, sleja_2,…) norāda kolonnas, kas jāatjaunina jaunajā MySQL rindā
- VALUES (vērtība_1, vērtība_2,…) norāda vērtības, kas jāpievieno jaunajai rindai
Piegādājot jaunajā tabulā ievietojamās datu vērtības, jāņem vērā:
- Virknes datu tipi - visas virknes vērtības jāierobežo pēdiņās.
- Skaitliskie datu tipi - visas skaitliskās vērtības jānorāda tieši, nenorādot tās vienā vai divās pēdiņās.
- Datuma datu tipi - datuma vērtības ievietojiet atsevišķās pēdiņās formātā “GGGG-MM-DD”.
Piemērs:
Pieņemsim, ka mums ir šāds jauno bibliotēkas dalībnieku saraksts, kas jāpievieno datu bāzei.
Pilni vārdi | Dzimšanas datums | dzimums | Fizikālā adrese | Pasta adrese | Kontaktpersonas numurs | Epasta adrese |
---|---|---|---|---|---|---|
Leonards Hofstaders | Vīrietis | Woodcrest | 0845738767 | |||
Šeldons Kūpers | Vīrietis | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Vīrietis | Fairview | 0938867763 | |||
Leslija Vinkla | 14.02.1984 | Vīrietis | 0987636553 | |||
Hovards Volovics | 24.08.1981 | Vīrietis | Dienvidu parks | Posti 4563 | 0987786553 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
Ievietosim datus pa vienam. Mēs sāksim ar Leonardu Hofstadteru. Mēs uzskatīsim kontakta numuru par skaitlisku datu tipu un nenorādīsim numuru vienās pēdiņās.
INSERT INTO `members` (` pilni_nosaukumi`, `dzimums`,` fiziskā_adrese`, `kontakta_numurs`) VALUES ('Leonard Hofstadter', 'Male', 'Woodcrest', 0845738767);
Izpildot iepriekš minēto skriptu, Leonarda kontaktpersonas numurs nokrītas uz 0. Tas ir tāpēc, ka vērtība tiks uzskatīta par skaitlisku vērtību, un sākumā nulle (0) tiek izmesta, jo tā nav nozīmīga.
Lai izvairītos no šādām problēmām, vērtība jāievieto vienās pēdiņās, kā parādīts zemāk -
INSERT INTO `members` (` pilni_nosaukumi`, `dzimums`,` fiziskā_adrese`, `kontakta_numurs`) VALUES ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763');
Iepriekš minētajā gadījumā nulle (0) netiks atcelta
Kolonnu secības maiņa neietekmē vaicājumu INSERT MySQL, kamēr pareizās vērtības ir kartētas pareizajām kolonnām.
Zemāk parādītais vaicājums parāda iepriekš minēto.
INSERT INTO `members` (` contact_number`, `gender`,` full_names`, `physical_address`) VALUES ('0938867763', 'Male', 'Rajesh Koothrappali', 'Woodcrest');
Iepriekš minētie vaicājumi izlaida dzimšanas datuma sleju. Pēc noklusējuma MySQL kolonnās ievietos NULL vērtības, kas tiek izlaistas vaicājumā INSERT.
Tagad ievietosim Leslie ierakstu, kurā ir norādīts dzimšanas datums. Datuma vērtība jāpievieno atsevišķās pēdiņās, izmantojot formātu “GGGG-MM-DD”.
INSERT INTO “members” (“pilni_vārdi”, “dzimšanas datums”, “dzimums”, “fiziska_adrese”, “kontakta_numurs”) VĒRTĪBAS ('Leslie Winkle', '1984-02-14', 'Male', 'Woodcrest', ' 0987636553 ');
Visi iepriekš minētie vaicājumi norādīja kolonnas un piesaistīja tās vērtībām MySQL ieliktņa priekšrakstā. Ja mēs piegādājam vērtības VISĀM tabulas kolonnām, tad kolonnas var izlaist no MySQL ievietošanas vaicājuma.
Piemērs:-
IEVADIET “locekļu” VĒRTĪBĀS (9, “Howard Wolowitz”, “Male”, “1981-08-24”,
“SouthPark”, “PO Box 4563”, “0987786553”, „lwolowitz [at] email.me”) ;
Tagad izmantosim paziņojumu SELECT, lai apskatītu visas dalībnieka tabulas rindas.
SELECT * FROM `members`;
dalībnieka numurs | pilni_ vārdi | dzimums | dzimšanas datums | fizikālā adrese | pasta adrese | cont_ numurs | e-pasts |
---|---|---|---|---|---|---|---|
1 | Dženeta Džonsa | Sieviete | 21-07-1980 | Pirmās ielas zemes gabals Nr. 4 | Privātā soma | 0759 253 542 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
2 | Dženeta Smita Džonsa | Sieviete | 23.06.1980 | Melroze 123 | NULL | NULL | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
3 | Roberts Fils | Vīrietis | 12-07-1989 | 3. iela 34 | NULL | 12345 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
4 | Glorija Viljamsa | Sieviete | 14-02-1984 | 2. iela 23 | NULL | NULL | NULL |
5 | Leonards Hofstaders | Vīrietis | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Šeldons Kūpers | Vīrietis | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Vīrietis | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslija Vinkla | Vīrietis | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Hovards Volovics | Vīrietis | 24-08-1981 | SouthPark | Posti 4563 | 987786553 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
Ievērojiet, ka Leonarda Hofstadtera kontakta numurs ir samazinājis nulli (0) no kontakta numura. Pārējie kontaktu numuri sākumā nav samazinājuši nulli (0).
Ievietošana tabulā no citas tabulas
INSERT komandu var izmantot arī datu ievietošanai tabulā no citas tabulas. Pamata sintakse ir tāda, kā parādīts zemāk.
INSERT INTO table_1 SELECT * FROM table_2;
Tagad aplūkosim praktisku piemēru. Demonstrācijas nolūkos izveidosim fiktīvu tabulu filmu kategorijām. Jauno kategoriju tabulu mēs sauksim par kategoriju_arhīvu. Zemāk parādītais skripts izveido tabulu.
CREATE TABLE `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` piezīmes` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Lai izveidotu tabulu, izpildiet iepriekš minēto skriptu.
Tagad ievietosim visas kategoriju tabulas rindas kategoriju arhīva tabulā. Zemāk parādītais skripts palīdz mums to sasniegt.
INSERT INTO `categories_archive` SELECT * FROM` categories`;
Izpildot iepriekš minēto skriptu, visas arhīvu tabulas rindas no kategoriju tabulas tiek ievietotas kategoriju arhīva tabulā. Ņemiet vērā, ka skripta darbībai tabulas struktūrām jābūt vienādām. Stingrāks skripts ir tāds, kas ievietošanas tabulas kolonnu nosaukumus kartē ar tabulas nosaukumiem, kuros ir dati.
Zemāk redzamais vaicājums parāda tā lietojumu.
INSERT INTO `categories_archive` (category_id, category_name, piezīmes) SELECT category_id, category_name, piezīmes NO` categories`;
Izpilda vaicājumu SELECT
ATLASIET * FROM `category_archive`
sniedz šādus rezultātus, kas parādīti zemāk.
category_id | category_name | piezīmes |
---|---|---|
1 | Komēdija | Filmas ar humoru |
2 | Romantiski | Mīlas stāsti |
3 | Episkā | Stāsta filmas |
4 | Šausmas | NULL |
5 | Zinātniskā fantastika | NULL |
6 | Trilleris | NULL |
7 | Darbība | NULL |
8 | Romantiska komēdija | NULL |
9 | Karikatūras | NULL |
10 | Karikatūras | NULL |
PHP piemērs: ievietojiet MySQL tabulā
Funkcija mysqli_query tiek izmantota SQL vaicājumu izpildei.
Funkciju var izmantot, lai izpildītu šādus vaicājumu veidus;
- Ievietojiet
- Atlasiet
- Atjaunināt
- dzēst
Tam ir šāda sintakse.
mysqli_query($db_handle,$query);
ŠEIT,
"mysqli_query (
…) "Ir funkcija, kas izpilda SQL vaicājumus."$ query" ir izpildāms SQL vaicājums
"$ link_identifier" nav obligāts, to var izmantot, lai ievadītu servera savienojuma saiti
Piemērs
$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);}}
Kopsavilkums
- INSERT komandu izmanto, lai tabulā pievienotu jaunus datus. Tiklīdz komanda būs izpildīta, MySql pievienos jaunu rindu.
- Datuma un virknes vērtībām jābūt ievietotām pēdiņās.
- Skaitliskās vērtības nav jāpievieno pēdiņās.
- INSERT komandu var izmantot arī, lai ievietotu datus no vienas tabulas citā.