Allekérdezés az egyetlen táblázat rekordjain belül:
Hozzon létre egy „állatok” nevű táblázatot az adatbázis adataiban."Adja hozzá az alábbi, különböző tulajdonságokkal rendelkező, különböző tulajdonságokkal rendelkező állatok feljegyzését az alábbiak szerint. Hozza le ezt a rekordot a SELECT lekérdezéssel az alábbiak szerint:
>> SELECT * FROM adatok.állatok;
01. példa:
Olvassuk le ennek a táblának a korlátozott rekordjait az allekérdezések segítségével. Az alábbi lekérdezés segítségével tudjuk, hogy először az allekérdezést hajtják végre, és annak kimenetét a fő lekérdezésben használják bemenetként. Egy allekérdezés egyszerűen lekéri azt a kort, ahol az állat ára 2500. Egy 2500 éves árú állat életkora a táblázatban 4. A fő lekérdezés kiválasztja az összes táblázati rekordot, ahol az életkor meghaladja a 4-et, és a kimenetet az alábbiakban adjuk meg.
>> SELECT * FROM adatok.állatok WHERE Age> (SELECT Age FROM adatok.állatok WHERE Ár = '2500');
02. példa:
Használjuk ugyanazt a táblázatot különböző helyzetekben. Ebben a példában a WHERE záradék helyett valamilyen függvényt fogunk használni az allekérdezésben. Az állatokra megadott összes ár átlagát vettük. Az átlagos ár 3189 lesz. A fő lekérdezés kiválasztja az összes nyilvántartást azokról az állatokról, amelyek ára meghaladja a 3189-et. Az alábbi kimenetet fogja kapni.
>> SELECT * FROM adatok.állatok WHERE Price> (SELECT AVG (Price) FROM adatok.állatok);
03. példa:
Használjuk az IN záradékot a SELECT fő lekérdezésben. Először is, az al lekérdezés 2500-nál nagyobb árakat fog lekérni. Ezt követően a fő lekérdezés kiválasztja az „állatok” tábla összes rekordját, ahol az ár az allekérdezés eredményében rejlik.
>> SELECT * FROM adatok.állatok WHERE Price IN (SELECT Price FROM adatok.állatok WHERE Ár> 2500);
44. példa:
Az allekérdezést használtuk az állat nevének lekérésére, ahol az ár 7000. Mivel az állat tehén, ezért a „tehén” név visszatér a fő lekérdezéshez. A fő lekérdezésben az összes rekord lekérésre kerül abból a táblázatból, ahol az állat neve 'tehén."Mivel csak két rekordunk van az állati" tehenekről ", ezért az alábbi kimenetelünk van.
>> SELECT * FROM adatok.állatok WHERE Name = (SELECT Name FROM adatok.állatok WHERE Ár = '7000');
Allekérdezés több tábla rekordon belül:
Tegyük fel, hogy az adatbázisában található két alábbi táblázat: „diák” és „tanár”. Próbálkozzunk néhány példával az alkérdezésekre e két táblázat segítségével.
>> SELECT * FROM adatok.diák;>> SELECT * FROM adatok.tanár;
01. példa:
Adatokat fogunk lekérni egy táblából az allekérdezés segítségével, és felhasználjuk őket a fő lekérdezés bemeneteként. Ez azt jelenti, hogy ez a két táblázat valamilyen módon kapcsolódhat egymáshoz. Az alábbi példában az allekérdezést használtuk a hallgató nevének lekérésére a „hallgató” táblából, ahol a tanár neve „Samina”.'Ez a lekérdezés a' Samina 'szót adja vissza a fő lekérdezési tábla tanárának.'A fő lekérdezés ekkor kiválasztja az összes Samina tanár nevével kapcsolatos rekordot.'Mivel két rekordunk van erre a névre, ezért megkapjuk ezt az eredményt.
>> SELECT * FROM adatok.tanár WHERE TeachName = (SELECT TeachName FROM adatokból.diák WHERE TeachName = 'Samina');
02. példa:
Az allekérdezés kidolgozásához különböző táblázatok esetén próbálkozzon ezzel a példával. Van egy allekérdezésünk, amely a tanár nevét kapja le az asztali hallgatótól. A névnek az i-ben szerepelnie kell az értékének bármely pontján. Ez azt jelenti, hogy a TeachName oszlopban az összes név, amelynek értéke „i”, ki lesz jelölve, és visszatér a fő lekérdezéshez. A fő lekérdezés kiválasztja az összes rekordot a „tanár” táblából, ahol a tanár neve szerepel az allekérdezés által visszaadott kimenetben. Mivel az alkérdezés 4 tanár nevet adott vissza, ezért nyilvántartást fogunk készíteni ezekről a nevekről, akik a táblázatban találhatók."
>> SELECT * FROM adatok.tanár WHERE TeachName IN (SELECT TeachName FROM adatokból.diák WHERE TeachName LIKE '% i%');
03. példa:
Tekintsük az alábbi két táblázatot: „rendelés” és „megrendelés1”.
>> SELECT * FROM adatok.rendelés;>> SELECT * FROM adatok.megrendelés1;
Próbáljunk ki egy BÁRMILYEN záradékot ebben a példában az allekérdezés kidolgozásához. Az allekérdezés kiválasztja az „id” -t a „order1” táblából, ahol az „Status” oszlop értéke „Unpaid”.'Az' id 'lehet több, mint 1. Ez azt jelenti, hogy több mint 1 érték kerül vissza a fő lekérdezésbe, hogy megkapjuk a 'order' táblázat eredményeit. Ebben az esetben bármilyen 'id' használható. Az alábbi kimenetet kaptuk ehhez a lekérdezéshez.
>> SELECT item, Sales, id FROM adatok.rendelés WHERE id = ANY (SELECT id FROM adatok.rendelés1 WHERE Állapot = 'Fizetetlen');
44. példa:
Tegyük fel, hogy a lekérdezés alkalmazása előtt az alábbi adatok szerepelnek a 'order1' táblázatban.
>> SELECT * FROM adatok.megrendelés1;
Alkalmazzuk a lekérdezést egy lekérdezésen belül, hogy töröljünk néhány rekordot a 'order1' táblából. Először is, az allekérdezés kiválasztja a "Status" értéket a "order" táblázatból, ahol az Item "Book".'Az allekérdezés a' Fizetett 'értéket adja vissza. Most a fő lekérdezés törli a „order1” táblázat sorait, ahol az „Status” oszlop értéke „Fizetett."
>> TÖRLÉS ADATOKBÓL.rendelés1 WHERE Status = (SELECT Status FROM adatok.rendelés WHERE tétel = 'könyv');
Ellenőrzéskor az alábbi rekordok a lekérdezés végrehajtása után a „order1” táblában maradtak.
>> SELECT * FROM adatok.megrendelés1;
Következtetés:
A fenti példákban sok alkérdezéssel hatékonyan dolgozott. Reméljük, hogy most minden tiszta és tiszta.