一、. 当update某个内容时,会返回更新的条目数;
二、.当字段存储为Date,DateTime等时间类型时,若存入内容不是一个标准的时间格式(不包括null),会自动转化为存入类似“0000-00-00”的格式,此时取出该字段时,默认会抛出异常。
解决方案:1.插入数据时做校验,保证不插入非法格式;
2.在配置数据库时,给jdbc url加上 zeroDateTimeBehavior参数:
datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
说明
zeroDateTimeBehavior=round是为了指定MySql中的DateTime字段默认值查询时的处理方式;默认是抛出异常,
对于值为0000-00-00 00:00:00(默认值)的纪录,如下两种配置,会返回不同的结果:
zeroDateTimeBehavior=round 0001-01-01 00:00:00.0
zeroDateTimeBehavior=convertToNull null
三、关于主键的理解
1.主键 是NOT NULL和UNIQUE约束最好的结合
2.主键没有着明确的概念定义,其是索引的一种,并且是唯一性索引的一种,且必须定义为“PRIMARY KEY”,主键不能重复,一个表只能有一个主键
3.几个字段可以组合做主键
四、关于MySQL的大小写问题
1.MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。
2.解决办法
A.表名区分大小写
在my.conf加入:
ower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
B.插入查询时区分大小写
字段值需要设置BINARY属性,即可区分大小写。
设置的方法有多种:
创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
mysql table editor中直接勾选BINARY项。
五、链接:使用mysql语句
http://www.cnblogs.com/yunf/archive/2011/04/12/2013448.html