sqlite3 小记 

前端之家收集整理的这篇文章主要介绍了sqlite3 小记 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


数据导入:

catdata.txt
hello,world
hello,world

sqlite3data.db
createtablelog(keytext,valuetext)
.separator','
.importdata.txtlog
.exit

数据导出:

.dumplog_tb

SQL语句一起输出

sqlite3data.db
.databases#查看数据库
.tables#查看表列表 
.schema# 查看建表语句
.show#查看配置

.echoon#sql语句一起输出 

.readdata.sql #执行sql脚本

.outputdata.txt #输出到文本 
.outputstdout #标准输出

.dump?TABLE? #表备份 

.modecsv,column,html,insert#输出模式 


数据库查询: 

场景:数据库A和数据库B的表之间有参照,需要跨数据库查询操作...
方案:用sqlite解释器中的提供的ATTACH[DATABASE]
关键字完成数据库附加:
ATTACHDATABASE[Database
Path]AS[Alias];
-[DatabasePath]:
i.绝对路径;
ii.相对路径,即要附加的数据库与当前维持连接数据库的相对地址。
-[Alias]:
附加数据库的别名。
查询查询加上[数据库别名]即可:

SELECT*FROMDB_Alias.TABLE_NameWHERE...;
例子:现在维持连接的数据库称为A(可省略),其中表Ta中的字段id_b与位于路径"d:\B.db"的数据库(别名B)中Tb表字段id有参照,查询条件即"A.Ta.id_b
=B.Tb.id":
ATTACHDATABASE"d:\B.db"AS"B";
SELECT*FROMTa,B.TbWHERETa.id_b=B.Tb.id;

PS.如果维持连接的数据库A与要附加的数据库B(B.db)在同一路径下,附加语句可写为:
ATTACHDATABASE"B.db"AS"B";

分离数据库: 
DETACHDATABASE'B';
查询附加的数据库: 
.databases
数据库备份
.backup?DB?FILE
.backup'main'bak.db
数据库恢复
.restore?DB?FILE


触发器:

sqlite>CREATETRIGGERaudit_logAFTERINSERT
ONtb_data
BEGIN
INSERTINTOtb_log(EMP_ID,ENTRY_DATE)VALUES(new.ID,datetime('now'));
END;

CREATETRIGGERtrigger_name[BEFORE|AFTER]UPDATEOFcolumn_name
ONtable_name
BEGIN
--Triggerlogicgoeshere....
END;

查询触发器:
sqlite>SELECTnameFROMsqlite_master
WHEREtype='trigger';

删除: 
sqlite>DROPTRIGGERtrigger_name;


索引: 

CREATEINDEXindex_nameONtable_name;
唯一索引: 
CREATEINDEXindex_name
ontable_name(column_name);
组合:
CREATEINDEXindex_name
ontable_name(column1,column2);
查看: 
sqlite>.indicesCOMPANY
查看全部:
sqlite>SELECT*FROMsqlite_masterWHEREtype='index';

使用索引时,应重新考虑下列准则:索引不应该使用在较小的表上。
索引不应该使用在有频繁的大批量的更新或插入操作的表上。
索引不应该使用在含有大量的NULL值的列上。
索引不应该使用在频繁操作的列上。
原文链接:https://www.f2er.com/sqlite/199483.html

猜你在找的Sqlite相关文章