SQL Server subquery (Magyar)

Összefoglalás: ebben az oktatóanyagban megismerheti az SQL Server subquery-t és az allekérdezés adat lekérdezéséhez való felhasználását.

Bevezetés az SQL Server allekérdezésbe

Az allekérdezés egy másik utasításba beágyazott lekérdezés, például SELECT, INSERT, UPDATE, vagy DELETE.

Lássuk a következő példát.

Vegye figyelembe a orders és customers táblák a mintaadatbázisból.

A következő utasítás bemutatja, hogyan kell használni egy részlekérdezést egy WHERE záradékban. div id = “3eb7f9a1d0”> utasítás az New York helyen található ügyfelek értékesítési rendeléseinek megkereséséhez:

Íme az eredmény:

Ebben a példában a következő utasítás egy al lekérdezés:

Code language: SQL (Structured Query Language) (sql)

Ne feledje, hogy mindig be kell csatolnia a SELECT zárójelben lévő részlekérdezés lekérdezése ().

Az allekérdezést belső lekérdezésnek vagy belső kiválasztásnak is nevezik, míg az allekérdezést tartalmazó utasítást külső választás vagy külső lekérdezés:

SQL A kiszolgáló a fenti lekérdezési példát a következőképpen hajtja végre:

Először az allekérdezést hajtja végre, hogy megkapja az New York helyen található ügyfelek ügyfél-azonosítóinak listáját.

Code language: SQL (Structured Query Language) (sql)

Másodszor, az SQL Server helyettesíti a IN operátorban az al lekérdezés által visszaküldött ügyfél-azonosító számokat, és végrehajtja a külső lekérdezést, hogy megkapja a végeredményt.

Ahogy tudsz s ee, az allekérdezés használatával két lépést kombinálhat. Az allekérdezés feleslegessé teszi az ügyfél-azonosító számok kiválasztását és a külső lekérdezésbe történő bedugását. Ezenkívül maga a lekérdezés is automatikusan igazodik, amikor az ügyféladatok megváltoznak.

Allekérdezés beágyazása

Az allekérdezés beágyazható egy másik allekérdezésbe. Az SQL Server akár 32 beágyazási szintet is támogat. Tekintsük a következő példát:

Először is, Az SQL Server a következő allekérdezést hajtja végre a Strider és Trek márkák márkaazonosítóinak felsorolásához:

Másodszor, az SQL Server kiszámítja az összes hozzá tartozó termék átlagos árlistáját ezekre a márkákra.

Code language: SQL (Structured Query Language) (sql)

Harmadszor, az SQL Server megtalálja azokat a termékeket, amelyek listaára magasabb, mint az összes olyan termék átlagos listaára, amelynek Strider vagy Trek márka.

SQL Server allekérdezéstípusok

Egy részlekérdezést sok helyen használhat:

  • Kifejezés helyett
  • IN vagy NOT IN
  • ANY vagy ALL
  • EXISTS vagy NOT EXISTS
  • UPDATE, DELETE vagy INSERT utasítás
  • A FROM záradékban

SQL Server subquery egy kifejezés helyett használatos

Ha egy részlekérdezés egyetlen értéket ad vissza, akkor bárhol használható, ahol egy kifejezést használnak.

A következő példában allekérdezést használunk max_list_price nevű oszlopkifejezés egy SELECT utasításban.

Az SQL Server allekérdezést az IN operátorral használják

A IN operátor nulla vagy annál több értéket ad vissza. Miután az allekérdezés visszaadja az értékeket, a külső lekérdezés felhasználja azokat.

A következő lekérdezés megtalálja az összes hegyikerékpár és országúti kerékpár termék nevét, amelyet a Kerékpárüzletek értékesítenek.

Ezt a lekérdezést két lépésben értékelik:

  1. Először a belső lekérdezés egy kategóriaazonosító számok listáját adja vissza, amelyek megfelelnek a Mountain Bikes és a code országúti kerékpár neveknek.
  2. Másodszor, ezeket az értékeket a külső lekérdezés helyettesíti, amely megtalálja azokat a termékneveket, amelyeknek a kategóriaazonosító száma megegyezik a lista egyik értékével.

Az SQL Server allekérdezést MINDEN operátorral együtt használják

Az allekérdezést az ANY operátor a következő szintaxissal vezeti be:

Code language: SQL (Structured Query Language) (sql)

Feltételezve, hogy az alkérdezés visszaadja a v1, v2,… vn értékek listáját. A ANY operátor visszaadja az TRUE operátort, ha az összehasonlító párok valamelyike (scalar_expression, vi) értékeli TRUE; ellenkező esetben a következő értéket adja vissza: FALSE.

Például a következő lekérdezés megtalálja azokat a termékeket, amelyek listaára nagyobb vagy egyenlő bármely termékmárka átlagos listaárával .

Minden márka esetében az allekérdezés megtalálja a maximális listaárat. A külső lekérdezés ezeket a maximális árakat használja, és meghatározza, hogy melyik egyedi termék listaára nagyobb vagy egyenlő bármely márka maximális listaárával.

Az SQL Server allekérdezést az ALL operátorral használják

A ALL operátor szintaxisa megegyezik az ANY operátorral:

Code language: SQL (Structured Query Language) (sql)

A ALL operátor visszaadja a TRUE operátort, ha az összes összehasonlító pár (scalar_expression, vi) TRUE; ellenkező esetben visszaadja a következőt: FALSE.

A következő lekérdezés megtalálja azokat a termékeket, amelyek listaára nagyobb vagy egyenlő az allekérdezés által visszaadott átlagos listaárral:

Az SQL Server allekérdezést a LÉTEZIK vagy NEM LÉTEZIK

Az alábbiak szemléltetik egy EXISTS operátorral bevezetett részlekérdezés szintaxisát:

Code language: SQL (Structured Query Language) (sql)

A EXISTS operátor visszaadja az TRUE operátort, ha az alkérdezés visszatér; különben a FALSE értéket adja vissza.

Másrészt a NOT EXISTS ellentétes a EXISTS operátor.

A következő lekérdezés megtalálja azokat az ügyfeleket, akik 2017-ben vásároltak termékeket:

Ha a NOT EXISTS -t használja a EXISTS, megtalálja azokat az ügyfeleket, akik 2017-ben nem vásároltak termékeket.

SQL Server allekérdezés a FROM záradékban

Tegyük fel, hogy meg szeretné találni az összes értékesítő megrendelésének átlagát. Ehhez először megtalálja a személyzet által leadott megrendelések számát:

Ezután alkalmazhatja a AVG() függvényt erre az eredménykészletre. Mivel egy lekérdezés olyan eredménykészletet ad vissza, amely virtuális táblának tűnik, a teljes lekérdezést elhelyezheti egy másik ilyen lekérdezés FROM záradékában:

A FROM záradéknak tartalmaznia kell egy tábla álnevet. Ebben a példában a t-t használtuk az allekérdezés táblaaliasaként. A végeredmény előállításához az SQL Server a következő lépéseket hajtja végre:

  • Végezze el az alkérdezést a FROM záradékban.
  • Használja az allekérdezés eredményét, és hajtsa végre a külső lekérdezést.

Ebben az oktatóanyagban megismerkedett az SQL Server allekérdezés fogalmával, valamint arról, hogyan használhat különféle allekérdezéstípusokat az adatok lekérdezéséhez. >

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük