一、SQLite语法
1. 大小写敏感性
这是一个值得重点注意的点,SQLite是不区分大小写的,但是有些命令是大小写敏感的,例如: GLOB和glob在SQLite里有不同的含义。
2. 注释
SQLite注释和其他SQL语言注释是一样的,属于附加注释。添加注释可以增加SQL语句的可读性。
SQL注释以两个连续的"-"字符开始,后面的跟的内容都被注释了。可以写在任何地方。
或者你可以使用"/*"开始"*/"结束。注释代码块。
-- select * from LinkMen;
select * from LinkMen; -- 在语句后面注释
/*这是注释
这也是*/ select * from LinkMen;
3. SQLite语句
所以的语句可以以任何关键字开始,如SELECT、INSERT、UPDATE、DELETE等,所以语句以英文分号";"结尾。
-- 创建表
CREATE TABLE table_name(
column1 datatype,
.....
columnN datatype,
);
-- 创建索引
CREATE INDEX index_name ON table_name;
-- 创建触发器
CREATE TRIGGER trigger_name [BEFORE|AFTER] event_name
ON table_name
BEGIN
-- 触发器逻辑....
END;
-- 创建视图
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name, ...
WHERE [condition];
-- 提交 语句:
COMMIT;
-- 删除表
DROP TABLE database_name.table_name;
-- 删除索引
DROP INDEX database_name.index_name;
-- 删除视图
DROP VIEW view_name;
-- 插入数据
INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);
-- 查询数据
SELECT column1, column2....columnN
FROM table_name;
-- 修改数据
UPDATE table_name
SET column1 = value1, ..., columnN=valueN
WHERE [condition];
-- 删除数据
DELETE FROM table_name
WHERE [condition];
-- GROUP BY分组
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;
-- HAVING对group by加条件过滤
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);
-- IN
SELECT column1, column2....columnN
FROM table_name
WHERE column_name IN (val-1, val-2,...val-N);
-- LIKE
SELECT column1, column2....columnN
FROM table_name
WHERE column_name LIKE [ PATTERN ];
-- ORDER BY 排序
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION
ORDER BY column_name {ASC|DESC};
二、 SQLite 数据类型
数据类型是一个用来指定任何对象的数据类型的属性。每一列,每个变量和表达式都有相关的数据类型。
数据类型 | 描述 |
---|---|
NULL | 值是一个 NULL 值。 |
INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
BLOB | 值是一个 blob 数据,完全根据它的输入存储。 |
1. Boolean 数据类型
SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)。
2. 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 算起的秒数。 |