Colectarea datelor

Dacă doriți să preluați date din mai multe tabele de baze de date, utilizați operația de îmbinare definită în algebra relațională. Rândurile unei mese sunt conectate la rândurile celeilalte în funcție de valorile comune din coloanele corespunzătoare - coloanele cheilor primare și străine.

Baza de date Oracle7 acceptă următoarele metode de conectare:
  • un compus equi;
  • non-equi-join;
  • conexiune externă;
  • masă de conectare cu ea însăși (recursiune).

Relațiile dintre mese.

Atunci când sunt îmbinate mai multe tabele, este posibil ca, ca urmare a unei interogări, să se obțină un produs cartezian, care se formează dacă:

  • condiția de conectare este omisă;
  • condiția de conectare este nevalidă;
  • Toate rândurile primei mese sunt conectate la toate rândurile din tabelul 2.

Pentru a evita obținerea unui produs cartezian, este întotdeauna necesar să se includă o condiție validă de îmbinare în clauza WHERE.

O interogare simplă cu o conexiune.

Acest tip de conexiune are loc atunci când condiția pentru conexiune indică egalitatea exactă a valorilor unei coloane cu valorile celeilalte. Adesea, aceste coloane sunt componente ale cheilor primare și străine.

Exemplu: Alăturați-vă tabelelor angajaților și departamentelor pentru a afișa numele, numărul și numele departamentului angajatului.

Rândurile a două tabele sunt combinate și numai rândurile cu valorile S_EMP.DEPT_ID și S_DEPT.ID sunt incluse în rezultat.

Prefixele sub formă de nume de tabele sunt utilizate pentru a distinge coloanele cu același nume de tabele diferite. Utilizarea prefixelor sub formă de nume de tabele mărește performanța interogării. Aceleași coloane din diferite tabele se pot distinge prin aliasurile lor. Totuși, dacă numele tabelelor sunt greoaie sau coincide?

Pentru a rezolva această situație, utilizați tabele de alias. Procedând astfel, trebuie să urmați următoarele reguli:

  • Se recomandă ca pseudonimele de masă să fie precedate de numele coloanelor;
  • alias-urile de masă sunt valabile numai pentru această SELECTARE;
  • dacă este creat aliasul de masă, trebuie să îl specificați înainte de referința coloanei și nu cu numele tabelului.

Exemplu: Afișează numele clientului, numărul regiunii și numele regiunii pentru toți clienții. Sunt utilizate alias-urile de coloane, iar alias-urile de masă sunt folosite pentru a simplifica trimiterile la tabele.

Alias-urile de masă pot conține până la treizeci de caractere, dar cu cât sunt mai scurte, cu atât mai bine. Acțiunea aliasului de masă se extinde numai la SELECT curent. Utilizarea aliaselor de tabelă poate reduce cantitatea de cod SQL, ceea ce reduce consumul de memorie.

Termeni suplimentari de căutare.

Pe lângă adăugarea în clauza WHERE, puteți să specificați și alte criterii pentru a restricționa rândurile primite în interogare. Deoarece conexiunea este necesară pentru potrivirea potrivirii, se adaugă o condiție suplimentară utilizând operatorul AND.

Exemplu: Rezultat al numelui, numărului departamentului și al departamentului "Menchu" al angajatului.

Simbolul de conectare externă; poate fi folosit de fiecare parte a condiției în clauza WHERE. (+) este specificată după numele tabelului în care nu există rânduri corespunzătoare

Operatorul de conexiune externă poate fi utilizat numai pe o parte a expresiei, unde nu există suficiente informații. Returnează rânduri de tabel pentru care nu există rândul corespunzător în celălalt tabel.

O condiție care presupune o conexiune externă nu poate utiliza operatorul IN și nu poate fi asociată cu alte condiții utilizând operatorul OR.

Exemplu: Concluzie pentru fiecare client al numelui său, precum și numele și numărul de identificare al reprezentantului de vânzări. Lista include numele chiar și acelor clienți care nu au un reprezentant de vânzări.

Articole similare