Sql_celko - 6. fejezet
6. fejezet NULL-okat - a hiányzó adatokat az SQL
6.1. Üres és hiányzó táblák
Egy üres tábla vagy nézet eltér hiányzik. Ez határozza tartalmaz oszlopok és korlátok, de nincsenek vonalak. Ez akkor történik, ha a táblázat nemrég létrehozott vagy eltávolították belőle az összes adatot.
Hiányában a tábla neve, már eltávolították az adatbázis sémáját DROP TABLE parancsot, vagy azt, hogy soha nem létezett (talán begépelt rossz). Hiányzó koncepció gondolatok azonban kissé bonyolultabb. A kilátás is elhagyható eredményeként szereplő DROP VIEW vagy beviteli hibák, de emellett, ha a tábla vagy nézet eltávolításra került, amelyen ez a nézet alapszik. Ha tervezzen egy bemutatót futásidőben, az adatbázis hibát jelez.
A viselkedése egy üres asztal, vagy nézet, hogy attól függ, hogy az eljárás a használatuk. További információt ebben a témában van fejezetében foglalt 14. 15. és 16. leírását a predikátumok a subqueries. Általában egy üres asztalhoz lehet tekinteni, mint bármelyik NULL, vagy az üres halmaz, a szövegkörnyezettől függően.
Néhány SQL-megvalósításait távolítsa el az összes sémaobjektumok amely függ a törölt asztalra, de a legtöbb ez a funkció nem támogatott. Ez azt jelenti, hogy amikor megpróbál használni egy objektumot, meg fogja találni nincs tábla. SQL-92 szabvány teszi ezt a viselkedést lehet, de nem kötelező.
6.2. A hiányzó értékek egy oszlopban
6.3. Háttér és hiányzó értékek
6.4. Összehasonlítása NULL értékek
Munka NULL értékek tűnik természetesnek. Úgy nem lehet összehasonlítani egymással az összehasonlító operátorok (egyenlő, nem egyenlő, a kevesebb több, és így tovább), hogy ahelyett, hogy a két értékes logika, kapunk egy háromjegyű. Ez szokatlan, a legtöbb programozó. Ha végrehajtja az utasítást:
akkor kap az összes sort SomeTable asztalra. Azonban még az üzemben kell hajtania, hogy elérjék ezt az eredményt:
Állítmányt [NOT] NULL vissza csak az értéket IGAZ vagy HAMIS.
6.5. NULL értékek és logikai
A két értékes logika által kifejlesztett George Boole, aki örökre halhatatlanná tette nevét a Boole algebra (Boole, 1854). Ez nem csak a rendszer, de ez működik a legjobban a „bináris” számítógép (két állam) és a beállított matematikai kifejezések. Az SQL rendelkezik három-értékű logika - IGAZ, HAMIS és az ismeretlen. Az utóbbi érték az eredménye felhasználásra összehasonlítások és más predikátumok NULL értékeket. Tartsuk szem előtt, hogy ez egy logikai érték, hogy nem esik egybe a NULL, amely egy adat értékét. Ezért a nyelv SQL write (X = [NOT] NULL), Ana (x = NULL). Az alábbi táblázatban az eredményeket a három megadott SQL logikai operátorokkal:
Az összes többi predikátumok SQL húrok az elme a három szolgáltató. Bár egy ilyen csökkentés (a predikátumok segítségével al-lekérdezések) végezzük futási időben, ez nem mindig nyilvánvaló.
6.5.1. Alkalmazás NULL értékeket predikátumok a subqueries
Sokan elfelejtik, hogy gyakran tartalmaz segédlekérdezésként összehasonlítása NULL. Vessen egy pillantást a következő két táblázat:
Vegye figyelembe, hogy ezek az oszlopok lehetővé NULL. Végezze el ezt a lekérdezést:
Írja most a NULL és újra meg újra:
Az eredmény üres lesz. Ez nem teljesen világos, de ez helyes. NEM állítmányt meghatározása a következő:
Predikátum meghatározása a következő:
Az utolsó kifejezés mindig ismert, ezért figyelembe véve a De Morgan törvényi lekérdezés tulajdonképpen néz ki:
Nézzük a fenti táblázat értékeinek logikai operátor, akkor meg fogja érteni, hogy ez a kifejezés mindig ismeretlen, amely elutasításra kerül a keresési feltételt a WHERE záradékot.
6.5.2. Megoldások a szabványos SQL-92
Az SQL-92, ezt a problémát úgy oldották meg, hogy egy új állítmány:
Ez lehetővé teszi, hogy megjelenítéséhez bármely kombinációja az értékek a három értékes logika a kétszámjegyű. Például, a kifejezés ((kor <18) OR (gender = 'Female')) IS NOT FALSE возвращает TRUE, если (age IS NULL) или (gender IS NULL), а второе условие не имеет значения.
6.6. Matematikai kifejezések és NULL értékek
Ha NULL találkozik az aritmetikai kifejezések (+, -, *, /), akkor adja meg a választ, mint NULL. Bővebben numerikus adattípusok 3. fejezetben tárgyaljuk.
6.7. Funkciók és NULL értékek
A legtöbb fejlesztő egyenlően kezelik NULL értékeket a funkciókat kínálnak, mint egy kiterjesztése a szabványos SQL. Például a koszinusza NULL lesz NULL. 3.5 fejezet részletesen ismerteti a két funkciót, amely konvertálja NULL szokásos jelentésűek.
1. NULLIF (V1, V2) értéke NULL, ha az első paraméter egyenlő a második. Funkció egyenértékű a következő eset adatok:
2. COALESCE (V1, V2, V3. Vn) megvizsgálja a lista parametrovsleva jobb és visszaadja az első közülük nem egyenlő NULL. Ha minden érték NULL, a függvény visszatérési értéke NULL is.
6.8. NULL-értékek és alapnyelv
6.9. Tippek Tervezés NULL értékek
6.9.1. Hogyan kerüljük el a NULL értékek a program alapvető
6.10. A több NULL értékek
Mi határozza meg a szabályt: ha az összes értékek ismertek, megkapjuk a szokásos összeg (összesen). Ha az egyik érték az az állapot nem alkalmazható (elfogadható), ezt az állapotot veszi, és a teljes összeget. Ha ezt nem teszik, az összeg lesz hiányzó állapota (nincs jelen). Ha a hiányzó értékek is vannak, az adatbázis figyelmeztetés jelenik meg a jelenlétét közelítő (hozzávetőleges) értékeket. Az általános formája a lekérdezés:
Felmerül a kérdés: minek szórakozol az összeg valcol? A státusz oszlop mnogoindikatornom kapott az ugyanaz, mint az eredeti tábla. Azt javaslom, hogy tegye meg a következő feladatokat:
1. Hozzon létre egy szabályrendszert dolgoznak hiányzó adatokat inapishite kérés számláló értékek SUM függvény (), AVG (), MAX (), MIN () és C0UNT ().
2. A kapott "multiindikatore" set közelítés mértéke (plusz vagy mínusz 5, 10, stb). Azt feltételezik, hogy valcol mindig a közepén.