SQL apakšvaicājumi ir vērtīgas funkcijas, kas ļauj mums iegult vienu vaicājumu citā, piešķirot lielāku nozīmi datu izgūšanai un manipulēšanai ar tiem sarežģītā veidā. To izmanto, lai iestatītu pagaidu tabulas vai starprezultātus, kas vēlāk tiks izmantoti ārējam vaicājumam.
Apakšvaicājums klauzulā FROM
FROM klauzulu var izmantot, lai norādītu apakšvaicājuma izteiksmi SQL. Apakšvaicājuma radītā relācija pēc tam tiek izmantota kā jauna relācija, kurai turpmākajām darbībām tiek lietots ārējais vaicājums. Apakšvaicājumi sadaļāFROMklauzula tiek izmantota, ja mums ir jāizveido pagaidu datu kopa, kas neeksistē nevienā fiziskā tabulā. Tas var būt ļoti noderīgi, strādājot ar sarežģītām datu kopām.
abs c kods
Korelācijas mainīgos no tabulām, uz kurām ir atsauce ārējā vaicājuma klauzulā FROM, nevar izmantot tieši FROM klauzulas apakšvaicājumos. Tālāk ir norādītas divas apakšvaicājuma izmantošanas sintakses klauzulā FROM, ko izmanto dažādos scenārijos.
1. Vienkāršs apakšvaicājumsFROMKlauzula:
ATLASĪT kolonnu 1 kolonnu 2
FROM (SELECT kolonna_x AS C1 kolonna_y FROM tabulas WHERE nosacījums) AS apakšvaicājuma_tabula
java valodas interviju jautājumiWHERE ārējais_nosacījums;
2. Apakšvaicājums sadaļāFROMKlauzula arJOIN:
ATLASĪT kolonnu 1 kolonnu 2
FROM (SELECT column_x AS C1 column_y FROM table WHERE PREDICATE_X) AS table2
JOIN table1 ON table2.some_column = tabula1.some_column
java listnodeKUR PREDIKĀTS;
Parametri:
- Apakšvaicājums : iekšējais vaicājums iekavās. Tas izgūst datus, kas darbosies kā pagaidu tabula.
- Alias : Apakšvaicājumam ir jāpiešķir aizstājvārds (
subquery_table), uz kuru jāatsaucas ārējā vaicājumā. - Ārējais vaicājums : ārējais vaicājums pēc tam var darboties ar šo pagaidu tabulu, kas izveidota, apakšvaicājumā piemērojot filtrus vai veicot papildu darbības.
Kā darbojas apakšvaicājumi klauzulā FROM
- Apakšvaicājuma novērtējums : Vispirms tiek novērtēts apakšvaicājums no klauzulā, un pēc tam novērtēšanas rezultāti tiek saglabāti jaunā pagaidu attiecībā.
- Ārējais vaicājums : pēc tam, kad apakšvaicājums ir izpildīts un atgriež datu kopu, tiek novērtēts ārējais vaicājums, atlasot tikai tos korešus no pagaidu relācijas, kas apmierina predikātu ārējā vaicājuma kur klauzulā.
Apakšvaicājuma izmantošanas piemērs klauzulā FROM
Apspriedīsim dažus reālās pasaules piemērus, lai saprastu, kā apakšvaicājumi klauzulā FROM darbojas praksē. Šeit mums ir divas tabulas Instruktors tabula, kurā ir informācija par pasniedzējiem, tostarp viņu alga un nodaļa. Otra ir nodaļa tabula, kurā ir informācija par dažādām nodaļām, ieskaitot nodaļas budžetu.
Instruktors Tabula
| Instruktora ID | Vārds | nodaļa | Alga |
|---|---|---|---|
| 44547 | Smits | Datorzinātne | 95 000 |
| 44541 | Bils | Elektriskās | 55 000 |
| 47778 | Vienatnē | Humanitārās zinātnes | 44 000 |
| 48147 | Ēriks | Mehāniski | 80 000 |
| 411547 | Balzams | Informācijas tehnoloģijas | 65 000 |
| 48898 | Jēna | Civilā | 50 000 |
nodaļa Tabula
| Nodaļas nosaukums | Budžets |
|---|---|
| Datorzinātne | 100 000 |
| Elektriskās | 80 000 |
| Humanitārās zinātnes | 50 000 |
| Mehāniski | 40 000 |
| Informācijas tehnoloģijas | 90 000 |
| Civilā | 60 000 |
1. piemērs: Atrodiet visus profesorus, kuru alga ir lielāka par visu katedru vidējo budžetu.
Šajā piemērā mēs izmantosim apakšvaicājumu no FROM, lai aprēķinātu visu nodaļu vidējo budžetu un pēc tam veiktu salīdzinājumu ar instruktoru algām.
Vaicājums:
SELECT I.InstructorID I.Name I.Department I.Salary
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;
Izvade
| Instruktora ID | Vārds | nodaļa | Alga |
|---|---|---|---|
| 44547 | Smits | Datorzinātne | 95 000 |
| 48147 | Ēriks | Mehāniski | 80 000 |
Paskaidrojums:
Huffman kodēšanas kods
- Visu nodaļu vidējais budžets no departamenta attiecības ir 70 000.
- Ēriks un Smits ir vienīgie instruktori instruktoru attiecībās, kuru alga ir lielāka par 70 000, un tāpēc viņi ir klātesoši attiecībā uz rezultātu.
Kāpēc izmantot apakšvaicājumus klauzulā FROM?
Apakšvaicājumu izmantošanai klauzulā FROM ir dažādas priekšrocības, kā norādīts tālāk:
- Vienkāršošana : tie var vienkāršot sarežģītus vaicājumus, sadalot tos mazākās, vieglāk pārvaldāmās daļās. Jums datu bāzē nav īpaši jāizveido pagaidu tabulas.
- Uzlabota lasāmība : apakšvaicājumu izmantošana klauzulā FROM padara vaicājumu lasāmāku jo tas sadalās > Elastība : apakšvaicājumi ļauj veikt darbības, kas pretējā gadījumā būtu neērtas, piemēram, apkopošana vai filtrēšana, ņemot vērā citas datu kopas, bez nepieciešamības izveidot starptabulas.
Secinājums
Apakšvaicājumi klauzulā FROM ļauj mums definēt pagaidu rezultātu kopas ko var izmantot ārējie vaicājumi. Tie atvieglo sarežģītas SQL darbības, uzlabo vaicājumu lasāmību un nodrošina elastību datu filtrēšanā un apkopošanā. Zināšanas, kā izmantot apakšvaicājumus klauzulas FROM ietvaros, ir pamatprasme ikvienam SQL praktizējošam lietotājam, jo īpaši, strādājot ar sarežģītām datu bāzēm vai ja jums ir jāveic sarežģīta datu analīze.
Izveidojiet viktorīnu