Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2279737
  • 博文数量: 297
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2200
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-31 14:30
个人简介

自己慢慢积累。

文章分类

全部博文(297)

分类: Mysql/postgreSQL

2015-10-12 14:58:34

摘抄自 MYSQL 5.1 官方文档 

1、注释

MYSQL的注释是 # 和 /*  */,3.23版本后,也支持 -- 作为注释,但是 -- 后面必须跟一个空格或换行。

2、插入无效数据
在MySQL 5.0.2之前,MySQL对非法或不当值并不严厉,而且为了数据输入还会强制将它们变为合法值。在MySQL 5.0.2和更高版本中,保留了以前的默认行为,但你可以为不良值选择更传统的处理方法,从而使得服务器能够拒绝并放弃出现不良值的语句。
如果你未使用严格模式,下述情况是真实的。如果将“不正确”的值插入到列,如将NULL值插入非NULL列,或将过大的数值插入数值列,MySQL会将这些列设置为“最可能的值”,而不是生成错误信息。
· 如果试图将超范围的值保存到数值列,MySQL服务器将保存0(最小的可能值)取而代之,或最大的可能值。
· 对于字符串,MySQL或保存空字符串,或将字符串尽可能多的部分保存到列中。
· 如果打算将不是以数值开头的字符串保存到数值列,MySQL将保存0。
· 5.1之前,对于datetime 值为“2000-02-31”的,可能会直接保存为2000-02-31”,但是在5.5版本中,将会保存为”0000-00-00

更有趣的是:如果试图将NULL值保存到不接受NULL值的列,对于单行INSERT语句,将出现错误。对于多行INSERT语句或INSERT INTO ... SELECT语句,MySQL服务器会保存针对列数据类型的隐含默认值。一般情况下,对于数值类型,它是0,对于字符串类型,它是空字符串(''),对于日期和时间类型是“zero”。


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