2011-02-15 2 views
1

Что означает значение null в этом скрипте? Означает ли это, что столбец может иметь нулевые значения или это означает, что значение по умолчанию столбца равно nul?Что здесь означает значение?

CREATE TABLE product (product_nbr int NOT NULL, 
    product_name varchar(40) NOT NULL, 
    product_status_code char(10) NOT NULL, 
    start_date date NULL, 
    end_date date NULL, 
    raw_material_cost decimal(12,2) NULL, 
    primary key (product_nbr) 
    ) 

ответ

8

Это означает, что столбец принимает нулевые значения. Это прямо противоположно объявлению NOT NULL, которое вы видите для других столбцов, и на самом деле является объявлением по умолчанию.

Для столбца, имеющего значение по умолчанию NULL, декларация DEFAULT NULL. Это, в свою очередь, подразумевает, конечно, что столбец принимает нулевые значения.

+0

CREATE TABLE product (product_nbr int NOT NULL, product_name varchar (40) NOT NULL, product_status_code char (10) NOT NULL, start_date date, end_date date, raw_material_cost decimal (12,2), первичный ключ (product_nbr)) .. так и этот запрос тот же, что и вопрос в вопросе. – rgksugan

+0

@rgksugan: Да. – BoltClock

+1

@ rgksugan: они не совсем то же самое. Ваш SQL в комментариях является синтаксисом SQL-92, тогда как ваш SQL в вопросе не является. Использование ключевого слова «NULL» в SQL DDL для отметки столбца как обнуляемого является расширением поставщика стандарта, и я предполагаю, что этот поставщик является Microsoft. – onedaywhen

2

В основном это означает, что так как столбец разрешает NULL, и для столбца нет значения по умолчанию. Если вы вставляете в таблицу и не указываете значение, и для столбца нет значения по умолчанию, значение будет равно null (undefined). Если для столбца установлено значение NOT NULL, и значение по умолчанию отсутствует, вы получите сообщение об ошибке, потому что столбцу не разрешено быть NULL.

Смежные вопросы