加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite3 小记 

发布时间:2020-12-12 19:41:51 所属栏目:百科 来源:网络整理
导读:数据导入: catdata.txthello,worldhello,worldsqlite3data.dbcreatetablelog(keytext,valuetext).separator','.importdata.txtlog.exit 数据导出: .dumplog_tb SQL语句一起输出: sqlite3data.db.databases#查看数据库.tables#查看表列表 .schema# 查看


数据导入:

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值的列上。
索引不应该使用在频繁操作的列上。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读