create table files(name text, content text);
insert into files(name, content)
select substr(name, 3), fileio_read(name)
from fileio_ls('.')
where name like '%.txt';
select * from files;
┌─────────────┬───────────────────┐
│ name │ content │
├─────────────┼───────────────────┤
│ awesome.txt │ sqlite is awesome │
│ hello.txt │ hello world │
└─────────────┴───────────────────┘
4条答案
按热度按时间kuhbmx9i1#
假设您有一个CSV格式的文件text.txt:
尝试以下命令将test.txt中的数据导入到表中
在导入数据之前,使用**.separator**命令更改文本文件中使用的分隔符。
x7yiwoj42#
Termsql是一种可以将文本从文件或程序输出(stdin)即时转换到sqlite数据库中的工具。
这将创建一个包含nameOfText和contents列的表。对于input.txt中的每一行,都会在myDB.db中插入一行。
您没有告诉我们分隔符nameOfText和上下文是由分隔的。默认情况下termsql假设空格是分隔符。但是如果它是',',那么您将执行如下操作:
您可以在这里获得termsql:https://github.com/tobimensch/termsql
Termsql还有其他用例。您可以在一个命令中对新数据库执行所有SQL语句。以下示例将创建您的数据库,并在命令行上为contents列包含字符串'test'的所有行返回nameOfText列。
zzoitvuj3#
函数
readfile
读取文件的内容并将该内容作为BLOB返回。使用命令行shell时,此函数可用。例如:此函数和
writefile
的文档可在sqlite.org/cli.html上获得。798qvoo84#
虽然
readfile
函数可以完成这项工作,但它只能在SQLite命令行界面(sqlite.exe)中工作。如果您不使用CLI,您仍然可以使用
fileio_read(path)
函数在sqlean-fileio扩展的帮助下将文件读入表中。您甚至可以使用
fileio_ls(path)
函数通过单个SQL查询加载一堆文件。例如: