MySQL MariaDB

MySQL Subqueries

MySQL Subqueries
O interogare este o interogare SQL într-o interogare mai mare care este recursivă sau o interogare este considerată o interogare internă. În schimb, o interogare externă este denumită interogarea care include interogarea. O interogare MySQL poate fi încorporată în interogări, inclusiv SELECT, INSERT, UPDATE sau DELETE. În plus, în cadrul unei alte subinterogări, poate fi amplasată o subinterogare. Expresia subinterogare trebuie închisă între paranteze oriunde este utilizată. Vă vom învăța cum și când să utilizați subinterogarea MySQL pentru a compune interogări complicate și pentru a descrie ideea subinterogării asociate. Deschideți linia de comandă de pe desktop și scrieți parola pentru a începe să o utilizați. Apăsați Enter și continuați.

Subinterogare în înregistrările cu tabel unic:

Creați un tabel numit „animale” în datele din baza de date.'Adăugați următoarea înregistrare de mai jos a diferitelor animale cu proprietăți diferite așa cum sunt afișate. Obțineți această înregistrare folosind interogarea SELECT, după cum urmează:

>> SELECT * DIN date.animale;

Exemplul 01:

Să recuperăm înregistrările limitate ale acestui tabel folosind subconsultările. Folosind interogarea de mai jos, știm că subinterogarea va fi executată mai întâi, iar ieșirea sa va fi utilizată în interogarea principală ca intrare. O subinterogare obține pur și simplu vârsta în care prețul animalului este de 2500. Vârsta unui animal al cărui preț este 2500 este 4 în tabel. Interogarea principală va selecta toate înregistrările tabelului în care vârsta este mai mare de 4, iar rezultatul este dat mai jos.

>> SELECT * DIN date.animale UNDE Vârstă> (SELECȚIONEAZĂ Vârsta din datele.animale UNDE Preț = '2500');

Exemplul 02:

Să folosim același tabel în situații diferite. În acest exemplu, vom folosi o anumită funcție în loc de clauza WHERE în subconsultare. Am luat media tuturor prețurilor date pentru animale. Prețul mediu va fi de 3189. Interogarea principală va selecta toate înregistrările animalelor cu un preț mai mare de 3189. Veți obține rezultatul de mai jos.

>> SELECT * DIN date.animale UNDE Preț> (SELECT AVG (Preț) DIN date.animale);

Exemplul 03:

Să folosim clauza IN în interogarea principală SELECT. În primul rând, interogarea va prelua prețuri mai mari de 2500. După aceea, interogarea principală va selecta toate înregistrările tabelului „animale” în care se află prețul în rezultatul subinterogării.

>> SELECT * DIN date.animale WHERE Price IN (SELECTAȚI prețul din date.animale UNDE Preț> 2500);

Exemplul 04:

Am folosit subinterogarea pentru a prelua numele animalului unde prețul este de 7000. Deoarece acel animal este o vacă, de aceea numele „vacă” va fi returnat la interogarea principală. În interogarea principală, toate înregistrările vor fi extrase din tabelul unde numele animalului este „vacă”.„Deoarece avem doar două înregistrări pentru„ vaca ”animalelor, de aceea avem rezultatul de mai jos.

>> SELECT * DIN date.animale UNDE Nume = (SELECT Nume DIN date.animale UNDE Preț = '7000');

Subinterogare în mai multe înregistrări de tabel:

Să presupunem că cele două tabele de mai jos, „student” și „profesor”, din baza de date. Să încercăm câteva exemple de subinterogări folosind aceste două tabele.

>> SELECT * DIN date.student;
>> SELECT * DIN date.profesor;

Exemplul 01:

Vom prelua date dintr-un tabel folosind subcercarea și le vom folosi ca intrare pentru interogarea principală. Aceasta înseamnă că aceste două tabele se pot raporta într-un fel. În exemplul de mai jos, am folosit subinterogarea pentru a prelua numele elevului din tabelul „student” unde numele profesorului este „Samina.„Această interogare va întoarce„ Samina ”la tabelul principal de interogare„ profesor ”.„Interogarea principală va selecta apoi toate înregistrările legate de numele profesorului” Samina.„Deoarece avem două înregistrări pentru acest nume, de aceea avem acest rezultat.

>> SELECT * DIN date.profesor UNDE TeachName = (SELECT TeachName DIN date.student WHERE TeachName = 'Samina');

Exemplul 02:

Pentru a elabora subconsultarea în cazul diferitelor tabele, încercați acest exemplu. Avem o subinterogare care preia numele profesorului de la elevul de la masă. Numele ar trebui să aibă „i” în orice poziție a valorii sale. Aceasta înseamnă că toate numele din coloana TeachName cu „i” în valoare vor fi selectate și returnate la interogarea principală. Interogarea principală va selecta toate înregistrările din tabelul „profesor” în care numele profesorului este în rezultatul returnat de subinterogare. Întrucât subinterogarea a returnat 4 nume de profesori, de aceea vom avea o înregistrare a tuturor acestor nume care se află în tabelul „profesor”.'

>> SELECT * DIN date.profesor WHERE TeachName IN (Selectați TeachName DIN date.student UNDE TeachName LIKE '% i%');

Exemplul 03:

Luați în considerare cele două tabele de mai jos, „ordine” și „ordine1”.

>> SELECT * DIN date.Ordin;
>> SELECT * DIN date.comanda1;

Să încercăm ORICE clauză din acest exemplu pentru a elabora subinterogare. Subinterogarea va selecta „id” din tabelul „order1”, unde coloana „Status” are valoarea „Neplătit”.„Id-ul” poate fi mai mare de 1. Acest lucru înseamnă că mai mult de o valoare ar fi returnată la interogarea principală pentru a obține rezultatele tabelului „comandă”. În acest caz, ar putea fi utilizat orice „id”. Am obținut rezultatul de mai jos pentru această interogare.

>> SELECȚIONEAZĂ ARTICOLUL, Vânzări, ID din datele.comanda WHERE id = ORICE (SELECT ID FROM data.order1 WHERE Status = 'Neplătit');

Exemplul 04:

Să presupunem că aveți datele de mai jos în tabelul „ordine1” înainte de a aplica orice interogare.

>> SELECT * DIN date.comanda1;

Să aplicăm interogarea dintr-o interogare pentru a șterge unele înregistrări din tabelul „ordine1”. În primul rând, subinterogarea va selecta valoarea „Stare” din tabelul „comandă” în care articolul este „Carte”.„Interogarea returnează„ Plătit ”ca valoare. Acum, interogarea principală va șterge rândurile din tabelul „ordine1”, unde valoarea coloanei „Stare” este „Plătită”.'

>> ȘTERGEȚI DIN date.order1 WHERE Status = (SELECT Status FROM data.comanda WHERE Item = 'Carte');

După verificare, acum înregistrările de mai jos au rămas în tabelul „ordine1” după executarea interogării.

>> SELECT * DIN date.comanda1;

Concluzie:

Ați lucrat eficient cu o mulțime de subinterogări în toate exemplele de mai sus. Sperăm că totul este clar și curat acum.

Cum se arată FPS Counter în jocurile Linux
Jocurile cu Linux au primit un impuls major când Valve a anunțat suportul Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe j...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...