Разработка баз данных интернет-ресурсов praktiski neatšķiras no standarta datu bāzēm, kas izstrādātas MS SQL SERVER sistēmā. Parasti MY SQL tiek izmantots šādiem resursiem, lai gan to var izmantot arī vietējai lietošanai paredzētu standarta programmatūras produktu izstrādē. Bet rakstā tas netiks apspriests.
Часто при работе с базами данных в каждом из Valodu uzdevums ir atlasīt datus, lai tos attēlotu dažādos pārskatos, diagrammās utt. Parasti, īstenojot šāda veida uzdevumus, jāizmanto nevis viena, bet vairākas tabulas, apvienojot tās vienā vaicājumā, ievērojami sarežģot tā noformējumu. Šajā gadījumā ir jāņem vērā tas, kā dati ir jāattēlo, kā tabulas tiks “uzvilktas” un kāds rezultāts programmētājam būs vispieņemamākais. Lai atrisinātu šādas problēmas, tiek izmantota viena no MySQL valodas standarta konstrukcijām - Pievienojieties.
Datu bāzes izstrādes valodas neatkarīgi no tā, kas tiešitas attiecas uz valodu, par pamatu tiek ņemti standarta vārdi no angļu valodas vārdnīcām (tieši 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 savienošanu, izlasē tiek ņemts viens un tas pats vārds - Pievienojieties. Datubāzes programmēšanas valoda izmanto My SQL. Šī oficiālā vārda tulkojums ir tieši tāds pats kā pašā valodā - “asociācija”.
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.
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 (galdu savienošanai):
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.
Piemēram, pirms sākat, apsverietmehānismus darbam ar datu savienojuma 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ā iesācējiem ir vieglāk apgūt 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ā.
Otrajā tabulā mēs aprakstīsim dažas no pirmās tabulas objektu īpašībām, lai nākotnē varētu ar tām strādāt.
Kopumā būs pietiekami divas tabulas, lai ilustrētu viņu darbu ar piemēru. Tagad jūs varat sākt praktisku mūsu dizaina pārbaudi.
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ēgutiek izmantots kā sērijas numurs, piemēru var redzēt attēlos. Atlasot datus, paziņojums Select noteiks tikai tos ierakstus, kuru kārtas numuri sakrīt, kas nozīmē, ka tie atrodas 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 neracionāla un nepareiza Inner Join konstrukcijas izmantošana. Kā piemēru MySQL Inner Join varat apsvērt skriptu, kas mums atgriezīs 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:
Ja, izmantojot servisa 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.
Iespējams arī trešais lietošanas gadījums.konstrukcijas, ja vaicājumā caur vārdu "on" ir norādīti lauki, ar kuriem jāapvieno tabulas. Šajā gadījumā ar atlasi tiks atgriezti šādi dati:
Ja apsverat citu veidu, kā pievienoties tabulām, izmantojot MySQL - Join konstrukciju, varat pamanīt atšķirību parādītajos datos. Šis mehānisms ir kreisā konstrukcija.
Kreisā pievienošanās MySQL izmantošanai ir dažas īpatnības, un, tāpat kā Inner, ir nepieciešama skaidra izpratne par iegūto rezultātu.
Š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. Tajā pašā laikā, 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.
Operatoram tas jāņem vērā praksēMySQL Left Join 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.
Kā parametrs savienojums var ietvert ne tikai lauku norādīšanu, ar kuriem tabulām jābūt savienotām, bet arī klauzulas operatoru Kur.
Piemēram, apsveriet skriptu, kam vajadzētuatgriezt pie mums tikai tos ierakstus, kuriem zīme nav piestiprināta. Š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:
Šā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.
Join konstrukcija būtībā 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 gadījumos, kad jums ir jāatjaunina dati vairākās tabulās par 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 var izmantot pievienošanās konstrukciju. Pats Join konstrukcijas veids, tāpat kā datu izlases gadījumā, ir atkarīgs no rezultāta, kuru vēlas iegūt programmētājs.
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 atšķirīgi vaicājumi, ja visu datu apstrādi var veikt ar vienu vaicājumu? Mūsu gadījumā MySQL atjaunināšanas pievienošanās piemērs būs šāds:
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 šāda apmācība nāks tikai par labu. Ideāls variants būtu MySQL Left Join piemēri.
Š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. Tāpat izvēlei pievienots 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.
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 jums vajadzētu izmantot vaicājumu, kas atgriezīs tikai nepieciešamos laukus, un apvienojiet to ar galveno datu kopu. Kā MySQL Join Select piemēru varat apsvērt šāda veida vaicājumu:
Š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.