sql >> Databáze >  >> RDS >> Mysql

Jaké jsou rozdíly mezi Null, Zero a Blank v SQL?

Nula je číselná hodnota. Je to jistota s přesnými matematickými vlastnostmi. (Můžete na něm dělat aritmetiku...)

NULL znamená nepřítomnost jakékoli hodnoty. Nemůžete s tím dělat nic kromě testování.

Blank je špatně definovaný. Pro různé lidi to znamená různé věci v různých kontextech. Například:

  • Někdo může mít na mysli hodnotu řetězce nulové délky:tj. hodnotu bez znaků ('' ).
  • Někdo by mohl mít na mysli hodnotu řetězce nenulové délky skládající se pouze z netisknutelných znaků (SPACE, TAB atd.). Nebo se může skládat pouze z jednoho znaku MEZERNÍK.
  • V některých kontextech (kde jsou znaky a řetězec různých typů) může někdo znamenat netisknutelnou hodnotu znaku.
  • Někdo může dokonce myslet „cokoli, co se nezobrazí, když to vytisknete nebo zobrazíte“.

Jde o to, že „prázdné“ nemá jediný přesně definovaný význam. Alespoň ne v (nativní) anglické IT terminologii. Pravděpodobně je nejlepší se tomu vyhnout... pokud chcete, aby ostatní IT profesionálové pochopili, co máte na mysli . (A pokud tento termín použije někdo jiný a z kontextu to není zřejmé, požádejte ho, aby přesně řekl, co tím myslí!)

Nemůžeme říci nic obecně smysluplného o tom, jak jsou NULL / NULL / BLANK zastoupeny, kolik paměti zabírají nebo něco podobného. Jediné, co můžeme říci, je, že jsou reprezentovány navzájem odlišně .... a že skutečná reprezentace je závislá na implementaci a kontextu .



  1. Upozornění:Krok po instalaci nebyl úspěšně dokončen, Při pokusu o instalaci mysql pomocí brew v Mac OS High Sierra

  2. Jak uložit adresu kompatibilní s IPv6 v relační databázi

  3. Nemohu přistupovat k nezpracované instanci PDO v Laravel 5

  4. Odeberte řádek Mysql po zadaném čase