一、SQL创表
/**
CREATE TABLE -- 创表
IF NOT EXISTS -- 判断数据表是否存在,如果存在,不再执行创表 SQL,此处是细节
'T_Person' -- 表名,数据库中的表通常用T_开头
(
字段1 INTEGER(整数) / REAL(小数) / TEXT(字符串) / BLOB(二进制数据-通常不会保存在数据库中)
NOT NULL 不允许为空,主键必须有内容
PRIMARY KEY 主键
AUTOINCREMENT 自动增长
, 区分各个字段,最后一个字段不需要 ','
字段2 类型,
...
)
使用细节:
1. 可以从 navicat 复制粘贴
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" REAL
);
二、SQL-插入
/**
INSERT INTO '表名'
(字段1, 字段2...)
VALUES
(值1, 值2);
注意:
字段和值的顺序必须保持一致
提示:
SQLite本质上不区分数据类型,怎么存都行
*/
INSERT INTO T_Person
(name, age, height)
VALUES
('张三', 18, 1.5);
三、SQL-修改
/**
UPDATE '表名'
SET
字段1 = '字符串值1',
字段2 = 值2,
...
WHERE(条件)
主键 = id;
提示:
* 一定要写条件,否则会修改所有的记录
* 如果指定的条件不存在,SQL 会执行,但是影响行数为 0
*/
UPDATE T_Person
SET
name = '老王',
age = 80,
height = 1.2
WHERE id = 10000;
四、SQL-删除
/**
DELETE FROM '表名'
WHERE 主键 = id;
注意:
* 一定要写条件,否则会删除所有数据
* 如果指定的条件不存在,SQL 会执行,但是影响行数为 0
*/
DELETE FROM T_Person
WHERE id = 3000;
五、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.5;
-- 查询年龄最大的人
-- 应用场景:查询经验最高的值,最近加入的人...
SELECT max(age) FROM T_Person;
-- 分页功能
-- LIMIT 和条件指令 WHERE 组合使用,可以很方便的作出分页功能
SELECT id, name, height, age FROM T_Person
WHERE id >= 2
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 '%a%' AND age > 20) OR name = 'li';
以上是SQL语句常用的用法,经常不使用会忘记,所以写下来。感恩!!