Prezentare - interogări SQL în baze de date - descărcări de prezentări în domeniul informaticii

Combinarea meselor (îmbinare internă) De exemplu. noi în cerere am făcut următoarea condiție: dacă ambele tabele au aceleași identificatori, atunci liniile cu acest identificator trebuie combinate într-un șir de rezultate.







Combinarea tabelelor (schemă internă) În schemă, aceasta arată astfel: Dacă există un șir într-unul din tabelele unite cu un identificator care nu se află în cealaltă tabelă asociată, rândul cu un astfel de identificator nu va apărea în tabelul rezultat. În exemplul nostru, există utilizator Oleg (id = 5), dar el nu a creat fire, astfel că interogarea nu o are. Când specificați o condiție, numele coloanei este scris după numele tabelului în care se află această coloană (prin punct). Acest lucru este făcut pentru a evita confuzia, deoarece coloanele din tabele diferite pot avea același nume.

Sintaxa asociere cu condiția: SELECT imya_tablitsy_1.imya_stolbtsa1_tablitsy_1, imya_tablitsy_1.imya_stolbtsa2_tablitsy_1, imya_tablitsy_2.imya_stolbtsa1_tablitsy_2, imya_tablitsy_1 imya_tablitsy_2.imya_stolbtsa2_tablitsy_2 DIN, UNDE imya_tablitsy_2 imya_tablitsy_1.imya_stolbtsa_po_kotoromu_obedinyaem = imya_tablitsy_2.imya_stolbtsa_po_kotoromu_obedinyaem; Dacă numele coloanei este unic, atunci numele tabelului poate fi omis (așa cum am făcut în exemplu), dar acest lucru nu este recomandat. Asociațiile fac posibilă selectarea oricăror informații din orice tabel și pot exista trei și patru mese care pot fi îmbinate, pot exista mai multe condiții pentru uniune. Combinarea meselor (îmbinare internă)







Alăturați tabele (join extern) Vă permite să afișați toate rândurile dintr-un tabel și rândurile asociate dintr-un alt tabel. De exemplu: trebuie să afișăm toți utilizatorii și subiectele pe care le-au creat, dacă există. Dacă vom folosi interfața interioară discutată mai sus, vom ajunge la următoarele: adică în tabelul rezultat există doar acei utilizatori care au creat subiectele. Și trebuie să vedem toate numele.

Combinarea tabelelor (extern join) Să modificăm puțin interogarea: SELECT users.name, topics.topic_name FROM users LOCAȚI subiecte JOIN OUTER pe users.id_user = topics.id_author; Și obțineți rezultatul dorit - toți utilizatorii și temele pe care le-au creat. Dacă utilizatorul nu a creat o temă, dar coloana corespunzătoare este NULL.

Tabelele de îmbinare (ALaTURAtI exterior) Solicitarea a fost adăugată la cuvântul cheie - LEFT OUTER JOIN, indicând astfel că este necesară din tabelul de la stânga pentru a lua toate rândurile, și de a schimba cuvântul cheie WHERE ON. În plus față de cuvântul cheie LEFT OUTER JOIN, poate fi folosit cuvântul cheie RIGHT OUTER JOIN. Apoi vor fi selectate toate rândurile din tabelul din dreapta și cele asociate din tabelul stâng. Dacă scrieți FULL OUTOUN JOIN, va apărea o conexiune exterioară completă, care va extrage toate rândurile din ambele tabele și va lega împreună cele care pot fi legate. Sintaxa pentru următorul exterior alătura: imya_tablitsy_1.imya_stolbtsa SELECT, imya_tablitsy_2.imya_stolbtsa imya_tablitsy_1 DE TIP INTERCONECTARE imya_tablitsy_2 PE uslovie_obedineniya;

Tabelele de îmbinare (se alăture exterior) sa schimbat în cererea noastră la dreapta Uniunii stânga are acum toate subiectele (toate rândurile din tabelul din dreapta), și utilizatorii numai aceste fire create (de exemplu, din tabelul din stânga sunt selectate numai acele linii care sunt asociate cu dreapta).

Gruparea înregistrărilor și funcția COUNT (). în subiectele noastre există 4 mesaje

Gruparea înregistrărilor și a funcției COUNT () Rezultatul interogării: Dacă în câmpul id_topic lipseau valori, atunci astfel de rânduri s-ar fi îmbinate într-un grup separat cu o valoare NULL.







Articole similare

Trimiteți-le prietenilor: