Instrucțiunea SQL INNER JOIN: exemple, sintaxă și caracteristici
Dezvoltarea oricărei baze de date implică nu numai crearea și completarea tabelelor cu diverse informații, dar și lucrul cu datele. Pentru executarea corectă a diferitelor sarcini pentru selectarea datelor din tabele și generarea de rapoarte, se utilizează standardul Select construct.
conținut
- Datele obținute din tabele
- Modalități de conectare a unor tabele suplimentare
- Combinarea datelor în tabele rând după rând
- Descrierea operatorului inner join
- Sintaxă a operatorului inner join
- Exemplu și descriere a conexiunii la o singură selecție de tabel
- Un exemplu de conectare a două mese și a unui subdotare
- Un exemplu de utilizare a operatorului inner join pentru selecții dintr-un număr mare de mese
- Concluzie
Datele obținute din tabele
Dacă luați în considerare sarcina de a selecta date sau de a construi un anumit raport, puteți determina nivelul de complexitate al acestei operații. 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:
- Operator intrare internă.
- Alăturați-vă la stânga sau, acesta este cel de-al doilea mod de înregistrare, intrați în afară la stânga.
- Intrarea în cruce.
- 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 |
SQL Limbă și Alăturați-vă Alăturați-vă interioară operator poate fi folosit nu numai pentru combinarea a două sau mai multe tabele, dar, de asemenea, pentru a conecta alte sub-interogări, care facilitează foarte mult activitatea de administratori de baze de date, și, de regulă, poate accelera în mod semnificativ punerea în aplicare a structurilor de interogare specifice, complicate.
Combinarea datelor în tabele rând după rând
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 majoritatea cazurilor, utilizați operatorul Inner Join pentru a vă alătura mai multor tabele în SQL. 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:
De exemplu, avem două tabele, diagrama căreia este 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
După cum am menționat mai devreme, operatorul Inner Join, și anume sintaxa sa, este extrem 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 comunicarea în acest operator, se folosesc tastele principale ale tabelelor. 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 o tabelă Persoană care stochează informaț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ă.
Al doilea tabel al subdiviziunii va stoca informații despre departamentele î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
Operatorul SQL Inner Join, ale cărui exemple de utilizare pentru recuperarea datelor din mai multe tabele pot fi organizate în modul de 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 |
Cea de-a doua metodă de rezolvare a problemei este utilizarea unei subdotări în care nu vor fi selectate toate datele, ci doar datele solicitate, din tabelul departamentului. 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 Interioară se alăture (Selectați Dep_ID, Dep_Name, Pe_Depart din Plecare) ca T pe Su_Depart = Dep_ID și Pe_Depart = Dep_ID |
Trebuie remarcat faptul că un astfel de design nu poate întotdeauna să accelereze 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 de interogări complexe implică utilizarea unui număr semnificativ de tabele și subdotări legate unul de celălalt pentru a prelua date. 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ă.
Î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 Join, rețineți că cu cât interogarea este mai complexă, 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.
concluzie
În final, aș dori să spun un singur lucru: a lucra cu baze de date - nu este cel mai dificil lucru în programare, așa că dacă doriți fiecare persoană va fi în măsură să dobândească cunoștințe pentru a construi o bază de date, și de-a lungul timpului, să câștige experiență, veți obține pentru a lucra cu ei la un nivel profesional .
- Fișier SQL. Formatul de fișier SQL: descrierea extensiei
- Crearea unei baze de date MySQL face parte din orice site
- Cum se compun interogările SQL - exemple detaliate
- Care sunt datele? Tipuri de date
- Lucrul cu baza de date: care sunt solicitările
- MySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQL
- HAVING SQL: descriere, sintaxă, exemple
- SQL (tipuri de date): tabel
- "Capcane" de comenzi DML Actualizați MySQL
- SQL unde: metode de aplicare și exemple
- MySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandări
- Crearea pas cu pas a unui tabel SQL
- Crearea interogărilor în Access. Tipuri de cereri
- Șterge instrucțiunea Șterge MySQL
- Ștergerea duplicatelor MySQL
- Accesați rezultatele probelor prin intermediul matricei de preluare MySQL
- Prelucrarea statistică a datelor și a caracteristicilor acestora
- Ce tipuri de baze de date există astăzi?
- Crearea unei baze de date: tehnici și soluții existente
- Concepte generale ale DBMS de acces
- DBMS este un sistem de management al datelor