MySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandări

desen bază de date

Resursele de Internet practic nu diferă de bazele de date standard dezvoltate în sistem MS SQL SERVER. În mod obișnuit, pentru astfel de resurse, limba MY SQL este utilizată, deși poate fi folosită și pentru a dezvolta produse software standard pentru uz local. Dar acest articol nu este despre asta.

mysql se alăture

Adesea, atunci când lucrăm cu baze de date în fiecare dintre limbi, este sarcina de a face o selecție de date pentru ieșire într-o varietate de rapoarte, grafice și așa mai departe. De regulă, atunci când se implementează astfel de sarcini, este necesar să se folosească nu unul, ci mai multe tabele, combinându-le într-o singură interogare, complicând considerabil construcția sa. În același timp, este necesar să se țină seama de modul în care vor fi obținute datele, de modul în care tabelele vor fi "trase" și ce rezultat va fi cel mai acceptabil pentru programator. Pentru a rezolva astfel de probleme, una dintre construcțiile standard ale limbii MySQL este Join.

Conceptul cuvântului Join

Limbile de dezvoltare a bazelor de date, indiferent de limba în care se află, sunt utilizate ca bază de cuvinte standard din dicționarele în limba engleză (motiv pentru care, având în vedere faptul că cunoașteți limba engleză, va fi mult mai ușor să lucrați cu mese). Pentru a implementa conexiunea tabelelor în eșantion, se folosește același cuvânt - Alăturați-vă. În limba de programare a bazelor de date utilizate SQL-ul meu. Traducerea acestui cuvânt oficial este exact aceeași ca și în limba însăși - "unificare".

Interpretarea constructului MySQL-Join și oricare dintre ele vor fi exact la fel. Dacă descifrăm scopul proiectării, și anume schema de funcționare a acesteia, obținem următoarea semnificație: construcțiile vor permite colectarea câmpurilor necesare din diferite tabele sau interogări imbricate într-un singur eșantion.

Tipuri de structuri pentru asociere

mysql se alăture

Dacă programatorul trebuie să culeagă un eșantion din mai multe tabele și știe care sunt câmpurile cheie din ele și care sunt datele necesare pentru raport, atunci una din construcțiile de bază ale uniunii poate fi utilizată pentru a obține rezultatul dorit. Construcțiile de bază (pentru mesele de îmbinare) sunt patru:

  1. Intrarea internă.
  2. Intrarea în cruce.
  3. Ajunge la stânga.
  4. Intrați drept.

În funcție de sarcină, fiecare dintre modelele standard va da rezultate diferite, ceea ce vă va permite să primiți rapoarte despre diferiți parametri într-un timp scurt.

Crearea și popularea tabelelor pentru utilizare ulterioară

Înainte de a începe, de exemplu, luați în considerare mecanismele de lucru cu federațiile de date, merită pregătit mai multe tabele, cu care vom continua să lucrăm. Acest lucru va ajuta vizual vizual toate principiile operatorilor, în plus, astfel, începătorii sunt mai ușor de învățat toate elementele de bază ale tabelelor de programare.

Primul tabel va descrie unele elemente pe care o persoană le întâlnește în mod constant pe tot parcursul vieții.

mysql se alăture

În al doilea tabel, descriem câteva proprietăți ale obiectelor din prima masă, astfel încât să putem lucra cu ele în viitor.

stânga se alăture mysql

În general, două mese vor fi suficiente pentru a-și arăta munca prin exemplu. Acum puteți începe să luați în considerare modelele noastre.

Utilizarea Inner Join

Când utilizați constructul MySQL-Join Ineer, merită luați în considerare câteva dintre caracteristicile sale. Acest design vă permite să selectați din ambele tabele numai acele înregistrări care se află atât în ​​primul tabel, cât și în al doilea. Cum funcționează? În primul tabel avem tasta principală - ID, care indică numărul de serie al înregistrărilor din tabel.

Când se creează al doilea tabel, aceeași cheie este folosită ca număr de ordine, un exemplu poate fi analizat în figuri. Atunci când selectați date, operatorul Select va determina numai înregistrările ale căror numere de ordine sunt identice, ceea ce înseamnă că acestea există în primul și al doilea tabel.

Când utilizați designul, trebuie să înțelegeți ce fel de date trebuie să obțineți. Greșeala cea mai frecventă, mai ales pentru un programator începător baze de date, aceasta este irațională și necorespunzătoare a proiectului Inner Join. De exemplu, MySQL Inner Join, puteți lua în considerare un script care ne va reveni din tabele descrise și completate anterior despre informații despre obiecte și proprietățile acestora. Dar pot exista mai multe moduri de utilizare a structurii. În acest sens, My SQL este un limbaj foarte flexibil. Deci, puteți lua în considerare exemple de utilizare a MySQL Inner Join.

Combinarea tabelelor fără specificarea parametrilor. În acest caz, obținem rezultatul unui astfel de plan:

Intrare internă în MySQL

Dacă indicăm folosind cuvântul Utilizare că este necesar să țineți cont de tastele principale ale înregistrărilor din tabele, rezultatul selecției se va schimba radical. În acest caz, primim o probă care va returna numai acele rânduri care au aceleași chei principale.

mysql se alăture exemplelor

Este, de asemenea, posibilă utilizarea celei de-a treia variante a utilizării structurii, atunci când interogarea "on" specifică câmpurile pe care ar trebui să li se alăture tabelele. În acest caz, eșantionul va returna următoarele date:

mysql join join select

Caracteristicile utilizării asocierii "Left Join"

Dacă luăm în considerare un alt mod de combinare a tabelelor utilizând constructul MySQL-Join, puteți vedea diferența dintre datele care sunt date. Acest mecanism este construcția stângă.



Utilizarea constructului "Alăturați-vă la stânga" MySQL are câteva caracteristici și, la fel ca Inner, necesită o înțelegere clară a rezultatului care trebuie obținut.

În acest caz, toate înregistrările de la primul tabel vor fi selectate mai întâi și ulterior vor fi atașate înregistrări din tabelul de proprietăți secundar. În acest caz, în cazul în care există o înregistrare, de exemplu, „scaun“, în primul tabel și al doilea tabel nu sunt proprietăți la acesta, stânga operatorul afișează în fața intrării la nul, care spune programatorul că semnele de pe acest subiect nu este auzit .

Utilizarea acestui design vă va permite să stabiliți câmpurile sau, de exemplu, bunurile din magazin nu sunt expuse prețului, perioada de garanție și așa mai departe.

Exemplul din stânga

Pentru a considera operatorul de construcție MySQL la stânga în practică, folosim tabelele descrise anterior. De exemplu, trebuie să selectați întreaga listă de produse aflate în magazin și să verificați care dintre acestea nu sunt marcate cu semne sau proprietăți. În acest caz, eșantionul va afișa toate produsele de pe ecran, iar pentru cele care nu au o proprietate, se vor afișa valori goale.

actualizare mysql join

Utilizarea Unde în constructul Join

Ca parametru, o asociere poate include nu numai câmpurile la care doriți să conectați tabelele, ci poate include și operatorul Clauză Where.

De exemplu, luați în considerare un script care ar trebui să ne întoarcă numai acele înregistrări care nu au o caracteristică. În acest caz, în constructul Alăturați, trebuie să adăugați o declarație de condiție și să specificați exact ceea ce doriți să reveniți ca rezultat.

Când este folosit în MySQL Join - În cazul în care trebuie să înțelegeți în mod clar că vor fi afișate numai acele înregistrări la care se aplică condiția specificată și selectarea va arăta astfel:

mysql se alăture în cazul în care

Astfel de solicitări vă permit să efectuați selecții pe date specifice care se referă la starea aleasă de programator. Există mai multe astfel de condiții, dar în același timp specificând parametrii de selecție a datelor din tabelele îmbinate.

Folosind Alăturați pentru a schimba datele în tabele

Constructul Join este, de fapt, universal. Acesta permite nu numai să facă o varietate de probe, ci și să includă în cererile de la unul la mai multe tabele, să introducă condiții suplimentare în eșantion. Designul poate fi folosit și pentru alte operații de date. Deci, Join poate fi folosit pentru a modifica datele într-un tabel. Mai degrabă, pentru a clarifica condițiile din tabel sau în acele cazuri, dacă doriți să actualizați datele în mai multe tabele pentru aceleași condiții.

De exemplu, ia în considerare această problemă. Există trei tabele în care există date. Trebuie să faceți o modificare a datelor din ambele tabele, utilizând o interogare. Doar pentru a rezolva astfel de sarcini, puteți utiliza constructul Join în comanda Update. Tipul constructului Alăturați depinde, ca și în cazul preluării datelor, de rezultatul dorit de programator.

Să luăm în considerare cel mai simplu exemplu. Trebuie să actualizați aceeași interogare pentru aceleași condiții. Astfel de interogări sunt construite pentru a optimiza activitatea cu baza de date. De ce scrieți diferite interogări pentru fiecare tabel, dacă puteți efectua toate manipulările de date cu o singură interogare? exemplu Actualizare MySQL Alăturați-vă în cazul nostru vor fi:

mysql stânga se alăture exemple

Construirea de interogări complexe

Destul de des atunci când se lucrează cu o bază de date, este necesar să se creeze interogări nu numai prin fuziunea mai multor mese, ci și cu utilizarea subdotării. Astfel de sarcini sunt destul de dificile pentru înțelegerea unui programator de baze de date pentru începători. Dificultatea este că trebuie să gândiți prin fiecare pas, să determinați ce date din care tabelă sau interogare trebuie să obțineți și cum veți avea nevoie să lucrați cu ei în viitor.

Pentru o înțelegere mai specifică, puteți lua în considerare (în MySQL Join) exemple de interogări complexe. Dacă sunteți începător și începeți să lucrați cu baze de date, atunci o astfel de instruire va fi benefică. Opțiunea ideală va fi exemplele MySQL left join.

stânga se alăture mysql

Această solicitare ne va returna 58 de înregistrări ale contractelor de vânzare pentru care un sold de numerar este finalizat sau există pentru data selectată. În acest caz, aceasta este data curentă. De asemenea, în eșantion, sa adăugat condiția ca numele contractului să conțină simbolurile "123". Informațiile afișate pe ecran (datele) vor fi sortate - comandând numărul de contract.

Următorul exemplu va afișa detaliile tuturor plăților în care este specificat numărul contractului.

mysql se alăture

Utilizarea Subqueries

Așa cum am menționat mai devreme, atunci când lucrați cu baze de date, puteți combina nu numai tabele, ci și un tabel cu o interogare. Acest design este utilizat în principal pentru a accelera interogarea și a optimiza interogarea.

De exemplu, dacă doriți să selectați numai două câmpuri dintr-o tabelă care are mai multe sute de câmpuri și, de exemplu, o mie de înregistrări, atunci ar trebui să utilizați o interogare care returnează numai câmpurile obligatorii și o îmbinați cu eșantionul principal de date. Ca exemplu de MySQL Join Select, puteți lua în considerare o interogare de acest tip:

Acestea nu sunt toate modurile de a utiliza constructe standard MySQL, ci doar cele standard. Modul de folosire a constructului Join și în care din formele sale, programatorul însuși decide, dar merită să ne amintim și să luăm în considerare rezultatul care trebuie obținut atunci când interogarea este executată.

Distribuiți pe rețelele sociale:

înrudit
Detalii despre ceea ce este pe serverele FTPDetalii despre ceea ce este pe serverele FTP
Fișier SQL. Formatul de fișier SQL: descrierea extensieiFișier SQL. Formatul de fișier SQL: descrierea extensiei
MySQL este ceea ce și unde se aplică?MySQL este ceea ce și unde se aplică?
Arhitectura client-server: trăsături de interacțiuneArhitectura client-server: trăsături de interacțiune
Crearea unei baze de date MySQL face parte din orice siteCrearea unei baze de date MySQL face parte din orice site
MySQL - ce este? Eroare MySQLMySQL - ce este? Eroare MySQL
Folosind MySQL: inserați înFolosind MySQL: inserați în
MySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQLMySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQL
MySQL - Comenzi pentru Windows ConsoleMySQL - Comenzi pentru Windows Console
"Capcane" de comenzi DML Actualizați MySQL"Capcane" de comenzi DML Actualizați MySQL
» » MySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandări