数据库空值
❶ 数据库中的空值与NULL的区别以及python中的NaN和None
在数据库世界中,"空值"的呈现形式有两种:空字符("")和NULL。它们在存储和处理时有显着区别。让我们通过实例来揭示这些差异。首先,创建表`test`,插入一些记录,包括一个空字符和NULL值的字段。执行`select count(*)`和`count(class)`,你会发现空字符会被计入计数,而NULL则不会。
当使用Python处理数据库数据时,又有新的关注点。Python有直接连接数据库和从文件导入两种方式。第一种情况下,从MySQL导出到CSV,Python读取时,NULL值在Python中表现为None,而在Pandas中是NaN。而数据库中的空字符在Python和Pandas中都被识别为空字符。
Python与数据库交互的等式可以这样理解:
- NULL(数据库)= None(Python列表)= NaN(Pandas,时间字段为NaT)
- 空字符(数据库)= 空字符(Python列表)= 空字符(Pandas)
值得注意的是,当数据从CSV导入时,NULL和空字符在数据库中对应为CSV中的空值。而在数据处理后,写回数据库时,同样需要关注这些空值的转换。
总结,理解数据库中的空值类型及其在Python中的映射至关重要,这将影响数据处理的准确性和一致性。在处理数据时,务必注意这些转换,确保数据的一致性。
❷ 数据库中空值的含义
数据库中空值的含义, 就是相当于 “不知道” 的含义。
例如有一个 员工表。
包含下面这些列:
员工代码 NOT NULL,
员工姓名 NOT NULL,
员工生日,
员工籍贯,
......
其中, 员工代码 与 员工姓名 是 非空的, 那么必须有数据。 不能说 “不知道”。
而 员工生日 与 员工籍贯 是 可以为空的, 那么 允许不写数据, 也就是 可以 “不知道”
例如数据:
员工代码 员工姓名 员工生日 员工籍贯
TESTSH01 张三 NULL 上海
TESTSH02 李四 1988-8-8 NULL