您的位置
主页 > 网站技术 > 数据库 > » 正文

MySQL编程中的6个实用技巧(4)

来源: 锦尚中国 点击:

这里,两个通配符都被用上了。他们表示相同的意思??都是用来匹配任何的字符串,但是他们用在不同的上下文中。“*”用来匹配字段名,而“%”用来匹配字段值。另外一个不容易引起注意的地方是“%”通配符需要和LIKE关键字一起使用。还有一个通配符,就是下划线“_”,它代表的意思和上面不同,是用来匹配任何单个的字符的。

NOT NULL和空记录

如果用户在没有填任何东西的情况下按了submit按钮,会怎样呢?如果你确实需要一个值,那么可以用客户端脚本或者服务器端脚本来进行数据验证。但是,在数据库中却是允许一些字段被空出来什么也不填。对此类纪录,MySQL将要为之执行一些事情:插入值NULL,即缺省的操作。

如果你在字段定义中为之声明了NOT NULL(在建立或者修改这个字段的时候),MySQL将把这个字段空出来什么东西也不填。对于一个ENUM枚举类型的字段,如果你为之声明了NOT NULL,MySQL将把枚举集的第一个值插入到字段中。也就是说,MySQL把枚举集的第一个值作为这个枚举类型的缺省值。

一个值为NULL的纪录和一个空纪录是有一些区别的。%通配符可以匹配空纪录,但是却不能匹配NULL纪录。在某些时候,这种区别会造成一些意想不到的后果。就我的经验而言,任何字段都应该声明为NOT NULL。这样许多的SELECT查询语句就能够正常运转了。注意在搜索NULL时,必须用“IS”关键字,而LIKE是不会正常工作的。在最后要提到的是,如果你在加入或者修改一个新的字段之前,数据库中已经有了一些记录了,这时新加入的字段在原来的纪录中的值,可能是NULL,也可能为空。这也算是MySQL的一个Bug吧,所以在这种情况下,使用SELECT查询要特别的小心。




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明