MySQL JOIN: opis, primjer korištenja tima i preporuke

Razvoj baza podataka internetskih resursa praktički se ne razlikuje od standardnih baza podataka razvijenih u sustavu MS SQL SERVER. Obično se za takve resurse koristi jezik MY SQL, iako se može primijeniti na razvoj standardnih softverskih proizvoda za lokalnu uporabu. Ali članak u članku to neće učiniti.

Često, kada se radi s bazama podataka na svakom jeziku, postoji zadatak da napravi uzorak podataka za izlaz u različitim izvješćima, grafikonima i tako dalje. U pravilu, pri provedbi takvih zadataka potrebno je koristiti ne jedan, nego nekoliko tablica, kombinirajući ih u jedan zahtjev, uvelike komplicirajući njegov dizajn. Potrebno je uzeti u obzir kako će se podaci prikazivati, kako će se tablica "stegnuti" i koji će rezultat biti što je više moguće prihvatljiv programeru. Za rješavanje takvih problema koristi se jedan od standardnih jezičnih konstrukata MySQL - Join.


Koncept riječi Pridružite se jezicima za razvoj baza podataka, bez obzira na to što je to jezik, standardni izrazi preuzeti su iz rječnika na engleskom jeziku (zato, pod uvjetom da znate engleski , bit će vam puno lakše raditi sa stolovima). Za provedbu povezivanja tablica u uzorku uzima se ista riječ - Pridruži se. U programskom jeziku My SQL baza podataka. Prijevod ove službene riječi je potpuno isti kao i na samom jeziku - "udruživanje". Tumačenje MySQL - Pridružite se, i bilo koji od njih, bit će potpuno isti. Ako dekriptirateOznaka, a posebno shema njezina rada, dobivamo sljedeće vrijednosti: konstrukti će vam omogućiti prikupljanje potrebnih polja iz različitih tablica ili pod-upita u jednom uzorku.


Vrste konstrukcija za udrugu

Ako programer treba prikupiti uzorak od nekoliko tablica i zna koja su ključna polja u njima i što su točni podaci potrebni za izvješće, onda se može koristiti jedna od glavnih konstrukcija asocijacije da bi se postigao željeni rezultat. Glavne konstrukcije (za kombiniranje tablica) su četiri:
  • Unutarnje spajanje.
  • Cross Join.
  • Lijevo spajanje.
  • Desno Pridruživanje.
  • Ovisno o zadatku, svaki od standardnih dizajna donijet će različite rezultate, što će vam omogućiti da u kratkom vremenu primate izvješća s različitim parametrima.

    Izrada i popunjavanje tablica za buduću uporabu

    Prije nego što počne, primjerice, ispitivanje mehanizama za rad s strukturama za agregiranje podataka, vrijedno je pripremiti nekoliko tablica s kojima ćemo raditi u budućnosti. To će pomoći da se jasno pokažu svi principi rada operatera, a na taj će način pridošlice lako asimilirati sve osnove programskih tablica. Prva tablica opisat će neke teme s kojima se osoba neprestano susreće tijekom svog života.
    U drugoj tablici opisujemo neka svojstva objekata iz prve tablice kako bi mogli raditi s njima u budućnosti.
    U cjelini, dvije tablice će biti dovoljne da ilustriraju svoj rad kao primjer. Sada možete započeti naš praktični pregledstrukture.

    Korištenje unutarnjeg spajanja

    Kada koristite MySQL konstrukt - Pridružite se nekoj treba uzeti u obzir neke njegove značajke. Ovaj dizajn će vam omogućiti da odaberete iz obje tablice samo one unose koji su također u prvoj i drugoj tablici. Kako to funkcionira? U prvoj tablici imamo glavni ključ - IDENTIFIER, koji ukazuje na serijski broj zapisa u tablici.
    Prilikom izrade druge tablice, ovaj se ključ koristi kao serijski broj, primjer se može vidjeti na crtežima. Pri odabiru podataka operator Select će odrediti samo one unose čiji su redni brojevi isti - stoga su i oni u prvoj i drugoj tablici. Kada se koristi dizajn, potrebno je razumjeti koje podatke je potrebno dobiti. Najčešća pogreška, pogotovo kod početnika programera baze podataka, je neprimjerena i netočna upotreba dizajna Inner Join-a. Kao primjer, MySQL Inner Join, možete razmotriti skriptu koja će nam se vratiti iz prethodno opisanih i dovršenih tablica informacija o objektima i njihovim svojstvima. Ali ovdje može biti nekoliko načina za korištenje dizajna. U tom smislu, My SQL je vrlo fleksibilan jezik. Dakle, možete razmotriti primjere korištenja MySQL Inner Join. Kombinirajući tablice bez navođenja parametara. U ovom slučaju dobivamo rezultat takvog plana:
    Ako kroz servisnu riječ spomenemo da je nužno uzeti u obzir glavne ključeve zapisa u tablicama, rezultat uzorka će se radikalno promijeniti. U ovom slučaju dobivamo uzorak koji vraća samo one retke koji imaju iste glavne ključeve.
    Druga mogućnost je korištenje dizajna, kada je u upitu riječ "on" određuje polja za koja bi trebalo doći do spajanja tablica. U tom slučaju uzorak će vratiti sljedeće podatke:

    Značajke lijevog pridruživanja

    Prilikom razmatranja drugog načina spajanja tablica pomoću konstrukcije MySQL-Join, možete primijetiti razliku u prikazanim podacima. Takav mehanizam je konstrukcija ljevice.
    Korištenje lijevog dizajna MySQL-a ima neke značajke i, kao i Unutarnji, zahtijeva jasno razumijevanje rezultata koje trebate dobiti. U tom slučaju, prvo će se odabrati svi unosi iz prve tablice, a ubuduće će im se dodati i unosi iz druge tablice svojstava. U tom slučaju, ako postoji zapis u prvoj tablici, na primjer, "stolica", au drugoj tablici nema svojstva za nju, tada će operater lijevo prikazati ispred tog unosa vrijednost null, govoreći programeru da nema znakova ove vrste objekta. Koristeći ovaj dizajn će odrediti koja polja ili, na primjer, roba u trgovini nije izložena cijena, jamstveni rok, i tako dalje.

    Primjer korištenja lijeve

    Za razmatranje građevinskog operatera lijevo Pridružite se MySQL-u u praksi, koristimo prethodno opisane tablice. Na primjer, morate odabrati cijeli popis stavki koje se nalaze u trgovini i provjeriti koje značajke ili svojstva nisu označene. U ovom slučaju, uzorak će prikazati svu robu, a za one koji nemaju svojstva, postavit će se prazne vrijednosti.

    Korištenje u dizajnu Gdje se pridružiti

    KakoParametar, pridruživanje može uključivati ​​ne samo polja koja zahtijevaju povezivanje tablica, nego također može uključivati ​​uvjetni operator Gdje. Primjerice, razmotrimo skriptu koja bi trebala vratiti samo one unose koji nemaju znak. U ovom slučaju, u dizajnu pridruživanja, morate dodati izraz stanja i odrediti što točno treba vratiti kao rezultat. Kada koristite u MySQL-u gdje je potrebno jasno shvatiti da će biti prikazani samo zapisi kojima pripada određeni uvjet, a uzorak će izgledati ovako:
    Takvi zahtjevi omogućuju uzorkovanje specifičnih podataka koji se odnose na željeno stanje programera. Ove uvjete možete odrediti na nekoliko načina, dok maksimizirate parametre odabira podataka iz kombiniranih tablica.

    Korištenje pridruživanja za izmjenu podataka u tablicama

    Konstrukcija spajanja je u biti univerzalna. Omogućuje ne samo izradu raznih uzoraka, već i povezivanje na zahtjeve od jednog do nekoliko tablica, kako bi se u uzorak uneli dodatni uvjeti. Dizajn se također može koristiti za druge operacije s podacima. Da, Join može se koristiti za promjenu podataka u tablici. Točnije, pojasniti uvjete u tablici, ili u tim slučajevima, ako je potrebno ažurirati podatke u nekoliko tablica pod istim uvjetima. Primjerice, razmotrite takav problem. Prikazane su tri tablice u kojima postoje neki podaci. Morate promijeniti podatke u obje tablice koristeći jedan zahtjev. Upravo za rješenje ove vrste zadataka možete primijeniti naredbu Pridruži dizajn dizajna.Sam tip izgradnje pridruživanja ovisi, kao iu slučaju uzorka podataka, o rezultatu koji programer želi dobiti. Razmotrite najjednostavniji primjer. Isti upit morate ažurirati za iste uvjete. Takve upite se grade kako bi se optimizirao rad s bazom podataka. Zašto pisati različite upite za svaku tablicu, ako sve manipulacije podacima možete napraviti u jednom upitu? Primjer MySQL Update Join-a u našem slučaju bio bi:

    Konstruiranje složenih upita

    Vrlo često, kada se radi s bazom podataka, potrebno je graditi upite ne samo s asocijacijom nekoliko tablica, već is korištenjem pod-upita. Takvi zadaci su prilično komplicirani za razumijevanje programera početničke baze podataka. Poteškoća je u tome što morate razmisliti o svakom koraku, odrediti koje podatke iz koje tablice ili upit trebate dobiti i kako će kasnije raditi s njima. Za određeno razumijevanje, možete razmotriti (u MySQL-u) primjere složenih upita. Ako ste novi u bazi podataka i tek počinjete raditi s njom, onda će takva obuka imati koristi. Idealna opcija će biti MySQL Left Left Primjeri.
    Ovaj zahtjev vratit će nam 58 zapisa ugovora o prodaji, na kojima se nalazi stanje sredstava za odabrani datum. U ovom slučaju, to je trenutni datum. Također u uzorku je uvjet da naziv ugovora treba biti znak - "123". Prikazane informacije (podaci) prikazane na zaslonu imat će sortiranje - sortiranje prema broju ugovora. U sljedećem primjeru prikazat će se detalji svih uplata koje će biti izvršenenaveden je broj ugovora.

    Korištenje podupita

    Kao što je već spomenuto, pri radu s bazama podataka možete kombinirati ne samo tablice nego i tablicu upita. Ovaj se dizajn uglavnom koristi za ubrzavanje upita i njegovo optimiziranje. Na primjer, ako trebate odabrati samo dva polja iz tablice koja ima nekoliko stotina polja i, recimo, tisuću zapisa, onda biste trebali koristiti upit koji vraća samo obavezna polja i kombinirati ga s osnovnim uzorkom podataka. Kao primjer MySQL Join Select, možete razmotriti zahtjev ove vrste:
    ​​Ovo nisu svi načini za korištenje standardnih MySQL konstrukata, već samo standardnih. Kako koristiti dizajn Pridružite se iu kojim ga vrstama rješava programer, ali vrijedi se sjetiti i uzeti u obzir koji rezultat treba dobiti kada se upit izvrši.

    Povezane publikacije