Вниз
Скачать: CL | DM;

Про null в базах   Найти похожие ветки 

 
VictorT ©   (2002-10-09 17:08) [0]

Уже достатоточно давно вожусь с базами но только сейчас про это задумался и возникла непонятка. Как в базе физически хранится значение null? К примеру имеем поле числового типа размером в байт. Оно может хранить число от 0 до 255. А как же тогда хранится null?


 
NeyroSpace ©   (2002-10-09 17:39) [1]

Есть такой парадокс в БД. Даже пытались ввести 3х значную логику ИСТИНА, ЛОЖЬ и NULL.
>А как же тогда хранится null?
Это зависит от конкретной реализации СУБД.


 
Johnny Smith ©   (2002-10-09 17:44) [2]

Как хранится - NeyroSpace прав, по-разному. А вот возвращается
в виде набора байтов, где первый - нулевой.


 
han_malign ©   (2002-10-09 17:45) [3]

я так понимаю просто стоит флаг, что значение не валидно (примерно как в DBF "*"-удаленная запись), а уж где он хранится ...


 
han_malign ©   (2002-10-09 17:49) [4]

2 Johnny Smith
Во-во, пустая ASCIIZ строка
З.Ы. А вообще, с тех пор когда мне по Fox-у трояк за курсовой вкатили, я с базами не дружу.


 
Alexander Vasjuk   (2002-10-09 18:27) [5]

Конкретно в IB - читал, что вообще не хранит.

>Johnny Smith © (09.10.02 17:44
А если это целое, то и будет 0 а не null
А в случае со строкой Null и "" не одно и тоже
Опять таки конкретно в Delphi есть св-во IsNull


 
Странник ©   (2002-10-09 18:47) [6]

признак NULL хранится в дескрипторе поля


 
VictorT ©   (2002-10-09 18:48) [7]


> А если это целое, то и будет 0 а не null

Не, 0 и null всё таки разные вещи.


 
wicked ©   (2002-10-09 19:56) [8]

в mssql -
для каждой записи есть битовая маска, в которой определённые биты и отвечают, есть там null или значение...
какие биты за какие поля отвечают - решается структурой, по моему для not null полей место не отводится....

если не прав - поправьте... :)


 
kaif ©   (2002-10-09 19:59) [9]

Хуже всего дело с NULL в dBase-е обстоит для строк, ИМХО.
Так как там нет ни отдельного байта для этого признака, ни возможности менять длину строки, соответственно NULL там это то же, что и пробелы, набитые до ширины поля. Для дат и чисел пробелы в dBase спасают NULL.
В IB, по-моему, NULL - пустая строка.
Для числовых полей 0 и NULL - совсем разные вещи. Даже для строк это не так важно. Дело в том, что ключевые поля не должны быть NULL, а их обычно делают в виде INTEGER.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.009 c
3-101062
Velzevul
2002-10-12 16:23
2002.10.31
Использование компонента Table в цикле


8-101386
Maxuz
2002-07-07 14:19
2002.10.31
TImage и фликеры :-(


1-101307
Apay
2002-10-19 17:49
2002.10.31
Bitmap ->Grayscale


3-101171
PAVELsinicinV
2002-10-11 13:16
2002.10.31
Если значение МастерДата пустое то сложить


3-101162
yaJohn
2002-10-10 15:23
2002.10.31
Как быстро перекачать данные между двумя DataSet?




   Наверх