`
fandayrockworld
  • 浏览: 313024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基础知识一大堆之:mysql

 
阅读更多

最近遇到一些基础知识,发现快忘的差不多了,还得现写实验才能拿准。三年,就记不住了,还是整理一下吧。


先整理数据库之mysql方面的(mysql 5.1.47)。


1、关于column type

     设置列的类别时,常常要指定长度,但是要注意,这个“长度”不一定跟“存储长度”有关。


     其中,varchar、char等字符类型(找不出合适的叫法,就叫字符类型吧)跟“存储长度”有关,比如char(1)和char(200)的“存储长度”肯定是不一样的;

     但是,int、bigint、smallint等数值类型就跟“存储长度”无关了,因为存储他们的字节数是一定的(三种各自都有各自的标准,不列了),那么,int(1)和int(50)的“存储长度”是一样的。问:既然这样,那问什么要指定呢?答:只是代表显示宽度。


2、mysql 设置 默认当前时间

     有很多这样的需求,就是,当我向某表中插入一条数据时,不给createtime这个字段赋值,插入时,自动赋上当前时间的值。怎么做?

     5.1.47这个版本目前只有一种形式:把列设置为 timestamp,并default current_timestamp,比如:

create table test
(
id  int not null auto increment primary key,
createtime timestamp not null default current_timestamp
);

 
     这样就可以了。

     但是,当你在一个表中设置两个timestamp列、并想把他们都设成“默认当前时间”时,你会发现有问题了,mysql会提示你:一个表中只能设置一个列为default current_timestamp。


      没办法了英雄,只能设置一个了。。。


3、Java读取NULL的数据

 

     String:

表中有一列为:varchar,数据为:NULL时,那么:

 

string value = rs.getString("columnname"); // value == null
 

     int、long等:

表中有一列为:int,数据为NULL时,那么:

 

int value = rs.getInt("columnname");// value == 0,java自动设置

     而:

 

Object value = rs.getObject("columnname"); // value == null
 

 

待续。。。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics