2016-07-12 29 views
1

我是新來的SQL,我試圖弄清楚這是NULL在做什麼。這裏一個簡單的例子:CREATE TABLE中的屬性之後的NULL約束?

CREATE TABLE test (
     bla VARCHAR NULL 
); 

於是,我就閹這個被設置爲默認值弄清楚,但它是空的默認閹我把它存在與否,對不對?

另外我想知道它是否必須保持空(無論什麼原因),但是當我試圖插入一個值時,無論如何都是可能的。它是做什麼的?

回答

1

CREATE TABLE

NULL

允許包含空值。這是默認設置。

你可以寫:

INSERT INTO test(bla) 
VALUES (NULL); 
-- it holds NULL 

INSERT INTO test(bla) 
VALUES (default); 
-- it holds NULL 

INSERT INTO test(bla) 
VALUES ('a'); 
-- it holds 'a' 

你也可以省略列:

CREATE TABLE test2(bla VARCHAR NULL, col2 INT NOT NULL); 

INSERT INTO test2(col2) VALUES (1); 
-- it contains NULL, 1 

如果指定列:

CREATE TABLE test(bla VARCHAR NOT NULL); 

INSERT INTO test(bla) VALUES (NULL); 
-- error 

編輯:

您不必明確指定NULL

CREATE TABLE test(bla VARCHAR); 

是一樣的:

CREATE TABLE test (bla VARCHAR NULL); 
+0

沒關係啊!真的很有幫助,謝謝!儘快接受答案! – Noli

1

你參數化的列可以爲NULL