1)"隐式"写入空值其实就是在追加记录时,不向需写入空值的字段输入任何数据。注意,前提是相应字段未设置有"默认值",否则数据库引擎会在未输入字段值时自动输入有关“默认值”;
2)“显式”写入空值就是指明将关键字null写入目标字段。
下面举例说明,假设有数据表
--隐式插入空值(null)示例
insert into 学生表(学号,姓名,性别) values("001","张三","男")
因为未向住址、电话这两个字段写入任何值而该两个字段也未有“默认值”上述语句运行后,空值(null)就自然被“输入”到住址、电话这两个字段里。
--显示式插入空值(null)示例
insert into 学生表(学号,姓名,性别,住址,电话) values("001","张三","男",null,null)
***附带提示一下,空值(null)与空字符串("")也称作零长度字符串在概念上是不一样的。尽管两者的外观看起来一样,都没东西,但是前者的数据类型为未知,而后者的数据类型则是明确的,那就是“字符型”。存储空字符串("")是要占用磁盘空间的,而空值(null)则不占用磁盘空间。我们使用数据库时要留意两者之间的区别。
在数据库系统中,空值是(什么也没有)。\x0d\x0a解释:\x0d\x0a所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL,判断值是否等于NULL,不能简单用=,而要用IS关键字。\x0d\x0a空(NULL)\x0d\x0a值表示数值未知(在实际意义中,如果使用null,就是代表变量值是未知的,比如手机号码设为null,说明不知道手机号码是什么)。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。\x0d\x0a在写入数据的时候,空字符串也是一个确定的值,所以就算定义了NOTNULL也可以被写入。运行下列SQL语句就可以null全换成空字符:update 需要更新的表名 set [需要处理的字段名]='' where [需要处理的字段名] is null
例如已经打开了ado连接对象cn
dim strSql as string
strSql="update table1 set [col1]='' where [col1] is null"
cn.Execute strSql '执行sql语句
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)