空值是一种特殊的状态, 表示某一个字段"没有被处理过"
专业从事网站建设、成都网站制作,高端网站制作设计,小程序设计,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用H5网站设计+CSS3前端渲染技术,响应式网站,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。
几乎在所有的数据库中甚至是编程语言中, 空与非空都有其存在的意义, 举个例子, 一个人员表中, 有一个年龄字段, 这个年龄字段如果为非 空, 则在不知道人员年龄的情况下, 数据无法入库, 否则会显示个奇怪的年龄(比如0岁, 或者-1岁等)
而有些情况泽不可以为空, 最常见的就是"主键", 比如身份证号之类的
你这样设置之后,是不能插入的空(NULL),而是能插入空串(\\'\\')。
如果不让插入空串,应该使用check,例如:
CREATE TABLE table2 (
title varchar(50) NOT NULL,
message varchar(200) NOT NULL DEFAULT \\'内容\\',
msname varchar(50) NOT NULL DEFAULT \\'发布人\\',
date date NOT NULL,
PRIMARY KEY (`title`) ,
CHECK (title!=\\'\\')
) ;
alter table 表名 modify 列名 not null;
你在建表时使用not null即可做到限制‘’这种空串的插入了。
‘’和null虽然本质上不一样,但‘’读到数据库时是被当做null处理的。
如果想要增加一个不为空的字段可以,但要放进先放入默认值
比如在scott的emp中加入一列'T'不为空的,可以这么写
alter table emp add T number(8) default (0) not null;
not null 和 default不能换位置