简介:
轻型,嵌入式,ACID关系型数据库
A原子型 / C一致性 / I隔离性 / D持久性
MySQL启动后会有一个独立的进程,应用与该进程对接;
SQLite是一个API库,数据库引擎库;SQLite运行在自己的应用程序进程中。
SQLite优点:
轻量高效;
绿色无需安装;
零配置;
动态数据类型
SQLite缺点:
并发性能;
数据类型:
NULL: 这个值为空值
VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
CHAR(n):长度固定为n的字串,n不能超过 254。
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改 变格式。
DATA :包含了 年份、月份、日期。
TIME: 包含了 小时、分钟、秒。
建表:
建表:CREATE TABLE IF NOT EXISTS table_name (col_name_1 datatype, col_name_2, datatype);
CREATE INDEX 语句用于在表中创建索引。您可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们只能被用来加速搜索/查询。
在表上创建一个简单的索引。允许使用重复的值:CREATE INDEX index_name ON table_name (column_name)
在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值:CREATE UNIQUE INDEX index_name ON table_name (column_name)
更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
SQLite数据库中索引的使用、索引的优缺点:https://blog.csdn.net/zbc415766331/article/details/55053224
Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用:https://www.cnblogs.com/peida/archive/2008/11/29/1343832.html
Sqlite中的rowid字段和integer primary key autoincrement的字段区别:https://blog.csdn.net/maxwell_nc/article/details/48766223?utm_source=blogxgwz6
sqllite 自增id和rowid的一个区别:https://blog.csdn.net/qq_16383977/article/details/79630042
深入理解SQLite3之sqlite3_exec及回调函数:https://blog.csdn.net/u012351051/article/details/90382391
插入:
插入语句,在表中创建一条记录:INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 );
更新:
UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;
UPDATE 表名 SET 字段名 = 字段值 WHERE 过滤字段名 = 过滤字段值;
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
查询:
支持升降序,分页
asc //升序
desc //降序
select * from tb_shop id order by id desc limit 0,1;
分页:
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
SELECT * FROM %s %s ORDER BY seq LIMIT %d OFFSET %d
select * from table limit 5; --返回前5行
select * from table limit 0,5; --同上,返回前5行
select * from table limit 5,10; --返回6-15行
//limit skip,count
删表:
drop table table_name
删除:
delete from table_name where xxxx and xxxx;
其他:
打开数据库
sqlite3 xxx.db
sqlite> 下的操作:
.table 查看数据库中存在哪些表;
.tables 数据库内的表格
.schema 查看建表语句
.databases 数据库的路径
..> 下的操作:
进入到这里是SQL数据语言模式了,需要输入完整的SQL语句,即结尾要加 ; (分号)。
SQLite 是不区分大小写的,但也有一些命令是大小写敏感的,比如 GLOB 和 glob 在 SQLite 的语句中有不同的含义。记得是用分号结束语句。
这里比较牛一点的感觉就是创建的数据库后缀名是任意的、不过注意一点就是:在命令框下执行创建数据库的时候。如果没有为数据库创建表格、则看不见数据库文件,所以必须创建表格。
所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的语句以分号(;)结束。
NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL;
参考链接:
SQLite常见命令:https://www.cnblogs.com/senior-engineer/p/7028972.html