标签: sqlite

从 SQLite 迁移到 PostgreSQL 的工具

我需要不断地从 SQLite 迁移到 PostgreSQL。不断地,我的意思是我每天都会将 SQLite 数据库重新导入 PostgreSQL。如果我可以随意更改 SQLite 中的表,而不必手动对 PostgreSQL 数据库进行任何更改,那就太好了。我将从 Python 运行迁移,但它可以是任何可以从命令行控制的外部工具。该工具需要可用于 Linux,如果它也能在 Windows 上运行就好了。

postgresql sqlite tools migration

11
推荐指数
1
解决办法
1万
查看次数

选择具有最小值的所有行

在 Sqlite 3 中,我试图弄清楚如何根据最小值选择行。我认为我对相关术语的了解不足,无法有效地搜索谷歌。

该表看起来像:

num         text        num2      
----------  ----------  ----------
0           a           1         
0           a           2         
1           a           3         
1           b           4         
Run Code Online (Sandbox Code Playgroud)

我想获取num2is1, 2和的行4。我想根据文本列的每个唯一值的 num 的最小值进行选择。

所以,对于text = 'a',最小值num0,所以我想要第 1 行和第 2 行。对于text = 'b',最小值num1,所以我想要行4

使用 group by 的各种组合,我可以得到行12或行14。我觉得我缺少一个可以做我想做的事情的 SQL 组件,但我一直无法弄清楚它可能是什么。

执行此类查询的正确方法是什么?

可能的解决方案

我找到了一种方法来做到这一点。我的声誉不足以回答我自己的问题,所以我在这里进行更新。我不确定它是否总是正确的或效率如何。欢迎提出任何意见。

我使用了一个复合选择语句,其中一个查询为文本的每个唯一值找到 num 的最小值:

sqlite> select …
Run Code Online (Sandbox Code Playgroud)

sqlite

11
推荐指数
1
解决办法
10万
查看次数

如何检查我有权运行查询的数据库服务器上安装了什么数据库引擎?

我想检查我可以访问的 Datasase 服务器上正在运行什么类型的 sql。我只能访问 Web 界面和表格列表。

通过该界面,我可以对列表中的表运行查询。

如何获取有关服务器和服务器正在运行的版本的更多信息。我不知道服务器正在运行的 IP 或端口。

我想知道服务器是 MySQL、Mircosoft SQL Server、Oracle SQL、Postgre SQL 还是其他 sql server。

我正在谈论的网站是这个: w3schools.com SQL editor

编辑 2:虽然对于某些命令 select sqlite_version() 对我有用,但它不起作用。这是响应的屏幕截图。

在此处输入图片说明

编辑 3:在 Chromium 浏览器上,命令工作正常。但是在 Firefox 浏览器上,该命令不起作用。

我还提到我正在运行 Linux。

您认为在 Firefox 和 Chrome 上我得到不同结果的原因可能是什么?

mysql postgresql sqlite sql-server database-engine

11
推荐指数
4
解决办法
6290
查看次数

估计索引 SQLite 数据库大小的影响

我正在尝试为包含多个索引列的 SQLite DB 估计数据库大小(在磁盘上)。这些列是(SQLite)类型的整数和字符串。用这些列估计每行的大小很简单,但我不确定如何考虑由于索引而产生的额外的每行填充。最好的方法是什么?

sqlite index size

10
推荐指数
1
解决办法
4014
查看次数

使用多个数据库?

在 Linux 上使用 sqlite3,如何处理多个数据库?

我想在数据库 1 中执行以下操作?

sqlite3 database1.db
insert into database1.mytable values (select * from database2.mytable) 
Run Code Online (Sandbox Code Playgroud)

我如何编写SELECT上面的 database2 查询?

sqlite

10
推荐指数
1
解决办法
1万
查看次数

如何使用系列数据减少大型 SQLite 数据库的大小

我正在考虑将 SQLite 数据库用于处理大量数据系列的 C# 应用程序。数据目前位于多个 CSV 文件中,每个文件的大小最大为 20GB,格式如下:

2019.07.31 00:00:03.855,1.11568,1.11571,3,0

在迁移到 SQLite 时,我希望大大减小大小,但由于某种原因,我得到了一些不同的结果。

CSV 格式的示例字符串占用 44 个字节(43 个字符 + 新行)。据我了解的 SQLite 类型定义在 sqlite.org 中数据库中应该大致相同:23 字节日期时间文本 + 8*2 实数 + 1*2 整数 = 41 字节

dateTime 可以存储为 8 字节整数 (c# DateTime.Ticks),这应该将大小减少到每行约 26 个字节,几乎比 CSV 格式少两倍。

对于一个实验,我尝试导入 142,157 行数据。CSV 文件大小约为 6kk 字节,但生成的 DB 文件约为 5kk,几乎相同。压缩(在 DB Browser for SQLite 中可用)不会改变任何东西。

表架构是:

CREATE TABLE "Data" ( "dateTime" INTEGER, "value1" REAL, "value2" REAL, "value3" INTEGER, "value4" INTEGER )

示例行如下所示:

637001280038550000 1.11568 1.11571 3 …

sqlite

10
推荐指数
1
解决办法
2907
查看次数

我可以使用 SQLite 在不同的应用程序之间共享数据吗?

我可以将 SQLite 用作连接 2 个或更多应用程序的数据库吗?

即我可以使用它在不同的应用程序之间共享数据吗?

sqlite embedded

9
推荐指数
1
解决办法
8850
查看次数

存储在 SQLite 整数列中的文本字符串?

我是一个数据库新手,正在查看似乎将文本存储在整数列中的 SQLite 数据库。这是 sqlite3 命令行中的示例会话:

sqlite> .schema mytable
CREATE TABLE mytable (
    id              integer primary key,   /* 0 */
    mycol           integer not null,      /* 1 */
);

sqlite> SELECT mycol FROM mytable;
here is some text
here is more text
[...]
it's text all the way down
Run Code Online (Sandbox Code Playgroud)

我糊涂了。是什么赋予了?

sqlite integer unicode

9
推荐指数
1
解决办法
1万
查看次数

在 sqlite3 交互式 shell 中启用自动完成

我在一台可以使用制表符补全的机器上使用 sqlite3(即.read abc<tab>会自动补全到.read abcdefghij.db. 我想知道如何在我的个人机器上启用它。

编辑

两台机器都是ubuntu linux,shell是bash。我指的是 sqlite 交互式提示中的自动完成。

sqlite

8
推荐指数
1
解决办法
5696
查看次数

如何在两个字段上使用 INNER JOIN 更新 SQLITE 列

如何将此查询转换为 SQLite:

UPDATE Table_1 
INNER JOIN Table_2 ON (Table_1.Field1 = Table_2.Field1) 
AND(Table_1.Field2 = Table_2.Field2)
SET Table_1.Field3 = Table_2.Field3
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的。

UPDATE Table_1 
SET Field3 = (SELECT Field3
            FROM Table2
            WHERE (Field1 = Table_2.Field1)
            AND (Field2 = Table_2.Field2))
WHERE Field1 IN (SELECT Table_2.Field1
            FROM Table2
            WHERE (Field1 = Table_2.Field1)
            AND (Field2 = Table_2.Field2)) 
AND Field2 IN (SELECT Table_2.Field2
            FROM Table2
            WHERE (Field1 = Table_2.Field1)
            AND (Field2 = Table_2.Field2)) 
Run Code Online (Sandbox Code Playgroud)

查询有效,但我得到错误的结果。

sqlite java

8
推荐指数
1
解决办法
2万
查看次数