SQLite 的 NULL 是用来表示一个缺失值的项。表中的一个 NULL 值是在字段中显示为空白的一个值。
带有 NULL 值的字段是一个不带有值的字段。NULL 值与零值或包含空格的字段是不同的,理解这点是非常重要的。
创建表时使用 NULL 的基本语法如下:
SQLite> CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
在这里,NOT NULL 表示列总是接受给定数据类型的显式值。这里有两个列我们没有使用 NOT NULL,这意味着这两个列能为 NULL。
带有 NULL 值的字段在记录创建的时候可以保留为空。
NULL 值在选择数据时会引起问题,因为当把一个未知的值与另一个值进行比较时,结果总是未知的,且不会包含在最后的结果中。假设有下面的表,COMPANY 的记录如下所示:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
让我们使用 UPDATE 语句来设置一些允许空值的值为 NULL,如下所示:
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
现在,COMPANY 表的记录如下所示:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 7 James 24
接下来,让我们看看 IS NOT NULL 运算符的用法,它用来列出所有 SALARY 不为 NULL 的记录:
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NOT NULL;
上面的 SQLite 语句将产生下面的结果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
下面是 IS NULL 运算符的用法,将列出所有 SALARY 为 NULL 的记录:
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NULL;
上面的 SQLite 语句将产生下面的结果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 6 Kim 22 7 James 24
在本章中,我们将学习如何创建表。 在创建表之前,首先确定其名称,字段名称和字段定义。 以下是表创建的一般语法: CREATE TABL...
Redis DEL 命令Redis key(键) Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。语法 redis DEL 命令基本语法如下:re...
Redis Sismember 命令Redis 集合(Set)Redis Sismember 命令判断成员元素是否是集合的成员。语法 redis Sismember 命令基本语法如...
Redis Zcount 命令 Redis 有序集合(sorted set) Redis Zcount 命令用于计算有序集合中指定分数区间的成员数量。语法 redis Zcoun...
Redis Zrangebylex 命令 Redis 有序集合(sorted set) Redis Zrangebylex 通过字典区间返回有序集合的成员。语法 redis Zrange 命...
Redis Zscore 命令 Redis 有序集合(sorted set) Redis Zscore 命令返回有序集中,成员的分数值。如果成员元素不是有序集 key 的...
Redis Exec 命令 Redis 事务 Redis Exec 命令用于执行所有事务块内的命令。语法 redis Exec 命令基本语法如下:redis 127.0.0.1:...
Redis Role 命令 Redis 服务器 Redis Role 命令查看主从实例所属的角色,角色有master, slave, sentinel。语法 redis Role 命令...
Redis Info 命令 Redis 服务器 Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。通过...
Redis Discard 命令 Redis 事务 Redis Discard 命令用于取消事务,放弃执行事务块内的所有命令。语法 redis Discard 命令基本语...