1. 创表 SQL
/**
CREATE TABLE -- 创表
IF NOT EXISTS -- 判断数据表是否存在,如果存在,不再执行创表 SQL
'T_Person' -- 表名
(
字段1 INTEGER(整数)/REAL(小数)/TEXT(字符串)/BLOB(二进制数据-通常不保存在数据库中)
NOT NULL 不允许为空,主键必须有内容
PRIMARY KEY 主键
AUTOINCREMENT 自动增长
, 区分各个字段,最后一个字段不需要 ‘,’
字段2 类型
...
)
使用:
1.来源,可以复制粘贴
2.建议使用单引号,可以避免在程序中转译
3.IF NOT EXISTS 需要单独增加,为了保证 SQL 语句可以不断的被重复执行!
4.每个 SQL 语句的末尾,建议添加一个';' 表示一个完整的 SQL 结束
*/
CREATE TABLE IF NOT EXISTS 'T_Person' (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"age" INTEGER,
"height" NUMBER
);
2. 插入 SQL
/**
INSERT INTO ‘表名’
(字段1, 字段2, ...)
VALUES
(值1, 值2, ...)
注意:
1.字段和值的顺序必须保持一致
提示:
SQLite 本质上不区分数据类型,怎么存都行,定义表结构的时候,指定的类型只是摆设
建议按类型存储
*/
INSERT INTO T_Person
(name,age,height)
VALUES
('小爱',22,1.55);
3. 删除 SQL
/**
DELETE FROM '表名'
WHERE 主键 = id
注意:
删除语句一定要写 WHERE! 否则会删除所有数据!
如果指定的条件不存在,SQL 会执行,但是影响行数为0
*/
DELETE FROM T_Person
WHERE id = 2000;
4. 更新 SQL
/**
UPDATE ‘表名’
SET
字段1 = ‘字符串值1’,
字段2 = 值2
...
WHERE(条件)
主键 = id;
提示:
一定要写条件,否则会修改所有的记录
如果指定的条件不存在,SQL 会执行,但是影响行数为0
*/
UPDATE T_Person SET name = '老王',age = 28, height = 1.76
WHERE id = 1000
5. 查询 SQL
-- 查询所有记录,但是:开发中不建议写 * 通配符,直接阅读代码无法知道查询返回的内容
-- 可以用在测试中,程序代码中,不推荐
SELECT * FROM T_Person;
-- 开发中建议使用的,便于阅读
SELECT id, name, height, age FROM T_Person;
-- 统计查询
SELECT COUNT(*) FROM T_Person;
-- 指定条件统计查询
SELECT COUNT(*) FROM T_Person WHERE height > 1.7;
-- 查询年龄最大的人
-- 应用场景: 查询经验最高的值,最近加入的人...
SELECT MAX(age) FROM T_Person;
-- 分页功能
-- LIMIT 从第几条记录开始(起始条数是: 0),返回的记录行数
SELECT id, name, height, age FROM T_Person
LIMIT 0, 2;
-- LIMIT 和条件指令 WHERE 组合使用,可以很方便的作出分页功能
SELECT id, name, height, age FROM T_Person
WHERE id >= 8
LIMIT 2;
-- 排序功能, 默认升序 ASC / 降序 DESC
-- 排序是按照指定的条件,由左至右依次排序
SELECT id, name, height, age FROM T_Person
ORDER BY name DESC, age ASC;
-- 模糊查询
-- % 可以匹配任何内容
-- %内容% 表示只要出现内容,都会被搜索出来
-- 逻辑判断 AND OR NOT
SELECT id, name, height, age FROM T_Person
WHERE (name LIKE '%王%' AND age > 18) OR name LIKE '张大大';