全部博文(2065)
分类: Mysql/postgreSQL
2010-06-04 21:20:53
Mysql中的null与empty string
时间:
这两个概念是不同的。现在我们就以JAVA + MYSQL来说明它!
1.
创建表
CREATE TABLE `tt` (
`id` int(11) NOT NULL auto_increment,
`a` char(255) default NULL, 默认我们选择的是NULL
`b` char(255) default '', 默认我们选择的是Empty String
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
现在我们来插入两条记录
insert into tt(id) values(1);
insert into tt(id) values(2);
来select看一下吧
mysql> select * from tt;
+----+------+------+
| id | a | b
|
+----+------+------+
|
1 | NULL | |
|
2 | NULL | |
+----+------+------+
结论:如果默认值我们如果选择的是NULL。即在插入的时候如果没有指定其数据的话就默认为NULL值了。如果指定了其为EmptyString的话就取空值了!
查询条件:
1、select * from tt where a is null; 得这样
2、select * from tt where b=''; Empty
String的方法
再来看一下程序中:
ResultSet rs =
tool.myResultSet("select * from tt");
while(rs.next()) {
String aString = rs.getString("a");
String bString = rs.getString("b");
if (aString == null) {
System.out.println("=========");
}
System.out.println(aString + ", " + bString);
}
打印结果:
=========
null,
=========
null,
结论:
1、数据库里面字段如果我们保存的是NULL为默认值的话读出来的数据也是null值。在python里面就是None了。怪不得我在Django里面经常看到这些个None了!