„MySQL INSERT INTO Query“: kaip pridėti eilutę lentelėje (pavyzdys)

Turinys:

Anonim

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