1、SQLite是什么
基于文件的轻型数据库 无服务器 零配置 支持事务 开源
2、SQLite 怎么用
2.1 安装
SQLite官网上下载对应的DLL 与工具
配置环境变量
安装完成以后 查看版本
2.2 创建数据库
sqlite的创建数据库和使用数据库都是一个命令,数据库存在则根据名字加载数据库,如果不存在则创建这个数据库,
然后会看到sqlite> 表示正在使用这个数据库
2.3 创建,删除数据表
创建:create table user
(
id int primary key not null, --id 主键 非空
name varchar(20) not null,
age int
);
删除:drop table table_name
2.4 sqlite 数据类型
每个存储在 SQLite 数据库中的值都具有以下存储类之一:
存储类 |
描述 |
NULL |
值是一个 NULL 值。 |
INTEGER |
值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
REAL |
值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT |
值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
BLOB |
值是一个 blob 数据,完全根据它的输入存储。 |
SQLite Affinity 及类型名称
下表列出了当创建 SQLite3 表时可使用的各种数据类型名称,同时也显示了相应的应用 Affinity:
数据类型 |
Affinity |
INT |
INTEGER |
CHARACTER(20) |
TEXT |
BLOB |
NONE |
REAL |
REAL |
NUMERIC |
NUMERIC |
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 算起的秒数。 |
表中插入数据
格式1:INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);
格式2:INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
导入其他表中的数据
INSERT INTO first_table_name [(column1, column2, ... columnN)]
SELECT column1, column2, ...columnN
FROM second_table_name [WHERE condition];
删除数据 delete
DELETE FROM table_name WHERE [condition];
查找数据 select
SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。SQLite 的 SELECT 语句的基本语法如下:
SELECT column1, column2, columnN FROM table_name;
更新数据 update
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
模糊查询 like
%:百分号 代表一个或者多个任意字符或者数据
_:下划线 代表单一的数字或者字符 并且2者可以组合使用
WHERE SALARY LIKE '200%' |
查找以 200 开头的任意值 |
WHERE SALARY LIKE '%200%' |
查找任意位置包含 200 的任意值 |
WHERE SALARY LIKE '_00%' |
查找第二位和第三位为 00 的任意值 |
WHERE SALARY LIKE '2_%_%' |
查找以 2 开头,且长度至少为 3 个字符的任意值 |
WHERE SALARY LIKE '%2' |
查找以 2 结尾的任意值 |
WHERE SALARY LIKE '_2%3' |
查找第二位为 2,且以 3 结尾的任意值 |
WHERE SALARY LIKE '2___3' |
查找长度为 5 位数,且以 2 开头以 3 结尾的任意值 |
glob:SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值,与 LIKE 运算符不同的是,GLOB 是大小写敏感的
*:星号代表零个、一个或多个数字或字符
?:问号代表一个单一的数字或字符。这些符号可以被组合使用。
语句 |
描述 |
WHERE SALARY GLOB '200*' |
查找以 200 开头的任意值 |
WHERE SALARY GLOB '*200*' |
查找任意位置包含 200 的任意值 |
WHERE SALARY GLOB '?00*' |
查找第二位和第三位为 00 的任意值 |
WHERE SALARY GLOB '2??' |
查找以 2 开头,且长度至少为 3 个字符的任意值 |
WHERE SALARY GLOB '*2' |
查找以 2 结尾的任意值 |
WHERE SALARY GLOB '?2*3' |
查找第二位为 2,且以 3 结尾的任意值 |
WHERE SALARY GLOB '2???3' |
查找长度为 5 位数,且以 2 开头以 3 结尾的任意值 |
SQLite Limit 子句 :限制返回的数据量
格式1:返回指定数量 的结果集
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
格式2:从M行开始提取N行的值作为结果集返回
SELECT column1, column2, columnN
FROM table_name
LIMIT N OFFSET M
SQLite Order By 排序
语法格式:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
SQLite Group By 分组
语法格式:
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
SQLite Having 子句 HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。
语法
下面是 HAVING 子句在 SELECT 查询中的位置:
SELECT FROM WHERE GROUP BY HAVING ORDER BY
SELECT column1, column2 FROM table1, table2
WHERE [ conditions ] GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
SQLite Distinct 关键字 去重
语法
用于消除重复记录的 DISTINCT 关键字的基本语法如下:
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
SQLite 常用函数
SQLite 有许多内置函数用于处理字符串或数字数据。下面列出了一些有用的 SQLite 内置函数,且所有函数都是大小写不敏感,这意味着您可以使用这些函数的小写形式或大写形式或混合形式。欲了解更多详情,请查看 SQLite 的官方文档:
序号 |
函数 & 描述 |
1 |
SQLite COUNT 函数 |
2 |
SQLite MAX 函数 |
3 |
SQLite MIN 函数 |
4 |
SQLite AVG 函数 |
5 |
SQLite SUM 函数 |
6 |
SQLite RANDOM 函数 |
7 |
SQLite ABS 函数 |
8 |
SQLite UPPER 函数 |
9 |
SQLite LOWER 函数 |
10 |
SQLite LENGTH 函数 |