Bármely adatbázis fejlesztése nem jelenti aztcsak a táblák létrehozása és kitöltése sokféle információval, hanem az adatokkal való további munka is. A táblák adatainak kiválasztásával és a jelentések létrehozásával kapcsolatos különféle feladatok helyes elvégzéséhez a standard Select konstrukciót kell használni.
Ha figyelembe vesszük az adatkiválasztás problémáját illnéhány jelentés elkészítésével meghatározhatja a művelet összetettségét. Általános szabály, hogy ha komoly (információmennyiséget tekintve) adatbázisokkal dolgozunk, amelyek például online áruházakban vagy nagyvállalatokban jönnek létre, az adatok kiválasztása nem korlátozódik csak egy táblára. Általános szabály, hogy a kiválasztások meglehetősen nagyszámú nem csak összekapcsolt táblázatból, hanem egymásba ágyazott lekérdezésekből és alkérdezésekből is kiválaszthatók, amelyeket a programozó maga készít, a neki kijelölt feladattól függően. Az egyik táblázatból való kiválasztáshoz használhatja a legegyszerűbb felépítést:
Válassza a * lehetőséget a Személy menüből |
ahol Személy annak a táblának a neve, amelyről adatokat szeretne lekérni.
Ha több táblából kell adatot választania, akkor az egyik szabványos konstrukcióval több táblát is összekapcsolhat.
Ha figyelembe vesszük az ilyen típusú konstrukciók használatát a kezdeti szinten, akkor megkülönböztethetjük a következő mechanizmusokat a szükséges számú táblázat kiválasztásához:
Az SQL - Inner Join operátor használatának vizsgálatával megtanulhatja, hogyan kell a gyakorlatban használni a táblázatcsatlakozási operátorokat. Használatának egy példája így fog kinézni:
Válassza a * lehetőséget a Személy menüből Belső csatlakozás a Su_Person = Pe_ID alegységhez |
Az SQL nyelv és a Join Inner Join operátor lehetnem csak két vagy több tábla összekapcsolására, hanem más alkérdezések összekapcsolására is használható, ami nagyban megkönnyíti az adatbázis-adminisztrátorok munkáját, és főszabály szerint jelentősen felgyorsíthatja bizonyos, összetett lekérdezések végrehajtását.
Ha fontolóra veszi, hogy nagyszámú alkérdezést csatlakoztasson és adatokat gyűjtsön egyetlen táblába soronként, használhatja az Unió és az Unió összes operátorát is.
Ezeknek a struktúráknak a használata a fejlesztő számára kitűzött feladattól és az eredménytől függ, amelyet végül el akar érni.
A legtöbb esetben több kombinációjaAz SQL táblák az Inner Join operátort használják. Az Inner Join SQL-ben leírása meglehetősen könnyen érthető egy átlagos programozó számára, aki még csak most kezdi az adatbázisok használatát. Ha figyelembe vesszük ennek a szerkezetnek a működési mechanizmusát, akkor a következő képet kapjuk. Az operátor logikája összességében csak azon adatok kereszteződésének és kiválasztásának lehetőségén alapul, amelyek szerepelnek a lekérdezésben szereplő táblák mindegyikében.
Ha ezt a munkát grafikai értelmezés szempontjából vesszük figyelembe, megkapjuk az SQL Inner Join operátor felépítését, amelynek példája a következő ábra segítségével mutatható be:
Például két táblánk van, amelyek sémájaábrán látható. Viszont más a nyilvántartásuk. A táblák mindegyikének vannak egymáshoz kapcsolódó mezői. Ha az ábra alapján megpróbáljuk elmagyarázni az operátor működését, akkor a visszaküldött eredmény két tábla rekordhalmaza lesz, ahol a kapcsolódó mezők számai egybeesnek. Egyszerűen fogalmazva: a lekérdezés csak azokat a rekordokat adja vissza (a második számú táblából), amelyek adatai az első táblázatban találhatók.
Mint korábban említettük, az Inner Join operátor, ésszintaxisa szokatlanul egyszerű. A táblák közötti kapcsolatok egy mintán belüli rendezéséhez elegendő megjegyezni és felhasználni a következő vázlatos diagramot egy operátor felépítéséhez, amely a program SQL kódjának egy sorába van írva:
A kommunikációhoz ebben az operátorban a főasztali kulcsok. Általános szabály, hogy az alkalmazottakra vonatkozó információkat tároló táblák csoportjában a korábban leírt Személy és Alosztály legalább egy hasonló rekordot tartalmaz. Tehát nézzük meg közelebbről az SQL Inner Join utasítást, amelynek egy példáját korábban bemutattuk.
Van egy Person asztal, amely tároljainformációk a vállalatban dolgozó összes alkalmazottról. Azonnal megjegyezzük, hogy ennek a táblának a fő kulcsa a mező - Pe_ID. Rajta megy a csomó.
A második Felosztási táblázat tárolásra kerülinformációk az osztályokról, ahol az alkalmazottak dolgoznak. Ez viszont a Su_Person mezőn keresztül kapcsolódik a Person táblához. Mit is jelent ez? Az adatséma alapján azt mondhatjuk, hogy az "Alkalmazottak" táblázat minden rekordjának részlegtáblázata tartalmaz információkat arról az osztályról, amelyben dolgoznak. Ezen a kapcsolaton fog működni az Inner Join operátor.
Az áttekinthetőbb használat érdekében vegye figyelembe az SQL Inner Join operátort (példák az egy és a két tábla használatára). Ha figyelembe vesszük az egyik táblázat példáját, akkor minden nagyon egyszerű:
Válassza a * lehetőséget a Személy menüből Belső csatlakozás a Su_Person = Pe_ID alegységhez |
Példák az SQL belső belépési operátor használatáraamely több táblázatból származó adatok lekérésére a fenti módon szervezhető, kissé bonyolult elv szerint működik. Bonyolítsuk meg a feladatot két táblához. Tegyük fel, hogy van egy Depart táblánk, amely információkat tárol az egyes osztályok összes részlegéről. Ez a táblázat az osztály és az alkalmazott számát tartalmazza, és ki kell egészítenie az adatmintát az egyes osztályok nevével. Előretekintve érdemes elmondani, hogy két módszer használható a probléma megoldására.
Az első módszer az osztálytábla összekapcsolása a kiválasztással. Ebben az esetben a kérelmet az alábbiak szerint rendezheti:
Válassza a Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name from Person lehetőséget Belső csatlakozás a Su_Person = Pe_ID alegységhez Belső csatlakozás Indulás a Su_Depart = Dep_ID és Pe_Depart = Dep_ID esetén |
A probléma megoldásának második módszere aegy részlekérdezés, amelyben nem minden adatot választanak ki az osztálytáblázatból, hanem csak a szükségeseket. Ez az első módszerrel ellentétben csökkenti a lekérdezés feldolgozási idejét.
Válassza a Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name from Person lehetőséget Belső csatlakozás a Su_Person = Pe_ID alegységhez Belső csatlakozás (Válassza Dep_ID, Dep_Name, Pe_Depart from Depart), mint T a Su_Depart = Dep_ID és Pe_Depart = Dep_ID |
Meg kell jegyezni, hogy ez a kialakítás nem mindig azfelgyorsíthatja a lekérdezést. Néha vannak olyan esetek, amikor egy ideiglenes táblában további adatválasztékot kell használnia (ha túl nagy a méretük), majd egyesítenie kell a fő választással.
A komplex lekérdezések készítése magában foglaljajelentős számú, egymással kapcsolatos táblázat és alkérdezés felhasználása az adatkiválasztáshoz. Az SQL Inner Join szintaxis kielégítheti ezeket a követelményeket. Az operátor használatának példái ebben az esetben nemcsak a sok adattárolási hely kiválasztásával, hanem nagyszámú beágyazott alkérdezéssel is bonyolultak lehetnek. Konkrét példaként válogathat adatokat a rendszer táblákból (Inner Join SQL operátor). Ebben az esetben egy példa - 3 táblázat - meglehetősen összetett felépítésű lesz.
Ebben az esetben további három további feltétel kapcsolódik (a fő táblához), és több feltétel is bevezetésre kerül az adatok kiválasztásához.
Az Inner Join operátor használatakor ez költséget jelentne feledje, hogy minél összetettebb a kérés, annál hosszabb ideig tart a megvalósítása, ezért érdemes megkeresni a feladat gyorsabb végrehajtásának és megoldásának lehetőségeit.
Végül egy dolgot szeretnék mondani:az adatbázisokkal való munka nem a legnehezebb a programozásban, ezért kívánság esetén abszolút mindenki elsajátíthatja az adatbázisok építésének ismereteit, és idővel tapasztalatokat szerezve professzionális szinten lehet majd velük dolgozni.