A null értékek
Bármely aritmetikai kifejezés nulla értéket ad vissza, ha bármelyik operandus ebben a kifejezésben nulla. Ezért egyaránt számtani műveletekben (ha A olyan kifejezés, amely nulla értéket ad vissza) mind a + a, mind pedig a return null. Bináris kifejezések esetén, ha az egyik vagy mindkét a vagy b operandus nulla, akkor az a + b, a-b, a * b, a / b és a% b kifejezések eredményének is nulla lesz. Az aiv operandusok numerikus kifejezéseknek kell lenniük.
Ha a kifejezés összehasonlító operátorokat tartalmaz, és egy utasítás (vagy mindkettő) null értéke van, ennek a műveletnek az eredménye null. Következésképpen az a = b, a o B, a kifejezések mindegyike <виа> in is visszaadja a NULL értéket.
Logikai kifejezésekben, és / vagy nem, a null értékek viselkedését az igazságtáblák határozzák meg (4.11-4.13. Táblázat), ahol m jelentése igaz, f hamis, és u ismeretlen érték (null). Ezekben a táblázatokban a sorokban és oszlopokban egymás után bemutatják az operátorok által végrehajtott logikai kifejezések igazságértékét, és megadják a sorok és oszlopok metszéspontjainak eredményeit.
Az aggregált függvényben az avg, sum, max, min és count számok bármelyik null értékét kizárják a megfelelő függvény számításaiból (kivéve a számlálót (*)). Ha az összes feldolgozott oszlop nullot tartalmaz, akkor a függvény null értéket ad vissza. Az aggregált függvényszám (*) az összes null értéket ugyanúgy feldolgozza, mint a nem üres értékeket. Ha az összes oszlop csak null értékeket tartalmaz, akkor a függvényszám (elkülönített oszlopnév) eredménye 0.
A null értékek különböznek az összes többi értéktől. A numerikus adattípusokhoz különbség van null érték és null érték között. Ugyanez igaz egy üres karakterláncra és nullra a karakteradat típusok esetében.
♦ null, ha a set utasításban az ansi_null_dflt_on opció be van kapcsolva;
♦ nem nulla, ha a set utasításban lévő ansi_null_dflt_off opció be van kapcsolva. Ha a beállított operátor nincs aktiválva, akkor az oszlop alapértelmezett nem nulla tulajdonsággal rendelkezik. (Az időbélyeg-adattípus oszlopai csak nem nulla oszlopokként jelezhetők.)
Van egy másik lehetőség a set utasításban: concat_null_yields_null. Ez az opció a null értékű összefonódási műveletet érinti, így bármely null értékű összefűzés nulla értéket eredményez. Például:
'San Francisco' + NULL = NULL
A Transact-SQL főbb jellemzői az adattípusok, predikátumok és funkciók. Az adattípusok megfelelnek az ANSI SQL92 adattípusoknak. A Transact-SQL számos hasznos rendszerfunkciót támogat. A következő fejezet bemutatja az SQL adatmeghatározási nyelvhez kapcsolódó Transact-SQL utasításokat. A Transact-SQL ezen része tartalmazza az összes olyan operátort, amely az adatbázis-objektumok létrehozásához, módosításához és törléséhez szükséges.
4.1. Gyakorlat 4.1.
Mi a különbség az int, smallint és a tinyint típusú számadatok között?
Mi a különbség a char és varchar adattípusok között? Mikor használja az utolsó (az első helyett) és fordítva?
j Gyakorlat 4.3.
Ahogy megadhatja az oszlop formátumát az adattípus-dátummal, így annak értékeit 'yyyylmmlddl'
A következő két feladat során az SQL Server Management Studio Query Editor ablakában válassza ki a kijelölést, hogy megjelenítse az összes rendszerfüggvényt és globális változót. Például válassza a host_id () lehetőséget, és megjeleníti az aktuális állomás összes azonosítószámát.
A rendszerfunkciók használatával keresse meg a vizsgálati adatbázis azonosítószámát (lásd a 2.1. Gyakorlatot).
4.5 gyakorlat
Rendszerváltozók használatával jelenítse meg az adatbázisrendszer szoftver jelenlegi verzióját és a szoftverben használt nyelvet.
4.6. Gyakorlat 4.6.
Az bit s operátorok használata s, | és L. kiszámítja a következő műveleteket a bitvonalakon:
(11100101) (01010111)
(10110111) L (10110001)
j 4.7. gyakorlat 4.7
Mi a következő kifejezések eredménye? (a numerikus és logikai kifejezés.)
A + NULL NULL = NULL VAGY NULL B ÉS NULL
Gyakorlat 4.8
Hol használhatod mindkét aposztrófot és idézőjelet a karakterláncok és az időállandók meghatározásához?
j 4.9 gyakorlat
Mi a korlátozott azonosító, és mikor kell használni?