我是SQL的新手,我正在试图找出这个NULL正在做什么。这是一个简单的例子:
CREATE TABLE test (
bla VARCHAR NULL
);
所以我试图弄清楚它是否设置为默认值,但它默认为null,我把它放在那里,对吧?
我也想知道它是否必须保持为null(无论出于何种原因)但是当我试图插入一个值时,无论如何都是可能的。它有什么用呢?
答案 0 :(得分:1)
<强> 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);
答案 1 :(得分:1)
您正在参数化列可以为NULL