SQLite 教程
- 第1节:SQLite 简介
- 第2节:SQLite 安装
- 第3节:SQLite 命令
- 第4节:SQLite 语法
- 第5节:SQLite 数据类型
- 第6节:SQLite 创建数据库
- 第7节:SQLite 附加数据库
- 第8节:SQLite 分离数据库
- 第9节:SQLite 创建表
- 第10节:SQLite 删除表
- 第11节:SQLite Insert 语句
- 第12节:SQLite Select 语句
- 第13节:SQLite 运算符
- 第14节:SQLite 表达式
- 第15节:SQLite Where 子句
- 第16节:SQLite AND/OR 运算符
- 第17节:SQLite Update 语句
- 第18节:SQLite Delete 语句
- 第19节:SQLite Like 子句
- 第20节:SQLite Glob 子句
- 第21节:SQLite Limit 子句
- 第22节:SQLite Order By
- 第23节:SQLite Group By
- 第24节:SQLite Having 子句
- 第25节:SQLite Distinct 关键字
- 第26节:SQLite PRAGMA
- 第27节:SQLite 约束
- 第28节:SQLite Join
- 第29节:SQLite Union 子句
- 第30节:SQLite NULL 值
- 第31节:SQLite 别名
- 第32节:SQLite 触发器
- 第33节:SQLite 索引
- 第34节:SQLite Indexed By
- 第35节:SQLite Alter 命令
- 第36节:SQLite Truncate Table
- 第37节:SQLite 视图
- 第38节:SQLite 事务
- 第39节:SQLite 子查询
- 第40节:SQLite Autoincrement(自动递增)
- 第41节:SQLite SQL注入
- 第42节:SQLite Explain(注释)
- 第43节:SQLite Vacuum
- 第44节:SQLite 日期 & 时间
- 第45节:SQLite 常用函数
- 第46节:SQLite – C/C++
- 第47节:SQLite – Java
- 第48节:SQLite – PHP
- 第49节:SQLite – Perl
- 第50节:SQLite – Python
SQLite NULL 值
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