语法

大小写敏感性

SQLite不区分大小写,但有些特殊命令有大小写要求,如GLOB和glob的含义不同。

注释

  1. 方法一:
  2. -- 注释内容(换行符结束)
  3. 方法二:
  4. /* 注释内容(注释符不能嵌套) */

SQLite语句

所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的语句以分号**;**结束

  1. 如:
  2. select column1 from table1 where condition1

数据类型

SQLite存储类

每个存储在SQLite数据库中的值都具有存储类特性。

存储类 说明
NULL 值是一个NULL值
INTEGER 值是一个带符号的整数,根据值的大小,存储在1、2、3、4、6或8字节中
REAL 值是一个浮点值,存储为8字节的IEEE浮点数字
TEXT 值是一个文本字符串,使用数据库编码(如utf-8)存储
BLOB 值是一个blob数据,完全根据它的输入数据存储

SQLite亲和(Affinity)类型

SQLite支持列的亲和类型。任何列可以存储任何类型的数据,当数据插入时,该字段的数据将优先采用亲和类型作为该值的存储方式

亲和类型 说明
TEXT 数值型数据在被插入前,需要先转换成文本格式,然后再插入到目标字符串中
NUMERIC
1. 当文本数据被插入到NUMERIC字段时
1. 如果转换操作不会导致信息丢失以及完全可逆,那么SQLite会将该文本数据转换成INTEGER或REAL类型数据(如”30.0”==>30.0);
1. 如果转换失败,SQLite会将该文本数据以TEXT方式存储
2. 对于NULL或BLOB类型的数据,SQLite不会做任何转换,直接以NULL或BLOB的方式存储
INTEGER 规则等同于NUMERIC,区别是在执行CAST表达式时
REAL 规则等同于NUMERIC区别是不会将”30.0”这样的文本数据转换成INTEGER存储方式
NONE 不做任何的转换,直接以该数据所属的数据类型进行存储

Boolean(布尔)数据类型

SQLite没有单独的boolean存储类

  • 布尔值被存储为整数**0****false**)和**1****true**

    Date和Time数据类型

    SQLite没有一个单独的用于存储日期和时间的存储类

  • SQLite能把日期和时间存储为**TEXT****REAL****INTEGER**。 | 存储类 | 说明 | | —- | —- | | TEXT | 格式为”YYYY-MM-DD HH:MM:SS.SSS”的日期 | | REAL | 从公元前4714年11月24日格林尼治时间的正午开始算起的天数 | | INTEGER | 从1970-01-01 00:00:00 UTC算起的秒数 |