Interneto išteklių duomenų bazių kūrimaspraktiškai nesiskiria nuo standartinių duomenų bazių, sukurtų MS SQL SERVER sistemoje. Paprastai tokiems ištekliams naudojama MY SQL kalba, nors ji taip pat gali būti taikoma kuriant standartinius vietinio naudojimo programinės įrangos produktus. Bet šis straipsnis nėra apie tai.
Dažnai dirbant su kiekvienos iš duomenų bazėmiskalbomis, užduotis yra sudaryti duomenų pavyzdį, skirtą išvestims į įvairias ataskaitas, grafikus ir pan. Paprastai, įgyvendindami tokio pobūdžio užduotis, turite naudoti ne vieną, o kelias lenteles, sujungdami jas į vieną užklausą, žymiai apsunkindami jos dizainą. Tokiu atveju būtina atsižvelgti į tai, kaip bus rodomi duomenys, kaip lentelės bus „ištemptos“ ir koks rezultatas bus priimtiniausias programuotojui. Tokioms problemoms spręsti naudojama viena iš standartinių „MySQL“ kalbos konstrukcijų „Join“.
Prisijunkite prie žodžio koncepcijos
Duomenų bazių kūrimo kalbos, nesvarbutai yra kalba, imami standartiniai žodžiai iš anglų kalbos žodynų (būtent todėl, jei mokate anglų kalbą, jums bus daug lengviau dirbti su lentelėmis). Norėdami įgyvendinti lentelių ryšį su pasirinkimu, imamas tas pats žodis - Prisijungti. Duomenų bazės programavimo kalba naudojama „My SQL“. Šio tarnybinio žodžio vertimas yra visiškai toks pat, kaip ir pačioje kalboje - „unija“.
MySQL konstrukcijos aiškinimas - Prisijunkite irbet kuris iš jų bus lygiai toks pats. Jei iššifruosime struktūros tikslą, būtent jos veikimo schemą, gausime tokią reikšmę: struktūros leis surinkti reikiamus laukus iš skirtingų lentelių ar įdėtų užklausų į vieną pasirinkimą.
Derinamų struktūrų tipai
Jei programuotojui reikia rinkti pavyzdį iškelias lenteles ir jis žino, kokie pagrindiniai laukai jose yra ir kokie duomenys reikalingi ataskaitai, tada norimam rezultatui pasiekti galite naudoti vieną iš pagrindinių sujungimo konstrukcijų. Yra keturios pagrindinės konstrukcijos (skirtos sujungti lenteles):
- Vidinis prisijungimas.
- Kryžminis prisijungimas.
- Kairysis prisijungimas.
- Teisė prisijungti.
Atsižvelgiant į atliekamą užduotį, kiekvienas standartinis dizainas duos skirtingus rezultatus, kurie leis jums per trumpą laiką gauti ataskaitas apie skirtingus parametrus.
Lentelių kūrimas ir užpildymas tolesniam naudojimui
Prieš pradedant, pavyzdžiui, svarstantdarbo su duomenų suvienijimo konstruktais mechanizmus, verta parengti kelias lenteles, su kuriomis dirbsime ateityje. Tai padės vizualiai parodyti visus operatorių veikimo principus, be to, tokiu būdu pradedantiesiems lengviau išmokti visus programavimo lentelių pagrindus.
Pirmoje lentelėje bus aprašyti kai kurie objektai, su kuriais žmogus nuolat susiduria per visą savo gyvenimą.
Antroje lentelėje aprašysime kai kurias pirmosios lentelės objektų savybes, kad galėtumėte su jais dirbti ateityje.
Apibendrinant jų veikimą, pakaks dviejų lentelių. Dabar galite pradėti praktinį mūsų dizaino tyrimą.
Vidinio prisijungimo naudojimas
Kai naudojate MySQL konstruktą - prisijunkite prie „Ineer“verta apsvarstyti kai kurias jo ypatybes. Ši konstrukcija leis iš abiejų lentelių pasirinkti tik tuos įrašus, kurie yra pirmoje ir antroje lentelėse. Kaip tai veikia? Pirmoje lentelėje turime pagrindinį raktą - ID, kuris nurodo eilinį lentelės įrašų skaičių.
Kuriant antrą lentelę, tas pats raktasnaudojamas kaip serijos numeris, pavyzdį galima pamatyti paveiksluose. Pasirinkdamas duomenis, „Select“ sakinys nustatys tik tuos įrašus, kurių eilės numeriai sutampa - tai reiškia, kad jie yra pirmoje ir antroje lentelėse.
Naudodamiesi konstrukcija, turite suprastikokius duomenis reikia gauti. Dažniausia klaida, ypač pradedančiųjų duomenų bazių programuotojui, yra netinkamas „Inner Join“ konstrukto naudojimas. Kaip „MySQL Inner Join“ galite apsvarstyti scenarijų, kuris mums grąžins informaciją iš anksčiau aprašytų ir užpildytų lentelių apie objektus ir jų ypatybes. Tačiau čia taip pat gali būti keli būdai, kaip naudoti struktūrą. Šiuo atžvilgiu „My SQL“ yra labai lanksti kalba. Taigi, galite peržiūrėti „MySQL Inner Join“ naudojimo pavyzdžius.
Lentelių sujungimas nenurodant jokių parametrų. Tokiu atveju gausime tokio plano rezultatą:
Jei naudodami paslaugų žodį nurodysime, kadbūtina atsižvelgti į lentelių pagrindinius įrašų raktus, tada pasirinkimo rezultatas kardinaliai pasikeis. Tokiu atveju gausime pasirinkimą, kuris grąžins tik tas eilutes, kurios turi tuos pačius pagrindinius raktus.
Galimas ir trečias naudojimo atvejis.konstrukcijos, kai užklausoje per žodį „on“ nurodomi laukai, prie kurių turėtų būti sujungtos lentelės. Tokiu atveju pasirinkus bus pateikti šie duomenys:
„Left Join“ naudojimo ypatybės
Jei apsvarstysite kitą būdą prisijungti prie lentelių naudodami „MySQL - Join“ konstruktą, galite pastebėti rodomų duomenų skirtumą. Šis mechanizmas yra kairiosios konstrukcijos.
„Left Join MySQL“ konstrukcijos naudojimas turi tam tikrų ypatumų, todėl, kaip ir „Inner“, reikia aiškiai suprasti rezultatą, kurį reikia gauti.
Tokiu atveju pirmiausia bus pasirinkti visi įrašai.iš pirmos lentelės, o vėliau prie jų bus pridėti įrašai iš antrosios savybių lentelės. Be to, jei pirmojoje lentelėje yra įrašas, pavyzdžiui, „išmatos“, o antroje lentelėje nėra vienos jo savybės, tada kairysis operatorius prieš šį įrašą parodys nulį, kuris programuotojui pasakys, kad yra nėra šio tipo objektų ženklų ...
Šio dizaino naudojimas leis jums nustatyti, kurie laukai ar, pavyzdžiui, parduotuvėje esančios prekės nėra įkainotos, garantinis laikotarpis ir pan.
„Left“ naudojimo pavyzdys
Operatorius turi atsižvelgti į tai praktikoje„MySQL Left Join“ konstrukcijose naudojamos anksčiau aprašytos lentelės. Pvz., Turite pasirinkti visą parduotuvėje esančių produktų sąrašą ir patikrinti, ar iš jų nėra jokių ženklų ar savybių. Tokiu atveju pasirinkus bus rodomi visi produktai, o tiems, kurie neturi savybės, bus nustatytos tuščios vertės.
Sąlygos „Kur“ naudojimas
Kaip parametrą prisijungimas gali apimti ne tik laukų, pagal kuriuos lentelės turi būti sujungtos, nurodymą, bet ir sąlyginį operatorių „Where“.
Pavyzdžiui, apsvarstykite scenarijų, kuris turėtųgrąžinti mums tik tuos įrašus, kuriems ženklas nėra pritvirtintas. Tokiu atveju prie „Join“ konstrukcijos turite pridėti sąlygos operatorių ir nurodyti, ką tiksliai reikia grąžinti.
Naudodami Prisijungti - kur MySQL, turite aiškiai suprasti, kad bus rodomi tik tie įrašai, kuriems taikoma nurodyta sąlyga, o tada pasirinkimas atrodys taip:
Tokios užklausos leidžia pasirinktikonkretūs duomenys, susiję su programuotojo pasirinkta sąlyga. Galite nurodyti keletą tokių sąlygų, tuo pačiu padidindami parametrus, kad pasirinktumėte duomenis iš kombinuotų lentelių.
Prisijungimo naudojimas norint pakeisti lentelių duomenis
„Join“ konstrukcija iš esmės yra universali.Tai leidžia ne tik atlikti įvairius pasirinkimus, bet ir įtraukti į užklausas nuo vienos iki kelių lentelių, įvesti papildomas pasirinkimo sąlygas. Konstruktas taip pat gali būti naudojamas kitoms duomenų operacijoms. Pavyzdžiui, „Join“ gali būti naudojamas lentelės duomenims modifikuoti. Verčiau paaiškinti lentelės sąlygas arba tais atvejais, kai reikia atnaujinti kelių lentelių duomenis toms pačioms sąlygoms.
Pavyzdžiui, apsvarstykite šią problemą.Yra trys lentelės, kuriose yra tam tikrų duomenų. Turite pakeisti abiejų lentelių duomenis naudodami vieną užklausą. Norėdami išspręsti tokio tipo užduotis, galite naudoti „Join“ konstruktą komandoje „Update“. Pats „Join“ konstrukcijos tipas, kaip ir duomenų atrankos atveju, priklauso nuo rezultato, kurį nori gauti programuotojas.
Pažvelkime į paprasčiausią pavyzdį.Vienu prašymu būtina atnaujinti duomenis toms pačioms sąlygoms. Tokios užklausos sukurtos siekiant optimizuoti darbą su duomenų baze. Kodėl kiekvienai lentelei reikia rašyti skirtingas užklausas, kai galite tvarkyti visus duomenis naudodami vieną užklausą? Mūsų atveju „MySQL Update Join“ pavyzdys bus toks:
Sudaryti sudėtingas užklausas
Gana dažnai dirbant su duomenų bazereikia kurti užklausas ne tik sujungiant kelias lenteles, bet ir naudojant paklausas. Tokias užduotis pradedančiam duomenų bazių programuotojui suprasti yra gana sunku. Sunkumas yra tas, kad jūs turite apgalvoti kiekvieną žingsnį, nustatyti, kuriuos duomenis iš kurios lentelės ar užklausos turite gauti ir kaip jums reikės dirbti su jais ateityje.
Norėdami gauti konkretesnį supratimą, galite apsvarstyti(„MySQL Join“) sudėtingų užklausų pavyzdžiai. Jei esate pradedantysis ir tik pradedate dirbti su duomenų bazėmis, toks mokymas bus tik naudingas. Idealiausias variantas būtų „MySQL Left Join“ pavyzdžiai.
Šis prašymas mums grąžins 58 sutarties įrašuspardavimai, kurių grynųjų pinigų likutis yra užpildytas arba egzistuoja pasirinktą dieną. Šiuo atveju tai yra dabartinė data. Taip pat į atranką buvo įtraukta sąlyga, kad sutarties pavadinime turi būti simboliai - „123“. Ekrane rodoma informacija (duomenys) bus rūšiuojama - išdėstoma pagal sutarties numerį.
Šiame pavyzdyje bus pateikti visų mokėjimų duomenys, kuriuose bus nurodytas sutarties numeris.
Paklausų naudojimas
Kaip minėta anksčiau, dirbant su duomenų bazėmisduomenis, galite sujungti ne tik lenteles, bet ir lentelę su užklausa. Šis dizainas daugiausia naudojamas paspartinti užklausą ir ją optimizuoti.
Pavyzdžiui, jei reikia iš lentelės, kurituri kelis šimtus laukų ir, tarkime, tūkstantį įrašų, pasirinkite tik du laukus, tada turėtumėte naudoti užklausą, kuri grąžins tik reikiamus laukus, ir sujungti ją su pagrindiniu duomenų rinkiniu. Kaip „MySQL Join Select“ pavyzdį galite apsvarstyti tokio tipo užklausą:
Tai ne visi standarto naudojimo būdai„MySQL“ konstruoja, bet tik standartines. Kaip naudotis „Join“ konstrukcija ir kokiomis formomis tai priklauso nuo paties programuotojo, tačiau verta prisiminti ir atsižvelgti į tai, kokį rezultatą reikėtų gauti vykdant užklausą.