Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29957048
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Mysql/postgreSQL

2010-06-04 21:20:53

Mysql中的nullempty string

时间:2010-06-04

这两个概念是不同的。现在我们就以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的话就取空值了!

 

查询条件:

    1select * from tt where a is null;    得这样

    2select * 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了!

 

阅读(1307) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~