Mysql字段属性应该尽量设置为not null
2024-08-26 17:55:40
除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL。这看起来好像有点争议,请往下看。
所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS NULL关键字。
数据库的字段ID设为NOT NULL, 仅仅说明该字段不能为NULL, 也就是说只有在
INSERT INTO table(ID) VALUES(NULL);
这种情况下数据库会报错,而
INSERT INTO table(ID) VALUES( ‘ ‘);
这不能说明是NULL, 数据库系统会根据ID设的缺省值填充,或者如果是自增字段就自动加一等缺省操作。
尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,而且对表索引时不会存储NULL值的,所以如果索引的字段可以为NULL,索引的效率会下降很多。因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。
最新文章
- 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】
- Wcf:可配置的服务调用方式
- 延时程序执行Qt
- bootstrap-fileinput简单完整列子
- oracle case when 语句
- Selenium2学习-013-WebUI自动化实战实例-011-WebElement.getText()值为空问题探索及解决
- Java基础之访问文件与目录——创建目录(CreatingDirectories)
- random_names随机名字生成
- java去掉jsp标签内容的方法
- function复习
- 本地环境下 WordPress 环境搭建与安装
- Xcode崩溃问题调试 signal SIGABRT&;EXC_BAD_ACCESS
- java开发环境配置——IDEA SVN的使用
- Linux安装中文字体_宋体
- 廖雪峰Java8JUnit单元测试-2使用JUnit-1使用Before和After
- chrome:禁用缓存
- Codeforces 718C solution
- 黄聪:在.NET中使用GeckoFX 29
- modelsim读写TXT文件
- python第七课——循环结构 while