Kas yra INSERT INTO?
INSERT INTO naudojamas duomenims lentelėse saugoti. INSERT komanda lentelėje sukuria naują eilutę duomenims saugoti. Duomenis paprastai pateikia programų programos, kurios veikia duomenų bazės viršuje.
Pagrindinė sintaksė
Pažvelkime į pagrindinę komandos INSERT INTO MySQL sintaksę:
INSERT INTO `table_name` (stulpelis_1, stulpelis_2, ...) VALUES (reikšmė_1, reikšmė_2, ...);
ČIA
- INSERT INTO „table_name“ yra komanda, liepianti „MySQL“ serveriui pridėti naują eilutę į lentelę pavadinimu „table_name“.
- (stulpelis_1, stulpelis_2,…) nurodomi stulpeliai, kuriuos reikia atnaujinti naujoje „MySQL“ eilutėje
- VALUES (value_1, value_2,…) nurodo reikšmes, kurios bus įtrauktos į naują eilutę
Pateikiant duomenų vertes, kurios bus įtrauktos į naują lentelę, reikėtų atsižvelgti į šiuos dalykus:
- Eilutės duomenų tipai - visos eilutės vertės turėtų būti pateikiamos vienose kabutėse.
- Skaitmeniniai duomenų tipai - visos skaitinės vertės turėtų būti pateikiamos tiesiogiai, nededant jų į atskiras arba dvigubas kabutes.
- Datos duomenų tipai - pridėkite datos reikšmes vienose kabutėse formatu „YYYY-MM-DD“.
Pavyzdys:
Tarkime, kad turime tokį naujų bibliotekos narių sąrašą, kuriuos reikia pridėti prie duomenų bazės.
Visi vardai | Gimimo data | Lytis | Fizinis adresas | pašto adresas | Kontaktinis numeris | Elektroninio pašto adresas |
---|---|---|---|---|---|---|
Leonardas Hofstadteris | Patinas | Woodcrest | 0845738767 | |||
Sheldonas Cooperis | Patinas | Woodcrest | 0976736763 | |||
Rajeshas Koothrappali | Patinas | Fairview | 0938867763 | |||
Leslie Winkle | 1984 02 14 | Patinas | 0987636553 | |||
Howardas Wolowitzas | 1981-04-24 | Patinas | Pietų parkas | Pašto dėžutė 4563 | 0987786553 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
Įterpkime duomenis po vieną. Pradėsime nuo Leonardo Hofstadterio. Kontaktinį numerį traktuosime kaip skaitmeninį duomenų tipą, o numerio nededame į atskiras kabutes.
INSERT INTO „nariai“ („pilni_vardai“, „lytis“, „fizinis_adresas“, „kontaktinis_ numeris“) VERTYBĖS („Leonard Hofstadter“, „Male“, „Woodcrest“, 0845738767);
Vykdant pirmiau pateiktą scenarijų, iš Leonardo kontaktinio numerio nukrenta 0. Taip yra todėl, kad vertė bus traktuojama kaip skaitinė reikšmė, o nulis (0) pradžioje nuleidžiamas, nes ji nėra reikšminga.
Norint išvengti tokių problemų, vertė turi būti įterpta į atskiras kabutes, kaip parodyta žemiau -
INSERT INTO „nariai“ („pilni_vardai“, „lytis“, „fizinis_adresas“, „kontaktinis_ numeris“) VERTYBĖS („Sheldon Cooper“, „Male“, „Woodcrest“, „0976736763“);
Minėtu atveju nulis (0) nebus numestas
Stulpelių tvarkos pakeitimas neturi įtakos INSERT užklausai MySQL, jei teisingos reikšmės priskirtos teisingiems stulpeliams.
Žemiau parodyta užklausa parodo aukščiau pateiktą dalyką.
INSERT INTO „nariai“ („kontaktinis numeris“, „lytis“, „visi vardai“, „fizinis adresas“) VERTYBĖS („0938867763“, „Vyras“, „Rajesh Koothrappali“, „Woodcrest“);
Pirmiau pateiktos užklausos praleido gimimo datos stulpelį. Pagal numatytuosius nustatymus „MySQL“ įterps NULL reikšmes į stulpelius, kurie praleisti užklausoje INSERT.
Dabar įterpkime Leslie įrašą, kuriame nurodyta gimimo data. Datos reikšmė turėtų būti pateikiama atskirose kabutėse, naudojant „YYYY-MM-DD“ formatą.
INSERT INTO „nariai“ („visi_vardai“, „gimimo data“, „lytis“, „fizinis_adresas“, „kontaktinis numeris“) VERTYBĖS („Leslie Winkle“, „1984-02-14“, „Male“, „Woodcrest“, " 0987636553 “);
Visos minėtos užklausos nurodė stulpelius ir susiejo juos su vertėmis „MySQL insert“ sakinyje. Jei mes pateikiame VISŲ lentelės stulpelių reikšmes, mes galime praleisti stulpelius iš „MySQL“ įterpimo užklausos.
Pavyzdys:-
ĮRAŠYTI „narių“ VERTYBES (9, „Howard Wolowitz“, „Male“, „1981-08-24“,
„SouthPark“, „PO Box 4563“, „0987786553“, „lwolowitz [at] email.me“) ;
Dabar naudokime „SELECT“ sakinį, norėdami peržiūrėti visas nario lentelės eilutes.
SELECT * FROM `members`;
narystės skaičius | pilni_ vardai | Lytis | Gimimo data | fizinis adresas | pašto adresas | cont_ numeris | paštu |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Moteris | 1980-07-21 | Pirmosios gatvės sklypas Nr. 4 | Privatus krepšys | 0759 253 542 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
2 | Janet Smith Jones | Moteris | 1980-06-23 | Melrose 123 | NULL | NULL | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
3 | Robertas Philas | Patinas | 1989-07-12 | 3-oji gatvė 34 | NULL | 12345 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
4 | Gloria Williams | Moteris | 1984-02-14 | 2-oji gatvė 23 | NULL | NULL | NULL |
5 | Leonardas Hofstadteris | Patinas | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldonas Cooperis | Patinas | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajeshas Koothrappali | Patinas | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Patinas | 1984-02-14 | Woodcrest | NULL | 987636553 | NULL |
9 | Howardas Wolowitzas | Patinas | 1981-08-24 | Pietų parkas | Pašto dėžutė 4563 | 987786553 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
Atkreipkite dėmesį, kad Leonardo Hofstadterio kontaktinis numeris nukrito nuo nulio (0) nuo kontakto numerio. Kiti kontaktiniai numeriai pradžioje nesumažino nulio (0).
Įterpimas į lentelę iš kitos lentelės
INSERT komandą taip pat galima naudoti norint įterpti duomenis į lentelę iš kitos lentelės. Pagrindinė sintaksė yra tokia, kaip parodyta žemiau.
INSERT INTO table_1 SELECT * FROM table_2;
Dabar pažvelkime į praktinį pavyzdį. Demonstravimo tikslais sukursime fiktyvią lentelę filmų kategorijoms. Naujų kategorijų lentelę vadinsime kategorijų archyvu. Žemiau pateiktas scenarijus sukuria lentelę.
Sukurti lentelę `categories_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` pastabos` varchar (500) DEFAULT NULL, PIRMINIS RAKTAS (`category_id`))
Norėdami sukurti lentelę, vykdykite aukščiau pateiktą scenarijų.
Dabar įterpkime visas kategorijų lentelės eilutes į kategorijų archyvo lentelę. Žemiau pateiktas scenarijus padeda mums tai pasiekti.
INSERT INTO `categories_archive` PASIRINKTI * IŠ` kategorijų`;
Vykdant pirmiau pateiktą scenarijų, visos kategorijų lentelės eilutės įterpiamos į kategorijų archyvo lentelę. Atkreipkite dėmesį, kad lentelės struktūros turi būti vienodos, kad scenarijus veiktų. Patikimesnis scenarijus yra tas, kuris įterpia lentelės stulpelių pavadinimus su lentelėje esančiais duomenimis.
Žemiau parodyta užklausa parodo jos naudojimą.
INSERT INTO `categories_archive` (kategorijos_ID, kategorijos_pavadinimas, pastabos) PASIRINKITE kategorijos_ID, kategorijos_pavadinimas, pastabos IŠ` kategorijų`;
Vykdoma SELECT užklausa
PASIRINKITE * IŠ „categories_archive“
pateikia šiuos žemiau pateiktus rezultatus.
category_id | kategorijos_pavadinimas | pastabos |
---|---|---|
1 | Komedija | Filmai su humoru |
2 | Romantiškas | Meilės istorijos |
3 | Epinis | Siužetiniai filmai |
4 | Siaubas | NULL |
5 | Mokslinė fantastika | NULL |
6 | Trileris | NULL |
7 | Veiksmas | NULL |
8 | Romantinė komedija | NULL |
9 | Karikatūros | NULL |
10 | Karikatūros | NULL |
PHP pavyzdys: Įterpti į „MySQL“ lentelę
Funkcija mysqli_query naudojama SQL užklausoms vykdyti.
Funkcija gali būti naudojama vykdant šiuos užklausų tipus;
- Įdėti
- Pasirinkite
- Atnaujinti
- Ištrinti
Ji turi tokią sintaksę.
mysqli_query($db_handle,$query);
ČIA
"mysqli_query (
...) "yra funkcija, vykdanti SQL užklausas.„$ query“ yra vykdoma SQL užklausa
"$ link_identifier" yra neprivalomas, jį galima naudoti norint perduoti serverio ryšio nuorodą
Pavyzdys
$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);}}
Santrauka
- INSERT komanda naudojama norint pridėti naujų duomenų į lentelę. Vykdžius komandą, „MySql“ pridės naują eilutę.
- Datos ir eilutės reikšmės turėtų būti pateikiamos vienose kabutėse.
- Skaitinių reikšmių nereikia rašyti kabutėse.
- INSERT komandą taip pat galima naudoti norint įterpti duomenis iš vienos lentelės į kitą.