null

阅读 / 问答 / 标签

oracle的某个字段怎么不能判断=' and is not null?。

null和‘"是不一样的,在数据是未知数或者无法使用时,大多数的数据库管理系统将存储一个叫做Null值的特殊值。不要将它和零(一个合法数值)、零长度串(不含有字符的一种串数据类型)或空格字符混淆起来。SQL-3标准中把一个Null定义为:“...一个用来指明任何数据值都不存在的一个特殊值...”Oracle中有一个空值调用函数:ISNULL功能:使用指定的替换值替换NULL。语法ISNULL(check_expression,replacement_value)参数check_expression将被检查是否为NULL的表达式。check_expression可以是任何类型的。replacement_value在check_expression为NULL时将返回的表达式。replacement_value必须与check_expresssion具有相同的类型。返回类型返回与check_expression相同的类型。注释如果check_expression不为NULL,那么返回该表达式的值;否则返回replacement_value。一个例子:使用ISNULL下面的示例为titles表中的所有书选择书名、类型及价格。如果一个书名的价格是NULL,那么在结果集中显示的价格为0.00。SELECTSUBSTRING(title,1,15)ASTitle,typeASType,ISNULL(price,0.00)ASPriceFROMtitles

数据库 问题 我建表 指定列 约束条件 比如 主键和 not null 不起效 插入了空值不报错 求助

这是一个主键由两个字段组成的,只有当 id 和 name两个字段的值都相同时才会报错。 空值是没有值,不是空字符串。例如 insert into admin(password) values("1");就会报错insert into admin(name,password) values("","");就可以成功插入记录。

oracle字段加了default默认值,还需要not null约束吗?

默认值仅仅是你在初次进行insert的时候,如果不提供值,则使用默认值。x0dx0a如果后续你进行update,将这个值改为null,则也是可以的,此时,并不会使用默认值。x0dx0a由此可见default并不会取代not null约束。x0dx0a如果是insert的话,default可以覆盖not null约束x0dx0a如果update,则default不一定能覆盖not null约束

access窗体文本框有效性规则中输入is not null无效

老实说文本框的有效性规则不是很好用,我一般是在代码运行之前检查所需的文本框是否填写了有效信息,否则让用户补填即可null在文本框框里很容易和空文本串""混同,这就是问题的原因可以把文本框的默认值设为"",另外代码运行前进行检测if nz(me![材料名称],"") ="" then msgbox ("请填写材料名称!") "提示框提示 end sub "中止运行end if

unique约束条件是不是包含not null

唯一约束unique唯一约束可以插入空值nullconstraintstu_name_email_uniunique(email,name)表示email和name组合不能重复

oracle字段加了default默认值,还需要not null约束吗?

默认值仅仅是你在初次进行insert的时候,如果不提供值,则使用默认值。如果后续你进行update,将这个值改为null,则也是可以的,此时,并不会使用默认值。由此可见default并不会取代not null约束。如果是insert的话,default可以覆盖not null约束如果update,则default不一定能覆盖not null约束

T-SQL中,修改字段null和not null的语法是什么? alter table table_name alter column .....???

应该是大众的修改方式一样吧!!IS NULL或者IS NOT NULL

default 0和not null有有优先级的问题吗?

这个问题很简单,sql有优先级书写的顺序,你可以看看相关的教材,里面写的很清楚,哪个在前,哪个在后。sql里主要就是空和非空是设置在数据类型之后的,然后默认值(域完整性)与主键或外键等等的实体完整性一个道理,书写的时候注意一下格式谢谢!

用sql语句创建数据表列属性的时候null和not null都没写是允许空值还是不允许空值? 如图

一般关系型数据库的字段在不指名not null 的情况下都是允许null值的

mysql数据库默认字段值是不是都要设置成not null

都有默认值了,当然是设成not null了。能够非空的尽量非空。甚至为了尽可能避免碎片,假如为了优化,甚至需要把非空字段提前到空字段前面,但这样会影响程序的可读性和编码复杂。

sql server 创建表时 创建字段时,如果不显示的定义null或者not null,默认是null还是not null?

默认的是null。。

SQL中IS NOT NULL与!=NULL是等价的吗

等价

ifnull(a,')>' 与 a is not null 的区别

ifnull(a,"")>"" 与 a is not null 有区别。前者查到的内容可能比后者多。这样考虑,如果你用 is null,去查,只能查出来值为“null”的单元格,如果该单元格为空,什么都没有,就不会被查出来。所以,用is not null去查,就能查出有值的以及为空的,为null的查不出来。可是大多数时候你并不想要查出为空的。ifnull(a,"")>"" 此时就有用处了,如果a为null,就把他置空。

为什么数据库表的列属性设置了NOT NULL 但还是能插进空值 在线求大神解答 我用的是SQL Server 2008

空值是空的字符串,和null值是不一样的

在修改表的结构中,如何用alter table将已经建立的空值约束null改为not null?(其他的不变)

指定列为非空可以使用如下语句,但是需要注意,修改的列,在表中必须不存在null数据,如果含有为空数据,修改无法成功,需要先处理掉为空数据才能修改alter table 表名 modify 列名 not null;

mysql字段为not null,没有设置默认值 为什么会默认插入0

如果是not null的话,那你就必须插入一个值,你不插入值的话,就会调用默认值。 如果这两个都没有的话,就会报错了 所以,改下你的insert insert into zc_manager(user,pass,level) values("admin","123456",-1);

请教一个MySQL的NOT NULL指令和default 0的问题

NOT NULL 不能为空 default 0是指默认值为0不矛盾,如果字段设定NOT NULL,当没有输入值时,会有一个默认值来填充~

如何用alter table来去掉某个列的not null属性

  您好,我来为您解答:  alter table BUDGET_OB modify LAST_VER not null;  如果你改的是主键,估计得先把主键约束去掉。  不过主键去掉的话,可能会有问题啊。  希望我的回答对你有帮助。

mysql 为什么我设置一个表的字段not null,为什么还可以插空?

是什么类型的?

mysql 列写了not null 之后,default 还是null,这是为什么?

notnull是你对插入数据的约束default是你在在插入数据时,如果这个字段值缺省的时候所插入的值,如果你插入有值那么就不用不到default

java的@NotNull有实际作用吗?

/*** Denotes that a parameter, field or method return value can never be null.* This is a marker annotation and it has no specific attributes.*///解释:指明一个参数,字段或者方法的返回值不可以为null;//这是一个动画标记,没有特定的属性值;有作用,但这个只是IDE对代码的静态检查null,运行时传递过来的null还是需要用代码做好空保护。

sql的alert怎么把一个not null的字段变为可以为null的?

从哪里找到的约束条件,用的什么客户端呀,我怎么没找到

sql中创建表的时候,为什么not null要放在comment后面呢?

应该是sql规定的语法格式,记住就行了

SqlServer 表中已有数据的情况下,新增一个Not Null的字段

SqlServer 表中已有数据的情况下,新增一个Not Null的字段 那你就写个语句就好了呀 alter table 表名 add 新字段名 varchar(100) not null字段名及字段类型你根据自己需要更改一下

给oracle的date字段加not null

直接编辑表结构,把为空的复选框选中去掉就可以了

mysql is not null 会使用索引么

大部分都是认为会使索引失效,只能说大部分情况下,不会使用索引,也有用is null 会走索引的。

ACCESS里的(Is Not Null)什么意思

判断是否为非空值.

如何删除表的字段的not null 约束

alter table [table_name] modify [column_name] [type];重新定义就行了。例如:alter table db_imagefile modify filename varchar(255);

设置列约束中有NOT NULL,为什么还是可以向里面插入空值

在SQL SERVER中NULL跟""是完全不一样的,NULL表示未知,没有类型可言,而""是有类型的,表示一个空的字符串.所以有not null约束的列是可以插入""的. 而且有时候做判断的时候可能某个列既有NULL值又有""值,这时候就经常用 where isnull(列名,"")

oracle 和 is not NULL的区别?

<>""只能判断空字符串,is Null是对Null字符的判断,两种完全不同的数据。一个是空字符,是个字符串,只不过是没有值,另一个是空值(Null)。Null在数据库中是特有的一类数据。="" 和<>""is null和is not null

sql语句 id INT NOT NULL是什么意思?

你这个应该是建表时字段定义的一部份吧,是定义一个字段,字段名是id ,类型 是int 整型,not null 是说字段不允许为空值

sql 命令求解 sql语句中如何为新增列指定为NOT NULL

在建表的时候字段后面直接加上not null的判断,每个数据库语法都不一样。sqlserver是create table xxx (id int not null,desc varchar(100) not null)oracle好像也一样,db2似乎也是informix好像需要额外加非空判断。

mysql中某个字段出现重复数据,但该字段定义了唯一索引,not null ;不应出现这种情况,什么原因造成的?

主键必须确保最少性和稳定性。 一个表只能有一个主键,它约束了表中的行是唯一的。主键一般情况下还是标识列,可以自动增长,所以最好是int型。而字段却不能达到这个要求。 所以仁兄,还是让他尘归尘,土归土吧

SQL中在表创建好的条件下,怎么使用not null约束

添加 NOT NULL 约束在一个已创建的表的 “Age” 字段中添加 NOT NULL 约束如下所示:ALTER TABLE Persons MODIFY Age int NOT NULL;删除 NOT NULL 约束在一个已创建的表的 “Age” 字段中删除 NOT NULL 约束如下所示:ALTER TABLE Persons MODIFY Age int NULL;-from shulanxt

MYSQL里面,如果用NAVICAT 设置 NOT NULL?

ALTER TABLE table_name MODIFY COLUMN `creation_date` timestamp NOT NULL default "0000-00-00 00:00:00"

Mysql中的null值是什么意思 null 和not null的差别

123451、空 (NULL) 值表示数值未知2、空值不同于空白或零值。3、没有两个相等的空值。4、比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。5、在写入数据的时候,空字符串"" 也是一个确定的值,所以就算你定义了 NOT NULL 也可以被写入

null和空值有什么不同

空 (NULL) 值表示数值未知。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。在写入数据的时候,空字符串"" 也是一个确定的值,所以就算你定义了 NOT NULL 也可以被写入。

请教一个MySQL的NOT NULL指令和default 0的问题

NOTNULL不能为空default0是指默认值为0不矛盾,如果字段设定NOTNULL,当没有输入值时,会有一个默认值来填充~

SQL内如何将列的null改为no null属性?

分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: 用alter?具体语句说下,谢谢 解析: alter table 表名 alter column 字段 字段属性 not null 例: ALTER TABLE [Dv_admin] ALTER COLUMN acceptip varchar(50) NOT NULL运行之前要将该字段所有行赋上值,要不然变成not null后会出错. 改成这样 alter table zlxsxx alter column xsxh int NOT NULL;

为什么mysql字段要设置为not null

都有默认值了,当然是设成not null了。能够非空的尽量非空。Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引注意:但把NULL列改为NOT NULL带来的性能提示很小,除非确定它带来了问题,否则不要把它当成优先的优化措施,最重要的是使用的列的类型的适当性.

sql语句中如何为新增列指定为NOT NULL?

主键肯定不能为not null了- - 还有就是看看有没约束 ALTER TABLE 只允许添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,因为它不满足上述条件。 alter table xx add 添加列表要是空的 指定列是否可接受空值。如果列不允许空值,则只有在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。只有同时指定了 PERSISTED 时,才能为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,则可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。 如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。 在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值时,才可以在 ALTER COLUMN 中指定 NOT NULL。必须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如: 因为新建不能为空所以要先新建个可以为空的列然后强制为空 下面代码以测试alter table 表名 add 列名 nvarchar(20) nullgoUPDATE 表名 SET stuName = N"some_value" WHERE 列名 IS NULLALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULLgo

sql语句中的unsigned和not null是什么意思?

unsigned 是int 无符号,就是都是正数not null表示该字段不允许空值

sql语句中如何为新增列指定为NOT NULL

主键肯定不能为not null。再一个就是看看是否有约束了。ALTER TABLE 只可以添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;当然,如果前几个条件均未满足,表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,它不满足上面条件。alter table xx add 添加列表要是空的指定列是否可接受空值。如果列不允许空值,则在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。同时指定了 PERSISTED 时,才可以为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,就可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值的时候,才可以在 ALTER COLUMN 中指定 NOT NULL。须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如:新建不能为空,故要先新建个可以为空的列。然后强制为空。下面代码以测试。alter table 表名 add 列名 nvarchar(20) nullgoUPDATE 表名 SET stuName = N"some_value" WHERE 列名 IS NULLALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULLgo

SQL中NOT NULL DEFAULT(getdate())是什么意思

not null 此列不可为null,DEFAULT(getdate()) 默认值为当前时间

sql语句中如何为新增列指定为NOT NULL?

主键肯定不能为not null。再一个就是看看是否有约束了。ALTER TABLE 只可以添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;当然,如果前几个条件均未满足,表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,它不满足上面条件。alter table xx add 添加列表要是空的指定列是否可接受空值。如果列不允许空值,则在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。同时指定了 PERSISTED 时,才可以为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,就可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值的时候,才可以在 ALTER COLUMN 中指定 NOT NULL。须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如:新建不能为空,故要先新建个可以为空的列。然后强制为空。下面代码以测试。alter table 表名 add 列名 nvarchar(20) nullgoUPDATE 表名 SET stuName = N"some_value" WHERE 列名 IS NULLALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULLgo

sql语句中如何为新增列指定为NOT NULL?

主键肯定不能为not null了- - x0dx0a还有就是看看有没约束 x0dx0ax0dx0aALTER TABLE 只允许添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,因为它不满足上述条件。 x0dx0ax0dx0aalter table xx add 添加列表要是空的 x0dx0ax0dx0a指定列是否可接受空值。如果列不允许空值,则只有在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。只有同时指定了 PERSISTED 时,才能为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,则可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。 x0dx0ax0dx0a如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。 x0dx0ax0dx0a在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值时,才可以在 ALTER COLUMN 中指定 NOT NULL。必须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如: x0dx0ax0dx0a因为新建不能为空所以要先新建个可以为空的列x0dx0a然后强制为空 x0dx0a下面代码以测试x0dx0aalter table 表名 add 列名 nvarchar(20) nullx0dx0agox0dx0aUPDATE 表名 SET stuName = N"some_value" WHERE 列名 IS NULLx0dx0ax0dx0aALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULLx0dx0ago

校验函数notnull有异常

具体如下不允许这个字段为空值。写代码的话,在字符类型后面加上就可以了。例如:createtableemp(idvarchar2(10)notnull,--这个字段不能为空namevarchar2(10));除了强制设定notnull的,建表后,主键、分区字段等都是非空的。

E-R图中not null是不为空,null是为空,还是可以为空?

not null不可以为空 null可以为空

mysql 列写了not null 之后,default 还是null,这是为什么?

not null 是你对插入数据的约束default 是你在在插入数据时,如果这个字段值缺省的时候所插入的值,如果你插入有值那么就不用不到default

这里面的not null是什么意思,干嘛用的?意义何在?

返回该字段中不缺少值的记录。

在数据库中,如果创建表时,如果没有指定NULL或NOT NULL,在缺省情况下用什么?

NOT NULL是个约束吧,NULL??

db2中怎么修改,使一列原为null的成为not null

今天把自己遇到的一个小问题跟大家分享一下如何修改db2数据库表中列的属性--将列的非空属性改为允许空的属性,修改数据表的某一列属性其实很简单但是里面有需要细节需要dba注意,毕竟数据的安全才是最重要的啊!db2数据库支持直接使用ddl修改原表列属性,但是在修改之前需要确认要修改的列是否存在唯一性约束,否则你是无法修改属性的。注:该操作会导致表处于pending状态,在操作之前需要确认该表是否24小时表,是否为大表(因为需要reorg重置表状态,数据量太大将导致业务中断时间变长),谨慎操作~以下是具体操作步骤,敬请参考:1、首先检查需要修改的列是否含有唯一性检查约束(注:主键不可设置为null)1)使用db2系统表查询将要修改的表是否含有唯一约束#db2 "select CONSTNAME, type from SYSCAT.TABCONST where TABNAME="T01""#主要看type,一般type的值有P(主键约束)、U(唯一性约束)、K(列值检查)、F(外键)#如果返回的type值中有没有U类型的行则可以直接将原列设置为null然后reorg即可,反之需要继续第二步2)使用db2look工具确认#db2look -d dbname -e -t tabname#查看将要修改的表的ddl语句,检查是否有unique子句,如果有这证明有唯一性约束列存在2、如果有唯一性约束且恰好定义在需要修改的列上,我们需要先将该列的唯一性约束删除,如果没有则跳过该步#db2 "alter table tabname drop unique CONSTNAME "#回退步骤:db2 "alter table tabname add unique(colname)"3、修改列的属性为nulldb2 "alter table tabname ALTER colname drop not null"#回退步骤:db2 "alter table t01 ALTER colname set not null"4、对该表进行重组因为修改列的属性后,该表处于reorg pending状态所以我们必须进行reorg才能使该表恢复到正常状态(这一步很重要)db2 "reorg table tabname use tempsys"db2 "runstats on table tabname with distribution and detailed indexes all"5、验证db2 load query table tabname如果返回表状态为normal则此次操作完成。

字段存在null值,能否给该字段添加not null约束

如果数据已经包含了不符合约束要求的数据,这种情况下,约束是加不上去的。你需要首先执行update语句,把指定列的数据,为null的,设置一个值,然后再加notnull约束。假如你是这样的要求:说以前的数据我不管了,但是新进来的数据。某个字段不能为null那么你可以用触发器来处理。

谁能帮助我说一下。id int not null,

id为int类型 不能为空 具体的是 数据库还是什么地方的

如何用alter table来去掉某个列的not null属性

alter table 表名 alter column 字段 字段属性 null 例:ALTER TABLE [Dv_admin] ALTER COLUMN acceptip varchar(50) NULL

数据库中语句is not null和!=null有什么区别?

NULL的判断不能简单的用=或!= 只能使用IS (NOT) NULL来判断.所以 is not null 和!=null的结果是完全不同的.虽然!=null编译不会报错,但是没有人这样来判断某个字段为null

oracle字段加了default默认值,还需要not null约束吗,可不可以省略

需要加,如果你给了default约束,此列还是可以存储空值,比如:create table t(A NUMBER,B VARCHAR2(10) DEFAULT "ABC");INSERT INTO T VALUES(1,NULL);B列存储了一个空值.

如何简单的将字段从NULL改为not null

1.如果在本字段上有约束,先将约束删除再用 alter table 表名 modify 列名 not null; 的办法处理。 2. 第一步:删除约束 3.ALTER TABLE 表名 DROP CONSTRAINT 约束名 4.第二步:创建 5.alter table 表名 column 字段名 字段类型 not null 6.注

name c(8) not null在数据库中的意思

name是字段名,c是字段类型(貌似没有这个类型的啊,只有varchar。你的是什么数据库?)(8)是字段长度,表示8个字节not null 表示该字段不允许空值

mysql里用了is not null为什么sex里面还有null

我也有同样的问题:1.如果用not null,有时候会浪费空间啊。2.如果default null,并且该字段有索引,并且这个字段很多情况下是null,也是有点浪费索引空间。

oracle字段加了default默认值,还需要not null约束吗,可不可以省略

你好!需要加,如果你给了default约束,此列还是可以存储空值,比如:createtablet(ANUMBER,BVARCHAR2(10)DEFAULT"ABC");INSERTINTOTVALUES(1,NULL);B列存储了一个空值.如有疑问,请追问。

mysql字段为not null,没有设置默认值 为什么会默认插入0

因为你的类型是int类型吧

SqlServer 表中已有数据的情况下,新增一个Not Null的字段

那你就写个语句就好了呀alter table 表名 add 新字段名 varchar(100) not null字段名及字段类型你根据自己需要更改一下

SQLite的not null约束怎么好像没有作用

有可能是数据库里原先就有null数据,但是原先的结构没有加非空约束。在这种情况下改变数据库字段,使之加上非空约束,sharpPlus SQLite Developer 3.6.21 图形管理并不报错。但实际上这个约束根本就没加上。关闭数据库重新打开就可以发现这点。

数据库系统中“Not null约束”的含义

不允许为空(null)值,也就是必须有值,插入数据时若把这个字段省了会报错

SQL not null 与 ‘’的区别

在SQLSERVER中 ris is not null 是不为 空值ris <> "" 是不等于 字符串 空"" 表示空字符串null表示什么都没有,什么都不是判断"" 用 ="" 或 <>"" , 而null 用is null 或is not null,字段中如果出现null 会对查询语句造成影响有可能导致索引失效,所以字段中尽量不要出现null ,用"" 或其他字符代替 ,纠正一下其他人的观点:null不代表空字符串 哦, 代表表示什么都没有,什么都不是,可以出现在任意类型字段里面(int,decimal,varchar 等等都可以是null),""只能在varchar,char类型里面出现

sql语句中如何为新增列指定为NOT NULL?

主键肯定不能为not null。再一个就是看看是否有约束了。ALTER TABLE 只可以添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;当然,如果前几个条件均未满足,表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,它不满足上面条件。alter table xx add 添加列表要是空的指定列是否可接受空值。如果列不允许空值,则在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。同时指定了 PERSISTED 时,才可以为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,就可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值的时候,才可以在 ALTER COLUMN 中指定 NOT NULL。须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如:新建不能为空,故要先新建个可以为空的列。然后强制为空。下面代码以测试。alter table 表名 add 列名 nvarchar(20) nullgoUPDATE 表名 SET stuName = N"some_value" WHERE 列名 IS NULLALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULLgo

郝斌sqlserver 2005 31 什么是not null约束 及其not null约束与default约束的异同

not null是非空约束,用not null约束的列不能出现空值,default是设置默认值,用法: 类型 列名 default "12345" 设置后若是你的表没有值默认就为12345 若是没有设置default默认为null

为什么字段尽可能用NOT NULL,而不是NULL

字段尽可能用NOT NULL,除非特殊情况。这句话在mysql优化的文章被大量的引用,但却不说明原因,下面就讲述一下相关内容NULL为什么多人用?1、NULL是创建数据表时默认的,初级或不知情的或怕麻烦的程序员不会注意这点。2、很多人员都以为not null需要更多空间,其实这不是重点。3、重点是很多程序员觉得NULL在开发不用去判断插入数据,写sql语句的时候更方便快捷。网上很多资料都有写:Mysql官网文档:“NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte.”-----------------------------------------------Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam中固定大小的索引变成可变大小的索引--------这也是《高性能mysql第二版》介绍的解读:“可空列需要更多的存储空间”:需要一个额外字节作为判断是否为NULL的标志位“需要mysql内部进行特殊处理”:注意:但把NULL列改为NOT NULL带来的性能提示很小,除非确定它带来了问题,否则不要把它当成优先的优化措施,最重要的是使用的列的类型的适当性.

数据库中为数据表增加新的字段时,可以为新字段设置NOT NULL约束吗?

是的,必须有百默认值。因为在SQL SERVER中NULL跟""是完全不一样的,NULL表示未知,没有类型可言,而""是有类型的,表示一个空的字符串。所以有not null约束的列是可以插入""的。有时候做判断的时候可能某个度列既有NULL值又有""值,这时候就经常用 where isnull(列名,"")=""进行判断。在ORACLE中,""是等同于NULL值进行处理的,这时候有not null约束的列就不知能插入""了。

SQL Server中,null 与not null 在什么时候用

1.在定义表时create table t1(id int not null , --默认为可以为空.......)2.在筛选字段时,比如你定义邮箱验证表时把没有验证邮箱的用户Email_In的值为空,你要查询没有验证邮箱的用户。要用到的 is null select * from table where Email_In is null 反之(is not null)为验证过的用户。

mysql语句中NOT NULL的意思

就是表示字段的两个属性:NOT NULL :表示该字段不能为空;auto_increment:表示自动增长其他字段的NOT NULL 也是表示不为空。

为什么mysql字段要设置为not null

这个是从实际意义决定的比如金额字段如果系统中要求必须填写,那么就设置为notnull,但是这样一来,如果一旦再录入信息是无法确定金额大小,就无法正确的进入到系统中而如果设置为可空,则null就可以表示不确定或漏填

mysql里面一字段设置为NOT NULL,为什么我不插入该字段它不报错

都设置了notnull不插入值得话当然会报错,就好比说叫你装杯水,而你只拿了个水杯。

SQL 如何把现有字段设为not null

是不是那个字段已经有空值了 要把空值处理一下。。。

sql数据库字段设置成not null的话,字段不设置默认值是不是就不能插入了?

level必须有值 ,如不给值,就得设置默认值

NULL和NOT NULL的区别是什么?

呵呵,第一次看到有人讨论 NOT NULL 和 NULL ,为此我还亲自试了试,其实没有那么复杂。首先我要说第一种是对的。设计表时,如果这个列不能为空,那么设置为NOT NULL如果这个列可以为空,那么设置为 NULL,或者不设置其实设置为 NULL,或者不设置,那么效果都是一样的,所以没必要设置 NULL,我以前从没有用过 NULL所以呢,USERNAME应该是NOT NULL附上测试语句create table aaaaa( a1 char(1) null, a2 char(1) not null, a3 char(1))insert into aaaaa(a1,a2,a3)values("a","b","c");insert into aaaaa(a1,a2,a3)values("","b","");insert into aaaaa(a2)values("b");都是ok

在定义基本表语句时,NOT NULL参数的作用是什么?

数据库字段属性,使用NOT NULL后该字段不接受NULL值。例如你想表中插入数据时,NOT NULL的字段必须赋值,可以是""空值,但是不能为NULL。

怎样定义check约束和notnull约束

notnull约束强制列不接受null值。check约束是指检查性约束。notnull:指定在该列的数据不能为null,插入数据时,必须有数据,否则不容许插入。check:指定在该列的数据必须在check所设定的范围或者类型,否则,不能保存数据。约束(Constraint)使用户可以定义数据库引擎执行数据完整性的方式,就是说,约束定义了有关列中允许的值的规则,强制数据表保持数据的完整性,表数据必须符合一定的条件。因为约束跟表数据有十分密切的关系,因此,通常在表定义中创建约束。事实上,表是数据库对象,约束也是一种特殊的数据库对象,只不过用于实现数据的完整性。

在数据库字段为not null中为什么可以插入空值?

空值实际不是空的,空!=null
 首页 上一页  1 2 3 4 5  下一页  尾页