Les subconsultes SQL són funcions valuoses que ens permeten incrustar una consulta dins d'una altra afegir més importància a recuperar i manipular dades d'una manera complicada. S'utilitza per configurar taules temporals o resultats intermedis per ser utilitzats posteriorment per la consulta externa.
Subconsulta a la clàusula FROM
La clàusula FROM es pot utilitzar per especificar una expressió de subconsulta en SQL. La relació produïda per la subconsulta s'utilitza llavors com una nova relació a la qual s'aplica la consulta externa per a més operacions. Subconsultes alFROMLa clàusula s'utilitza quan necessitem crear un conjunt de dades temporal que no existeix en cap taula física. Això pot ser molt útil quan es treballa amb conjunts de dades complexos.
diagrama de classes java
Les variables de correlació de les taules a les quals es fa referència a la clàusula FROM de la consulta externa no es poden utilitzar directament dins de les subconsultes de la clàusula FROM. A continuació es mostren dues sintaxis per utilitzar Subconsulta a la clàusula FROM utilitzada en diferents escenaris.
1. Subconsulta simple alFROMClàusula:
SELECCIONA columna1 columna2
FROM (SELECT column_x AS C1 column_y FROM taula WHERE condició) AS subconsulta_taula
ON condició_exterior;
ratolí i tipus de ratolí
2. Subconsulta alFROMClàusula ambJOIN:
SELECCIONA columna1 columna2
FROM (SELECT column_x AS C1 column_y FROM taula WHERE PREDICATE_X) AS table2
JOIN table1 ON table2.some_column = taula1.some_column
ON PREDICAT;
com llegir un fitxer json
Paràmetres:
- Subconsulta : la consulta interna tancada entre parèntesis. Recupera dades que actuaran com a taula temporal.
- Àlies : S'ha de donar un àlies a la subconsulta (
subquery_table) que es farà referència a la consulta externa. - Consulta externa : La consulta externa pot treballar amb aquesta taula temporal creada per la subconsulta aplicant filtres o realitzant més operacions.
Com funcionen les subconsultes de la clàusula FROM
- Avaluació de subconsultes : primer s'avalua la subconsulta de la clàusula from i després els resultats de l'avaluació s'emmagatzemen en una nova relació temporal.
- Consulta externa : Després que la subconsulta s'executi i retorni un conjunt de dades, la consulta externa s'avalua seleccionant només aquelles tuples de la relació temporal que compleixen el predicat de la clàusula where de la consulta externa.
Exemple d'ús de la subconsulta a la clàusula FROM
Anem a discutir alguns exemples del món real per entendre com funcionen a la pràctica les subconsultes de la clàusula FROM. Aquí tenim dues taules Instructor taula que conté informació sobre els instructors, inclòs el seu sou i departament. Un altre és Departament taula que conté informació sobre diferents departaments, inclòs el pressupost del departament.
Instructor Taula
| ID instructor | Nom | Departament | Salari |
|---|---|---|---|
| 44547 | Smith | Informàtica | 95000 |
| 44541 | Bill | Elèctric | 55000 |
| 47778 | Sol | Humanitats | 44000 |
| 48147 | Erik | Mecànica | 80000 |
| 411547 | Bàlsam | Tecnologia de la informació | 65000 |
| 48898 | Jena | Civil | 50000 |
Departament Taula
| Nom del departament | Pressupost |
|---|---|
| Informàtica | 100.000 |
| Elèctric | 80000 |
| Humanitats | 50000 |
| Mecànica | 40000 |
| Tecnologia de la informació | 90000 |
| Civil | 60000 |
Exemple 1: Trobeu tots els professors el sou dels quals sigui superior al pressupost mitjà de tots els departaments.
En aquest exemple farem servir una subconsulta a la clàusula FROM per calcular el pressupost mitjà de tots els departaments i després fer la comparació amb els sous dels instructors.
Consulta:
cobertura de declaracions
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;
Sortida
| ID instructor | Nom | Departament | Salari |
|---|---|---|---|
| 44547 | Smith | Informàtica | 95000 |
| 48147 | Erik | Mecànica | 80000 |
Explicació:
- El pressupost mitjà de tots els departaments de la relació de departament és de 70.000.
- Erik i Smith són els únics instructors de la relació d'instructor el sou dels quals és de més de 70.000 i, per tant, estan presents a la relació de sortida.
Per què utilitzar subconsultes a la clàusula FROM?
Hi ha diversos avantatges d'utilitzar subconsultes a la clàusula FROM tal com es mostra a continuació:
- Simplificació : poden simplificar les consultes complexes dividint-les en parts més petites i més manejables. No cal que creeu taules temporals explícitament a la vostra base de dades.
- Llegibilitat millorada : l'ús de subconsultes a la clàusula FROM fa la consulta més llegible ja que divideix > Flexibilitat : les subconsultes us permeten dur a terme operacions que, d'una altra manera, serien inconvenients com ara agregacions o filtratges respecte a altres conjunts de dades sense necessitat de crear taules intermèdies.
Conclusió
Les subconsultes de la clàusula FROM ens permeten definir conjunts de resultats temporals que pot ser utilitzat per consultes externes. Fan que les operacions SQL complexes siguin més fàcils milloren la llegibilitat de les consultes i proporcionen flexibilitat en el filtratge i l'agregació de dades. Saber com utilitzar subconsultes dins de la clàusula FROM és una habilitat bàsica per a tots els professionals de SQL, especialment quan es tracten bases de dades complexes o quan hau de realitzar anàlisis de dades complexes.
Crea un qüestionari