Instrucțiunea SQL INNER JOIN: exemple, sintaxă și caracteristici

Dezvoltarea oricărei baze de date nu implicănumai crearea și completarea de tabele cu o varietate de informații, dar și lucrul în continuare cu datele. Pentru executarea corectă a diferitelor sarcini pentru selectarea datelor din tabele și generarea rapoartelor, se utilizează standardul Select construct.

sql exemplu de intrare internă

Datele obținute din tabele

Dacă luăm în considerare problema selectării datelor sauconstruirea unui anumit raport, puteți determina nivelul de complexitate a acestei operațiuni. De regulă, atunci când se lucrează cu baze de date serioase (pe baza volumului de informații), care se formează, de exemplu, în magazinele online sau în marile companii, eșantionarea datelor nu se va limita la un singur tabel. În mod obișnuit, eșantioanele pot proveni dintr-un număr destul de mare de mese nu numai interconectate, ci și de interogările / subdotările imbricate pe care le realizează programatorul, în funcție de sarcina atribuită. Pentru prelevarea de probe dintr-o singură masă, puteți utiliza cel mai simplu design:

Selectați * din Persoană

unde Persoana este numele tabelului din care se selectează datele.

Dacă este nevoie să selectați date din mai multe tabele, puteți utiliza unul dintre modelele standard pentru a combina mai multe tabele.

Modalități de conectare a unor tabele suplimentare

Dacă luăm în considerare utilizarea unor astfel de structuri la nivelul inițial, atunci putem distinge următoarele mecanisme de conectare a numărului necesar de tabele pentru eșantion, și anume:

  1. Operator intrare internă.
  2. Alăturați-vă la stânga sau, acesta este cel de-al doilea mod de înregistrare, intrați în afară la stânga.
  3. Intrarea în cruce.
  4. Intrați complet.

Utilizarea tabelelor de operatori se poate realiza în practică, luând în considerare utilizarea operatorului SQL - Inner Join. Un exemplu de utilizare a acestuia va arăta astfel:

Selectați * din Persoană

Inner join Subdivision pe Su_Person = Pe_ID

Limba SQL și operatorul Join Joiner Inner poate fiUtilizați nu numai pentru a fuziona două sau mai multe tabele, ci și pentru a conecta alte subdotări, ceea ce facilitează foarte mult activitatea administratorilor de baze de date și, de regulă, poate accelera în mod semnificativ executarea anumitor interogări structurale complexe.

Combinarea datelor în tabele rând după rând

operatorul sql exemple de intrare interioară

Dacă luați în considerare conectarea unui număr mare de subcheiri și asamblarea datelor într-un singur rând de rând pe rând, puteți utiliza și operatorii Union și Union All.

Aplicarea acestor modele va depinde de sarcina atribuită dezvoltatorului și de rezultatul pe care dorește să-l atingă în cele din urmă.

Descrierea operatorului Inner Join

În cele mai multe cazuri, pentru a fuziona mai multetabelele din SQL utilizează operatorul Inner Join. Descrierea interfeței interioare în SQL este destul de simplă pentru un programator mediu de înțeles, care abia începe să înțeleagă bazele de date. Dacă luăm în considerare descrierea mecanismului de funcționare a acestei construcții, obținem următoarea imagine. Logica operatorului în ansamblul său se bazează pe posibilitatea de a intersecta și de a preleva numai acele date care există în fiecare dintre tabelele care intră în interogare.

Dacă luăm în considerare această lucrare din punctul de vedere al interpretării grafice, obținem structura SQL Inner Join, exemplul căruia poate fi prezentat cu ajutorul următoarei scheme:

SQL exemplu de sinteză internă

De exemplu, avem două tabele, schema din careeste prezentat în figură. Ei, la rândul lor, au un număr diferit de înregistrări. În fiecare dintre tabele există câmpuri care sunt legate între ele. Dacă încercați să explicați lucrarea operatorului pe baza cifrei, rezultatul returnat va fi sub forma unui set de înregistrări din două tabele, în care numerele câmpurilor aferente coincid. Pur și simplu, interogarea va returna numai acele înregistrări (din tabelul numărul doi), datele despre care se află în tabelul numărul unu.

Sintaxă a operatorului Inner Join

Așa cum am menționat mai devreme, operatorul Inner Join, șieste sintaxa lui neobișnuit de simplă. Pentru a organiza legăturile între tabele într-un singur eșantion, va fi suficient să vă amintiți și să utilizați următoarea schemă principală pentru construirea unui operator, care este scris într-o singură linie a codului SQL al programului, și anume:

  • Inner Join [Numele mesei] pe [câmpul cheie din tabelul la care ne conectăm] = [Câmpul cheie al mesei conectate].

Pentru comunicare în acest operator, principalultastele tabelului. De regulă, în grupul de tabele care stochează informații despre angajați, persoana și subdiviziunea descrisă anterior au cel puțin o înregistrare similară. Deci, să examinăm mai atent declarația SQL Inner Join, un exemplu despre care a fost arătat puțin mai devreme.

Exemplu și descriere a conexiunii la o singură selecție de tabel

Avem un tabel Persoană în care stocăminformații despre toți angajații care lucrează în companie. Rețineți că cheia principală a acestui tabel este câmpul - Pe_ID. Doar pe ea și va exista o grămadă.

A doua tabelă de subdiviziune va fi stocatăInformații despre unitățile în care lucrează angajații. Acesta, la rândul său, este legat cu ajutorul câmpului Su_Person cu tabelul Person. Ce spune? Pe baza schemei de date, puteți spune că tabelul departamentului pentru fiecare intrare din tabelul Angajați va conține informații despre departamentul în care lucrează. În acest sens, operatorul Inner Join va funcționa.

Pentru o utilizare mai ușor de înțeles, luați în considerare declarația SQL Inner Join (exemple de utilizare a acesteia pentru una și două tabele). Dacă luăm în considerare un exemplu pentru o singură masă, atunci totul este simplu:

Selectați * din Persoană

Inner join Subdivision pe Su_Person = Pe_ID

Un exemplu de conectare a două mese și a unui subdotare

sql și să se alăture operatorului de îmbinare internă

SQL Inner Join operator, exemple de utilizarecare pentru selectarea datelor din mai multe tabele poate fi organizată ca mai sus, funcționează pe un principiu puțin mai complicat. Pentru două mese complicăm problema. De exemplu, avem tabelul Depart, care stochează informații despre toate departamentele din fiecare departament. În acest tabel, numărul departamentului și numărul angajatului sunt înregistrate, iar eșantionul de date trebuie completat cu numele fiecărui departament. Privind în perspectivă, merită spus că pot fi folosite două metode pentru a rezolva această problemă.

Prima modalitate este de a conecta tabelul departamentului la eșantion. În acest caz, puteți organiza solicitarea în acest fel:

Selectați Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name de la Persoană

Inner join Subdivision pe Su_Person = Pe_ID

Intrare internă Deplasați-vă pe Su_Depart = Dep_ID și Pe_Depart = Dep_ID

A doua metodă de rezolvare a problemei este de a folosisubquery, în care nu vor fi selectate toate datele, ci doar datele necesare din tabelul de departamente. Acest lucru, spre deosebire de prima metodă, va reduce timpul de interogare.

Selectați Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name de la Persoană

Inner join Subdivision pe Su_Person = Pe_ID

Intrare internă (Selectați Dep_ID, Dep_Name, Pe_Depart de la Plecare) ca T pe Su_Depart = Dep_ID și Pe_Depart = Dep_ID

Trebuie remarcat că acest design nu este întotdeaunapoate accelera interogarea. Uneori există cazuri când este necesar să se folosească eșantionarea suplimentară a datelor în tabelul temporar (dacă volumul lor este prea mare) și apoi să fie combinat cu eșantionul principal.

Un exemplu de utilizare a operatorului Inner Join pentru selecții dintr-un număr mare de mese

Construirea interogărilor complexe implicăutilizați pentru a selecta date un număr semnificativ de tabele și subdotări legate una de cealaltă. Aceste cerințe pot satisface sintaxa SQL Inner Join. Exemple de utilizare a operatorului în acest caz pot fi complicate nu numai de eșantioane din multe locuri de stocare a datelor, dar și de la un număr mare de subîncercări imbricate. Pentru un exemplu specific, puteți lua un eșantion de date din tabelele de sistem (operatorul Inner Join SQL). Un exemplu - 3 tabele - în acest caz va avea o structură destul de complexă.

Intrarea internă sql exemplu 3 tabele

În acest caz, se adaugă încă trei (în tabelul principal) și se introduc mai multe condiții de selecție a datelor.

Atunci când utilizați operatorul Inner Joinamintiți-vă că cu cât este mai complexă interogarea, cu atât mai mult va fi implementată, deci merită să căutați modalități de a executa mai repede și de a rezolva sarcina.

Intrarea internă sql exemplu 3 tabele

concluzie

În cele din urmă aș vrea să spun un lucru: lucrul cu bazele de date nu este cel mai dificil lucru care este în programare, deci dacă doriți ca toată lumea să poată stăpâni cunoștințele de construire a bazelor de date și, eventual, să câștige experiență, veți putea să lucrați cu ele la nivel profesional.

</ p>
a placut:
1
Articole similare
Sintaxă: cum arată această secțiune.
Infinit pentru (Java) buclă
Cum se compun interogările SQL - detaliate
Coalesce sql: descriere, caracteristici
MySQL JOIN: descriere, exemplu de utilizare
Conversia de tip. Funcții rotunde și Trunc
HAVING SQL: descriere, sintaxă, exemple
Operatorul benzinării: oportunități de carieră
Operatorul de calculatoare
Postări populare
în sus