数据导入:
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