SzámítógépekFájltípusok

SQL külön: leírás, példák, tulajdonságok

Gyakran előfordul, hogy amikor az SQL-t a táblázatokból származó információk lekérésére használja, a felhasználó redundáns adatokat kap, amelyek teljesen azonos duplikált sorokból állnak. A helyzet kizárásához használja az SQL különálló argumentumot a Select szakaszban. Ebben a cikkben megfontoljuk az érvelés használatának példáit, valamint azokat az eseteket, amikor jobb az érvelés elhagyása.

Mielőtt konkrét példákat vesszük fontolóra, néhány szükséges táblát hozunk létre az adatbázisban.

Táblázat készítése

Képzelje el, hogy az adatbázisban tároltunk információkat a tapétáról, két táblázatban. Ez az Oboi tábla (háttérkép) a mezők id (egyedi azonosító), típus (háttérkép típusa - papír, vinil stb.), Szín, struktúra és ár. És az Ostatki-táblát (maradék) az id_oboi mezőkkel (hivatkozás az Oboi-táblázat egyedi azonosítójára), és számolja (a raktárban lévő tekercsek számát).

Töltse ki az adatokat tartalmazó táblázatokat. A háttérképben 9 bejegyzést adunk hozzá:

Oboi

id

típus

szín

struct

ár

1

papír

sokszínű

domborított

56,9

2

Kétrétegű papír

bézs

sima

114,8

3

vinyl

narancs

domborított

504

4

Nem szőtt szövet

bézs

domborított

1020,9

5

Kétrétegű papír

bézs

sima

150,6

6

papír

sokszínű

sima

95,4

7

vinyl

barna

sima

372

8

Nem szőtt szövet

fehér

domborított

980,1

9

szövet

rózsaszín

sima

1166,5

A maradék táblázatban kilenc adat is szerepel:

Ostatki

id_oboi

számol

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Kezdjük azzal, hogy leírjuk, hogyan kell használni az SQL-ben külön.

Helyezzen elkülönítettet a Select záradékban

A külön érvet közvetlenül a Kulcsszavak kiválasztása után kell elhelyezni a lekérdezésekben. Ez azonnal alkalmazásra kerül a Select szakaszban megadott összes oszlopra, mivel kizárja a lekérdezés eredményéből teljesen azonos sorokat. Így elegendő az "SQL" lekérdezés írásakor a "select select" megadását. Az egyetlen kivétel az, hogy az aggregált függvényeken belüli különbségtételt alkalmazzuk, ami egy kicsit később lesz.

Nem szabad megfeledkeznünk arról, hogy a legtöbb DBMS nem ismeri fel a kérését így:

SELECT külön Ostatki.Count, külön Oboi. *

FROM Oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Itt az argumentum többször meg van adva, vagy megadható egyszer, de a második, harmadik vagy más választható oszlop előtt. Hiba kerül a szintaxis pontatlanságaira való hivatkozással.

A standard lekérdezésekben elkülönítettek

Nyilvánvaló, hogy a táblák szerkezeti felépítésével és kitöltésével ugyanazon a táblázatban a helyzetek kizárásra kerülnek, ha feltétlenül azonos vonalak találkoznak. Ezért a "Select select *" lekérdezés végrehajtása egy táblázattal való kiválasztással gyakorlatilag nem praktikus.

Képzeljünk el egy olyan helyzetet, ahol meg kell találnunk, milyen háttérképünk van, csak a kényelem érdekében, típus szerint:

SELECT Oboi.type

Oboi típusú sorrendtől függően

És megkaptuk az eredményt:

típus

papír

papír

Kétrétegű papír

Kétrétegű papír

vinyl

vinyl

szövet

Nem szőtt szövet

Nem szőtt szövet

Amint láthatja, a táblában duplikált sorok vannak. Ha hozzáadjuk a Válasszon külön záradékot:

SELECT külön Oboi.type

Oboi típusú sorrendtől függően

Aztán megkapjuk az eredményt anélkül, hogy megismételtük:

típus

papír

Kétrétegű papír

vinyl

szövet

Nem szőtt szövet

Így ha az adatok helyesen kerültek a táblázatokba, akkor közvetlenül a hívás vagy a vásárlók kérése után válaszolni tudunk arra, hogy nincs folyadék tapéta, üvegpadló és akril tapéta az üzletben. Tekintettel arra, hogy a raktárkészletek általában nem csak száz háttérképre korlátozódnak, eléggé munkaigényes lenne, ha átnéznék a nem egyedi típusok listáját.

Az aggregált függvényeken belüli különálló használat

SQL különbözõ lehet bármely aggregált függvény használatával. De a Min és a Max esetében a felhasználásnak nincs hatása, és az összeg vagy az átlagérték kiszámításakor ritkán elképzelhető olyan helyzet, ahol nem szükséges figyelembe venni az ismétléseket.

Tegyük fel, hogy szeretnénk megtudni, mennyire tele van a raktárunk, ezért küldünk egy kérelmet, amely kiszámolja a raktárban lévő összes tekercs számát:

SELECT összeg (Ostatki.count)

FROM Ostatki

A lekérdezés 143. választ ad vissza. Ha a következőre váltunk:

SELECT összeg (különálló Ostatki.count)

FROM Ostatki

Aztán csak 119-et kapunk, mert a 3. és 7. cikk háttérképei ugyanabban a mennyiségben vannak raktáron. Nyilvánvaló azonban, hogy ez a válasz téves.

Leggyakrabban az SQL a Count funkcióval együtt használható. Tehát nehézségek nélkül megismerhetjük, hogy hány egyedi háttérképünk van:

SELECT szám (külön Oboi.type)

FROM Oboi

És kapd el az eredményt az 5 - papíros rendes és kétrétegű, vinil, szövet és nem szőtt. Bizonyára mindenki olyan hirdetést látott, mint például: "Csak több mint 20 féle különböző háttérképünk van!", Mire ez azt jelenti, hogy ebben a boltban nincs több tucat tekercs mindentől, hanem a legkülönbözőbb modern típusok háttérképéről.

Érdekes, hogy egyetlen kérésben több funkciót is megadhat a különálló attribútummal vagy anélkül. Vagyis ez az egyetlen helyzet, amikor a Select-ben többször is jelen lehet.

Mikor kell elutasítanom egy érv használatát?

Az SQL különálló argumentumát kétféle módon kell eldobni:

  1. Ön kiválasztja a táblázatokat, és biztos abban, hogy az egyes értékek egyedisége. Ebben az esetben az argumentum használata nem megfelelő, mivel ez egy további terhelés a kiszolgálón vagy az ügyfélen (a DBMS típusától függően).
  2. Félsz, hogy elveszíted a szükséges adatokat. Magyarázzuk meg.

Tegyük fel, hogy a főnök arra kéri, hogy jelenítse meg a háttérképet, amely csak két oszlopot tartalmaz - típus és szín. A szokás szerint megkülönbözteti az érvet:

SELECT külön Oboi.type, Oboi.color

FROM Oboi

ORDER BY Oboi.type

És - elveszít néhány adatot:

típus

szín

papír

sokszínű

Kétrétegű papír

bézs

vinyl

barna

vinyl

narancs

szövet

rózsaszín

Nem szőtt szövet

bézs

Nem szőtt szövet

fehér

Úgy tűnhet, hogy csak egyféle papír háttérképünk van (hagyományos és kétrétegű), bár valójában még a kis asztalunkban is két cikkük van (az eredmény különösebb):

típus

szín

papír

sokszínű

papír

sokszínű

Kétrétegű papír

bézs

Kétrétegű papír

bézs

vinyl

barna

vinyl

narancs

szövet

rózsaszín

Nem szőtt szövet

fehér

Nem szőtt szövet

bézs

Ezért, mint bármelyik lekérdezésnél, a különálló argumentummal óvatosnak és helyesnek kell lennie a probléma megoldásával a feladat függvényében.

Alternatív különálló

A különálló érv ellentétje az All argumentum. Ha használja, duplikált sorokat ment. De mivel alapértelmezés szerint a DBMS úgy gondolja, hogy minden érték kinyomtatásához szükséges, az All argumentum sokkal inkább egy specifikátor, mint egy valós funkcionális argumentum. Reméljük, hogy most már megérted, ha külön (SQL) használatos. A leírás teljes körű tájékoztatást adott az érvelésnek a különböző problémák megoldására való alkalmasságáról. Végül is, mint kiderült, még az alkalmazásában ilyen egyszerű érv is elpusztítja az adatok elvesztését és a pontos információkat.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hu.birmiss.com. Theme powered by WordPress.