/ / MySQL JOIN: apraksts, komandas izmantošanas piemērs un ieteikumi

MySQL JOIN: apraksts, komandu lietošanas piemērs un ieteikumi

Interneta resursu datu bāzu izstrādepraktiski neatšķiras no standarta datu bāzēm, kas izstrādātas MS SQL SERVER sistēmā. Šādiem resursiem parasti tiek izmantota MY SQL valoda, lai arī to var izmantot arī vietējai lietošanai paredzētu standarta programmatūras izstrādē. Bet šis raksts nav par to.

mysql pievienoties

Bieži vien, strādājot ar datu bāzēm katrā novalodās, uzdevums ir izveidot datu paraugu izvadei uz dažādiem pārskatiem, grafikiem utt. Parasti, īstenojot šāda veida uzdevumus, jums ir jāizmanto nevis viena, bet vairākas tabulas, apvienojot tās vienā vaicājumā, ievērojami sarežģot tā dizainu. Šajā gadījumā ir jāņem vērā, kā dati tiks parādīti, kā tabulas tiks "uzvilktas" un kāds rezultāts būs vispieņemamākais programmētājam. Šādu problēmu risināšanai tiek izmantots viens no MySQL standarta valodas komponentiem Join.

Pievienojieties vārdu koncepcijai

Datu bāzes izstrādes valodas, nav svarīgi, kurašī ir valoda, par pamatu tiek ņemti standarta vārdi no angļu valodas vārdnīcām (tāpēc, ja jūs zināt angļu valodu, jums būs daudz vieglāk strādāt ar tabulām). Lai ieviestu tabulu savienojumu atlasē, tiek pieņemts tas pats vārds - Pievienoties. Datu bāzes programmēšanas valodā tiek izmantots My SQL. Šī dienesta vārda tulkojums ir tieši tāds pats kā pašā valodā - “savienība”.

MySQL konstrukcijas interpretācija - Pievienojieties unjebkura no tām būs tieši tāda pati. Ja mēs atšifrējam struktūras mērķi, proti, tās darbības shēmu, tad mēs iegūstam šādu nozīmi: struktūras ļaus vienā atlasē apkopot nepieciešamos laukus no dažādām tabulām vai ligzdotiem vaicājumiem.

Kombinējamo struktūru veidi

mysql pievienoties

Ja programmētājam ir jāsavāc paraugs novairākas tabulas, un viņš zina, kādi galvenie lauki tajos ir un kādi dati ir nepieciešami pārskatam, tad, lai sasniegtu vēlamo rezultātu, varat izmantot vienu no pamata savienojuma konstrukcijām. Ir četras pamatkonstrukcijas (pievienošanai tabulām):

  1. Iekšējais savienojums.
  2. Šķērsot pievienoties.
  3. Kreisais savienojums.
  4. Tiesības pievienoties.

Atkarībā no veicamā uzdevuma katrs standarta dizains dos atšķirīgus rezultātus, kas ļaus īsā laikā saņemt pārskatus par dažādiem parametriem.

Tabulu izveide un aizpildīšana turpmākai izmantošanai

Pirms sākt, piemēram, apsvērtmehānismus darbam ar datu apvienošanas konstrukcijām, ir vērts sagatavot vairākas tabulas, ar kurām mēs strādāsim nākotnē. Tas palīdzēs vizuāli parādīt visus operatoru darbības principus, turklāt šādā veidā, tādējādi iesācēji vieglāk apgūs visus programmēšanas tabulu pamatus.

Pirmajā tabulā tiks aprakstīti daži objekti, ar kuriem cilvēks pastāvīgi sastopas visas dzīves laikā.

mysql pievienoties

Otrajā tabulā mēs aprakstīsim dažas objektu īpašības no pirmās tabulas, lai nākotnē varētu ar tiem strādāt.

pa kreisi pievienojies mysql

Parasti, lai ilustrētu to darbību, pietiks ar divām tabulām. Tagad jūs varat sākt praktisku mūsu dizaina pārbaudi.

Iekšējās pievienošanās izmantošana

Izmantojot MySQL konstrukciju - pievienojieties Ineerir vērts apsvērt dažas tā iezīmes. Šis dizains ļaus no abām tabulām izvēlēties tikai tos ierakstus, kas atrodas pirmajā un otrajā tabulā. Kā tas strādā? Pirmajā tabulā mums ir galvenā atslēga - ID, kas norāda ierakstu kārtas numuru tabulā.

Veidojot otro tabulu, to pašu atslēguizmanto kā sērijas numuru, piemēru var redzēt attēlos. Atlasot datus, paziņojums Select noteiks tikai tos ierakstus, kuru kārtas numuri sakrīt - tas nozīmē, ka tie ir pirmajā un otrajā tabulā.

Izmantojot konstrukciju, jums ir jāsaprotkādi dati jums jāiegūst. Visizplatītākā kļūda, it īpaši iesācēju datu bāzes programmētājam, ir Inner Join konstrukcijas nepareiza izmantošana. Kā piemēru MySQL Inner Join varat apsvērt skriptu, kas atgriezīs mums informāciju no iepriekš aprakstītajām un aizpildītajām tabulām par objektiem un to īpašībām. Bet arī šeit var būt vairāki struktūras izmantošanas veidi. Šajā ziņā My SQL ir ļoti elastīga valoda. Tātad, jūs varat apskatīt MySQL Inner Join izmantošanas piemērus.

Tabulu savienošana, nenorādot parametrus. Šajā gadījumā mēs iegūsim šāda plāna rezultātu:

mysql iekšējā pievienošanās

Ja mēs ar pakalpojuma vārdu Izmantojot norādām, katabulās obligāti jāņem vērā ierakstu galvenās atslēgas, tad atlases rezultāts krasi mainīsies. Šajā gadījumā mēs iegūsim atlasi, kas atgriezīs tikai tās rindas, kurām ir vienādas galvenās atslēgas.

mysql pievienošanās piemēri

Iespējams arī trešais lietošanas gadījumskonstrukcijas, ja vaicājumā caur vārdu "ieslēgts" tiek norādīti lauki, ar kuriem tabulas jāapvieno. Šajā gadījumā ar atlasi tiks atgriezti šādi dati:

mysql pievienoties izvēlieties

Kreisās pievienošanās funkcijas

Ja mēs apsvērsim citu veidu, kā pievienoties tabulām, izmantojot MySQL - Join konstruktoru, jūs varat pamanīt atšķirību parādītajos datos. Šis mehānisms ir kreisā konstrukcija.

Izmantojot kreisā pievienošanās MySQL konstrukciju, ir dažas īpatnības, un, tāpat kā Inner, tai ir nepieciešama skaidra izpratne par rezultātu, kas jāiegūst.

Šajā gadījumā vispirms tiks atlasīti visi ieraksti.no pirmās tabulas, un vēlāk tiem tiks pievienoti ieraksti no otrās rekvizītu tabulas. Turklāt, ja pirmajā tabulā ir ieraksts, piemēram, "taburete", un otrajā tabulā tam nav neviena rekvizīta, tad kreisais operators šī ieraksta priekšā parādīs nulli, kas paziņo programmētājam, ka šāda veida objektiem nav pazīmju ...

Šī dizaina izmantošana ļaus jums noteikt, pēc kuriem laukiem vai, piemēram, veikalā esošajām precēm netiek noteikta cena, garantijas laiks utt.

Kreisās puses izmantošanas piemērs

Operatora praktiskai izskatīšanaikreisās pievienošanās MySQL konstrukcijās tiek izmantotas iepriekš aprakstītās tabulas. Piemēram, jums jāatlasa viss veikalā esošo produktu saraksts un jāpārbauda, ​​kuriem no tiem nav pazīmju vai īpašību. Šajā gadījumā atlasē tiks parādīti visi produkti, un tiem, kuriem nav rekvizītu, tiks iestatītas tukšas vērtības.

pievienojieties mysql atjauninājumam

Klauzulas Where izmantošana savienojumā

Kā parametrs savienojums var ietvert ne tikai lauku norādīšanu, pēc kura savienot tabulas, bet arī klauzulas operatoru Kur.

Piemēram, apsveriet skriptu, kam vajadzētuatgriezt pie mums tikai tos ierakstus, par kuriem nav zīmju. Šajā gadījumā pievienošanās konstrukcijai jāpievieno nosacījuma operators un jānorāda, kas tieši tā rezultātā jāatgriež.

Izmantojot MySQL pievienošanās vietu, jums skaidri jāsaprot, ka tiks parādīti tikai tie ieraksti, uz kuriem attiecas norādītais nosacījums, un izvēle pēc tam izskatīsies šādi:

mysql pievienojies kur

Šādi vaicājumi ļauj veikt atlasispecifiski dati, kas attiecas uz programmētāja izvēlēto nosacījumu. Varat norādīt vairākus šādus nosacījumus, vienlaikus maksimizējot parametrus datu atlasīšanai no kombinētajām tabulām.

Pievienošanās izmantošana tabulās esošo datu modificēšanai

Pievienošanās faktiski ir universāla. Tas ļauj ne tikai veikt dažādas izvēles, bet arī iekļaut vaicājumos no vienas līdz vairākām tabulām, lai atlasē ievadītu papildu nosacījumus. Konstrukciju var izmantot arī citām datu operācijām. Piemēram, Join var izmantot, lai modificētu datus tabulā. Drīzāk, lai precizētu tabulas nosacījumus vai tajos gadījumos, kad jums ir jāatjaunina dati vairākās tabulās vieniem un tiem pašiem nosacījumiem.

Piemēram, apsveriet šādu problēmu. Ir trīs tabulas, kurās ir daži dati. Jums jāmaina abu tabulu dati, izmantojot vienu vaicājumu. Lai atrisinātu šāda veida uzdevumus, komandā Atjaunināt varat izmantot pievienošanās konstrukciju. Pats Join konstrukcijas veids, tāpat kā datu izlases gadījumā, ir atkarīgs no rezultāta, ko programmētājs vēlas iegūt.

Apskatīsim vienkāršāko piemēru. Nepieciešams atjaunināt datus ar vieniem un tiem pašiem nosacījumiem ar vienu pieprasījumu. Šāda veida vaicājumi tiek veidoti, lai optimizētu darbu ar datu bāzi. Kāpēc katrai tabulai jāraksta dažādi vaicājumi, ja visas datu manipulācijas var veikt ar vienu vaicājumu? Mūsu gadījumā MySQL atjaunināšanas pievienošanās piemērs būs šāds:

mysql atstāja pievienošanās piemērus

Sarežģītu vaicājumu veidošana

Diezgan bieži, strādājot ar datu bāziir jāveido vaicājumi ne tikai, savienojot vairākas tabulas, bet arī izmantojot apakšklausības. Šādus uzdevumus iesācēju datu bāzu programmētājiem ir diezgan grūti saprast. Grūtības slēpjas faktā, ka jums ir jāpārdomā katrs solis, jānosaka, kuri dati no kuras tabulas vai vaicājuma jāiegūst un kā jums ar tiem būs jāstrādā nākotnē.

Lai iegūtu precīzāku izpratni, varat apsvērt(sadaļā MySQL Join) sarežģītu vaicājumu piemēri. Ja esat iesācējs un tikai sākat strādāt ar datu bāzēm, tad šī apmācība nāks tikai par labu. Ideāls variants būtu MySQL Left Join piemēri.

pa kreisi pievienojies mysql

Šis pieprasījums mums atgriezīs 58 līgumu ierakstuspārdošanas darījumi, kuru naudas atlikums ir aizpildīts vai pastāv uz izvēlēto datumu. Šajā gadījumā tas ir pašreizējais datums. Izlasē tiek pievienots arī nosacījums, ka līguma nosaukumā jābūt simboliem - "123". Ekrānā redzamā informācija (dati) tiks sakārtota - sakārtota pēc līguma numura.

Šajā piemērā tiks parādīti dati par visiem maksājumiem, kuros tiks norādīts līguma numurs.

mysql pievienoties

Apakšvaicājumu izmantošana

Kā minēts iepriekš, strādājot ar datu bāzēmdatus, jūs varat apvienot ne tikai tabulas, bet arī tabulu ar vaicājumu. Šis dizains galvenokārt tiek izmantots, lai paātrinātu vaicājumu un to optimizētu.

Piemēram, ja nepieciešams, no tabulas, kasir vairāki simti lauku un, teiksim, tūkstotis ierakstu, atlasiet tikai divus laukus, tad ir vērts izmantot vaicājumu, kas atgriezīs tikai nepieciešamos laukus, un apvienos to ar galveno datu kopu. Kā MySQL Join Select piemēru varat apsvērt šāda veida vaicājumu:

mysql pievienoties

Šie nav visi standarta izmantošanas veidiMySQL konstruē, bet tikai standarta. Kā izmantot Join konstrukciju un kādās formās tas ir paša programmētāja ziņā, taču ir vērts atcerēties un ņemt vērā, kāds rezultāts būtu jāiegūst, izpildot vaicājumu.