[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: NULL - зачем?
Страницы: 1, 2, 3
DedMorozzz
как "написал NULL"? В ручную прописал туда эти 4 символа?

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
qaz333
Цитата (DedMorozzz @ 4.11.2013 - 13:00)
как "написал NULL"? В ручную прописал туда эти 4 символа?

да
DedMorozzz
К сожалению ты ничего не понял ):

Перечитай ещё раз, что я ранее писал, там этот момент прописан

На данный момент ты в поле записал значение, с текстом "НУЛЛ", а надо, при редактировании поля поставить галочку что это нулл. Или запросом обновить (UPDATE tblname SET `column` = null WHERE id = 12)

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
mvg
Я считаю, что ячейку в таблице, пустой оставить невозможно.
Игорь_Vasinsky
не правильно считаешь, иногда не только можно, но и нужно.

это ряд нюансов, который я перечислять щас не буду, просто прими к сведению.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
dr.nomore
В мане этому вопросу посвящена довольно обширная статья. Программисты, как там пишут, постоянно парятся с NULL не понимая зачем он нужен. Так что ТС поднял каноничную тему.

Чтобы показать что никуда он от неизвестности не денется надо вспомнить зачем вообще нужны реляционный базы данных.

Если вам не нужна такая база, то вы пользуетесь файлами. Потому что вам не нужны отношения. Как только они вам занадобились, файлы обламываются. Построить отношения между файлами можно только самые простые, типа в файле А взять текст открыть Б, найти такой-то текст прибавить что следует и записать в Д. При этом если в файле Б не будет найдено указанного текста из А, то записать другую байду в Д.

Так вот NULL это и есть факт того, что сущность не найдена, неизвестна.

Через отношения иллюстрируется как два пальца

select * from parent left join child using(id) where child.id is null;


Хоть кота лысого пишите в свой ID, но если в родительской таблице не найдено ни одного такого кота из дочерней таблицы - она становится сиротой, на что и покажет NULL.

Так вот, проблема в падении нравов. Если бы программисты умели пользоваться СУБД, они таких вопросов бы не задавали. Передав флаг NULL в распоряжение скрипта им бы не пришлось падать в глазах абстракции столь низко, как они падают прописывая на каждое поле правила непосредственно в теле скрипта. Причем насквозняк - из пхп в ява-скрипт и аяксы.

И вообще довольно странно все это. В программировании есть такой же NULL.

Например я беру переменную из массива по ожидаемому ключу. Переменная может иметь значение 0. Как мне отразить факт того, что ключ ничего не открыл? Правильно. Присвоить ему значение NULL.
DedMorozzz
Цитата
В программировании есть такой же NULL.
Не такой же

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
dr.nomore
Да, не такой же. В БД null, а в php 'null' wink.gif
DedMorozzz
Цитата (dr.nomore @ 6.11.2013 - 19:38)
Да, не такой же. В БД null, а в php 'null' wink.gif

??
В пхп тоже null
А вот поведение их разное
В пхп нулл это пустота. Причём вполне определённая. А в SQL - нет

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Guest
Цитата (DedMorozzz @ 6.11.2013 - 20:35)
Цитата
В программировании есть такой же NULL.
Не такой же

А какой же?
чем отличаются операции над null в JS от mysql?
DedMorozzz
На 1й странице описан этот помент
Повторюсь. использую псевдокод

Нулл в пхп:
null == null - true
null != null - false

В SQL:
NULL == NULL - false
NULL != NULL - false

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Игорь_Vasinsky
ну в SQL для сравнения используется одно =
и в SQL есть is null - is not null

и на сколько мне известно - понятие одно - null - нет значения

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
DedMorozzz
Цитата (Игорь_Vasinsky @ 6.11.2013 - 21:05)
ну в SQL для сравнения используется одно =

Я указал, что всё в всевдокоде, что бы был единый синтаксис

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Игорь_Vasinsky
а.. пардоне

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Guest
Цитата (DedMorozzz @ 6.11.2013 - 21:53)
Нулл в пхп:
null == null - true
null != null - false

В SQL:
NULL == NULL - false
NULL != NULL - false


В SQL:
NULL is NULL - true
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.