我是新來的SQL,我試圖弄清楚這是NULL在做什麼。這裏一個簡單的例子:CREATE TABLE中的屬性之後的NULL約束?
CREATE TABLE test (
bla VARCHAR NULL
);
於是,我就閹這個被設置爲默認值弄清楚,但它是空的默認閹我把它存在與否,對不對?
另外我想知道它是否必須保持空(無論什麼原因),但是當我試圖插入一個值時,無論如何都是可能的。它是做什麼的?
我是新來的SQL,我試圖弄清楚這是NULL在做什麼。這裏一個簡單的例子:CREATE TABLE中的屬性之後的NULL約束?
CREATE TABLE test (
bla VARCHAR NULL
);
於是,我就閹這個被設置爲默認值弄清楚,但它是空的默認閹我把它存在與否,對不對?
另外我想知道它是否必須保持空(無論什麼原因),但是當我試圖插入一個值時,無論如何都是可能的。它是做什麼的?
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);
你參數化的列可以爲NULL
沒關係啊!真的很有幫助,謝謝!儘快接受答案! – Noli