Array ( [0] => 15488219 [id] => 15488219 [1] => cswiki [site] => cswiki [2] => NULL [uri] => NULL [3] => [img] => [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 0 [has_content] => 0 [12] => [oai_cs_optimisticky] => ) Array ( [0] => {{věrohodné zdroje}} [1] => '''NULL''' je v [[informatika|informatice]] obvyklé označení pro '''žádnou hodnotu''' nebo ''nic''. Slovo vychází z latinského ''nullus''. [2] => [3] => == Řetězce == [4] => Ve vnitřní reprezentaci [[ASCII]] [[Textový řetězec|řetězce]] je bajt s hodnotou nula označován jako null znak, null terminator nebo zkráceně NUL. V jazyce [[C (programovací jazyk)|C]] a odvozených aplikacích slouží tento znak jako ukončovací znak řetězce. [[Escape sekvence]] pro znak NUL je \0. [5] => [6] => V [[UTF-8]] kódování [[bajt]] NUL reprezentuje Unicode znak NULL (U+0000). [7] => [8] => == Programovací jazyky == [9] => V [[programování]] je NULL speciální hodnota, kterou se označuje adresní [[ukazatel (informatika)|ukazatel]] (nebo jakýkoliv jiný druh referenčního odkazu), který (abstraktně řečeno) neukazuje nikam (fakticky ukazuje na adresu 0, což se bere jako konvence pro označení ukazatele za NULL). V [[programovací jazyk|programovacím jazyce]] [[C (programovací jazyk)|C]] je hodnota NULL reprezentována binární nulou, v programovacím jazyce [[Pascal (programovací jazyk)|Pascal]] nebo [[Ruby]] se taková hodnota označuje klíčovým slovem nil. V [[assembler]]u o NULL nebo nil nemluvíme, ale fakticky tomu odpovídá stav, kdy některý z adresních registrů je nulový – v takovém případě je možné adresovat „tam, kam ukazuje NULL“ (což by u vyšších programovacích jazyků nejspíš skončilo chybovou hláškou). Například u architektury [[PC AT]] je to adresa [[přerušení]] INT 0. [10] => [11] => === Konverze z NULL === [12] => NULL se může vyskytovat i ve skriptovacích jazycích, řada z nichž striktně nehlídá typy proměnných. Při pokusu použít NULL se podle kontextu tato hodnota zamění na: [13] => * 0 (nulu) v případě aritmetických operací [14] => * „“ (prázdný řetězec) v případě textových operací [15] => * false v případě booleovských operací. [16] => [17] => == Relační databáze, SQL == [18] => V [[relační databáze|relačních databázích]] označuje NULL speciální hodnotu uloženou v databázi, která představuje neznámou, nedefinovanou apod. hodnotu. Vlastnost sloupce tabulky být NULL je natolik podstatná, že je definována nezávisle ([[Ortogonalita|ortogonálně]]) na jeho typu, rozsahu či dalších vlastnostech. Zajímavým případem je typ CHAR(0) NULL, který může nabývat dvou hodnot – ''(prázdný řetězec)'' nebo NULL – každá z nichž je chápána jako prázdná. [19] => [20] => === Operace s NULL === [21] => Pro NULL zpravidla platí zvláštní pravidla pro výpočty a porovnávání. [22] => [23] => ==== Algebraické ==== [24] => Výsledek jakékoli algebraické operace zahrnující NULL je opět NULL. NULL tedy v těchto případech (a i u mnoha funkcí, do kterých vstoupí jako parametr), působí jako pravý [[neutrální prvek]]. [25] => [26] => ==== NULL a chyby ==== [27] => SQL vrátí NULL v řadě případů, které ryze matematicky buď nemají řešení nebo v nichž se vyskytla chyba (například [[dělení nulou]], funkce v bodech mimo definiční obor apod.). Například dotaz: [28] => [29] => SELECT 5/0, MOD(5,0), SQRT(-1), LOG2(0), ASIN(1.1), ACOS(-1.1); -- COT(0); [30] => [31] => …vrátí ve všech políčkách hodnotu NULL. [32] => [33] => ==== Porovnávání ==== [34] => Porovnávání NULL s čímkoli se vyhodnotí opět hodnotou NULL (v Booleovském prostoru interpretováno jako NEPRAVDA), popřípadě speciální hodnotou UNKNOWN. To platí i pro porovnávání s NULL, takže porovnání NULL = NULL je nepravdivé. Je to proto, že jedna neznámá hodnota se vůbec nemusí rovnat jiné neznámé hodnotě. V tomto se SQL lehce dotýká oboru [[fuzzy logika|fuzzy logiky]]. [35] => [36] => ==== Logické ==== [37] => {| class="wikitable" style="text-align:center" [38] => |+Operátor AND [39] => |- [40] => ! AND !! TRUE !! FALSE !! NULL [41] => |- [42] => ! TRUE [43] => | TRUE || FALSE || NULL [44] => |- [45] => ! FALSE [46] => | FALSE || FALSE || FALSE [47] => |- [48] => ! NULL [49] => | NULL|| FALSE || NULL [50] => |} [51] => [52] => {| class="wikitable" style="text-align:center" [53] => |+Operátor OR [54] => |- [55] => ! OR !! TRUE !! FALSE !! NULL [56] => |- [57] => ! TRUE [58] => | TRUE || TRUE || TRUE [59] => |- [60] => ! FALSE [61] => | TRUE || FALSE || NULL [62] => |- [63] => ! NULL [64] => | TRUE || NULL|| NULL [65] => |} [66] => [67] => ==== Speciální funkce ==== [68] => Proto se hodnota NULL v [[SQL]] testuje speciálním výrazem sloupec IS NULL (sloupec obsahuje hodnotu NULL) nebo sloupec IS NOT NULL (sloupec neobsahuje hodnotu NULL). Analogicky, i v některých skriptovacích jazycích pro detekci existuje speciální funkce (nazvaná is_null() nebo podobně). [69] => [70] => === Operace JOIN === [71] => Pokud sloupec může obsahovat hodnotu NULL, je potřeba při spojování tabulek ([[JOIN]]) tuto možnost vzít v úvahu a nadefinovat chování systému v případě, že sloupec má opravdu hodnotu NULL. [72] => {| class="wikitable" [73] => |- [74] => ! Typ JOIN !! české označení !! Popis [75] => |- [76] => | INNER JOIN || Vnitřní spojování || Vybrány pouze řádky vyhovující spojovací podmínce (vyjma stavu NULL=NULLV SQL se NULL = NULL vyhodnotí jako NEPRAVDA, viz kapitola [[#Porovnávání]] – takové řádky jsou vynechány). [77] => |- [78] => | [NATURAL] JOIN || Přirozené spojování || Jako INNER JOIN. [79] => |- [80] => | LEFT JOIN || Spojování zleva || Vybrány řádky, které vyhovují spojovací podmínce (vyjma stavu NULL=NULL), plus řádky zdrojové tabulky odkazující na NULL nebo neexistující záznam v odkazované tabulce (kde potom všechny hodnoty z odkazované tabulky jsou vyplněny NULL). [81] => |- [82] => | RIGHT JOIN || Spojování zprava || Vybrány řádky, které vyhovují spojovací podmínce (vyjma stavu NULL=NULL), plus řádky odkazované tabulky, na které žádný řádek zdrojové tabulky neodkazuje – v těchto případech jsou všechny hodnoty zdrojové tabulky vyplněny hodnotou NULL. [83] => |- [84] => | OUTER JOIN || Vnější spojování || Vybrány všechny řádky zdrojové a odkazované tabulky, s tím, že pokud nebylo nalezeno propojení, jsou hodnoty z opačné tabulky vyplněny NULL. [85] => |} [86] => [87] => [88] => === Klíče === [89] => Do sloupce, nad kterým je definován [[Index (databáze)#UNIQUE|unikátní klíč]], nelze vložit dvě stejné (duplicitní) hodnoty, neboť by byla porušena datová integrita. Někdy (například při nějakém úkonu manipulujícím s daty) přesto může nastat potřeba dočasně duplicitní hodnotu zapsat. [[SŘBD]] pak zareaguje chybovou hláškou. Výjimkou z hodnot, které se v unikátním klíči mohou vyskytovat vícekrát, je právě „hodnota“ NULL. [90] => [91] => === WITH ROLLUP === [92] => Konstrukce [[WITH ROLLUP]] u [[agregační funkce|agregačních funkcí]] používá NULL speciálním způsobem – jako hodnotu sjednocující agregované sloupečky. [93] => [94] => == Souborové systémy == [95] => V [[unix]]ových [[operační systém|operačních systémech]] se používá soubor /dev/null, který označuje tzv. [[bit bucket]], zařízení, do kterého lze zapsat cokoli, ale veškerá zapsaná data se nenávratně ztrácejí. V operačních systémem firmy [[Microsoft]] ([[MS-DOS]], [[Microsoft Windows]]) se takové zařízení označuje jako NUL. [96] => [97] => Podobné soubory se zpravidla používají k zahazování nežádoucích hlášení programu pomocí přesměrování (např. program > /dev/null). [98] => [99] => == Související články == [100] => * [[0 (číslo)]] [101] => * [[NaN]] [102] => [103] => [[Kategorie:Datové typy]] [104] => [[Kategorie:Databáze]] [] => )
good wiki

NULL

NULL je v informatice obvyklé označení pro žádnou hodnotu nebo nic. Slovo vychází z latinského nullus.

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'C (programovací jazyk)','programovací jazyk','operační systém','agregační funkce','SŘBD','JOIN','neutrální prvek','fuzzy logika','přerušení','relační databáze','PC AT','assembler'