Questions tagged «sqlite»

一种流行的开源可嵌入(即非客户端服务器)RDBMS,它实现为C库。

7
如何正确格式化sqlite shell输出?
如果我mysql shell输入SELECT * FROM users会得到- +--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+ | USERID | NAME | EMAILID | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS | +--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+ | 137 | X | b@cc.com | # | ADMIN | 166 | 110 | | 138 | Kshitiz | ksharma@aaa.com | asdf | ADMIN | 167 | …
77 sqlite 

3
是否可以在SQLite中存储和查询JSON?
我需要将JSON对象存储在SQLite数据库中,然后对它进行复杂的查询。 我做了一个这样的表: +--------------------------------------+ |document | property | string | number| +--------------------------------------+ |foo | "title" | "test" | | +--------------------------------------+ |foo | "id" | | 42 | +--------------------------------------+ |bar | "id" | | 43 | +--------------------------------------+ 对于两个对象 foo {"title": "test", "id": 42} bar {id: 43} 但是我无法执行“ AND”查询,例如: SELECT DISTINCT id FROM …
35 sqlite  json 


3
为了获得绝对性能,SUM是更快还是COUNT?
这涉及对符合特定条件(例如)的记录数进行计数invoice amount > $100。 我倾向于 COUNT(CASE WHEN invoice_amount > 100 THEN 1 END) 但是,这同样有效 SUM(CASE WHEN invoice_amount > 100 THEN 1 ELSE 0 END) 我本来认为COUNT更可取,原因有两个: 传达意图,这是为了 COUNT COUNT 可能涉及i += 1某个地方的简单操作,而SUM不能依靠其表达式作为简单的整数值。 是否有人对特定RDBMS的区别有特定的事实?

1
SQLite的局限性
从单一用户的,嵌入式的,面向原型的数据库引擎中获取sqlite数据库有多远?
22 sqlite 


1
为什么在我索引列时此sqlite查询要慢得多?
我有一个带两个表的sqlite数据库,每个表有50,000行,其中包含(假)人的名字。我构建了一个简单的查询,以找出两个表共有的名称(给定名称,中间名缩写,姓氏): select count(*) from fakenames_uk inner join fakenames_usa on fakenames_uk.givenname=fakenames_usa.givenname and fakenames_uk.surname=fakenames_usa.surname and fakenames_uk.middleinitial=fakenames_usa.middleinitial; 当除了主键之外没有索引(与该查询无关)时,它将快速运行: [james@marlon Downloads] $ time sqlite3 generic_data_no_indexes.sqlite "select count(*) from fakenames_uk inner join fakenames_usa on fakenames_uk.givenname=fakenames_usa.givenname and fakenames_uk.surname=fakenames_usa.surname and fakenames_uk.middleinitial=fakenames_usa.middleinitial;" 131 real 0m0.115s user 0m0.111s sys 0m0.004s 但是,如果我将索引添加到每个表的三列中(总共六个索引): CREATE INDEX `idx_uk_givenname` ON `fakenames_uk` (`givenname` ) //etc. …

5
从SQLite迁移到PostgreSQL的工具
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我需要不断地从SQLite迁移到PostgreSQL。连续地说,我的意思是我每天都会将SQLite数据库重新导入到PostgreSQL中。如果可以根据需要在SQLite中更改表而不必手动对PostgreSQL数据库进行任何更改,那将是很好的。我将从Python运行迁移,但是它可以是任何外部工具,可以从命令行进行控制。该工具需要可用于Linux,如果它也可以在Windows上运行,那就太好了。

5
如何检查我可以在其上运行查询的数据库服务器上安装了什么数据库引擎?
我想检查可以访问的Datasase服务器上正在运行哪种类型的sql。我只能访问Web界面和表列表。 通过该接口,我可以对列表中存在的表运行查询。 我如何获得有关服务器和服务器运行版本的更多信息。我不知道服务器正在运行的IP或PORT。 我想知道服务器是MySQL,Mircosoft SQL Server,Oracle SQL,Postgre SQL还是其他sql服务器。 我正在谈论的网站就是这个网站: w3schools.com SQL编辑器。 编辑2:尽管某些命令选择sqlite_version()对我有用,但它不起作用。这是响应的屏幕截图。 编辑3:在Chromium浏览器上,命令运行正常。但是,在Firefox浏览器上,该命令无效。 我还提到我正在运行Linux。 您认为可能是在Firefox和Chrome上获得不同结果的原因是什么?

3
SQLITE:标签和产品问题
我正在寻找一种创建查询以执行以下操作的方法: 让我们考虑3个表: 产品:产品清单 标签:标签列表 tag_ties:用于将标签与产品关联的表 让我们为每个表考虑以下结构: 产品: id(int,自动递增) 名称(varchar,产品名称) 标签: id(int自动递增) 标签(varchar,标签的标签) 标签: id(int,自动递增) tag_id(整数,引用标记ID) ref_id(int,引用产品ID) 我想要的是: 获取所有带有标签ID 10、11和12的产品。 该查询不起作用,因为它返回具有至少一个标签的产品: select p.name as name, p.id as id from products p inner join tag_ties ties on p.id=ties.ref_id where ties.ref_id=p.id and ties.tag_id in (10,11,12) group by p.id order by p.name asc
10 query  sqlite  subquery 

1
如何防止SQLite数据库锁定?
从SQLite FAQ中,我知道: 多个进程可以同时打开同一个数据库。多个进程可以SELECT同时进行。但是,在任何时候,只有一个进程可以对数据库进行更改。 所以,据我了解,我可以:1)从多个线程读取DB(SELECT)2)从多个线程读取DB( SELECT)和write从单个线程(CREATE,INSERT,DELETE) 但是,我读到有关预写日志记录的问题,它提供了更多的并发性,因为读者不会阻止作者,而作家也不会阻止读者。读写可以同时进行。 最后,当我找到它时,我已经完全糊涂了: 这是导致SQLITE_LOCKED错误的其他原因: 试图CREATE或DROP表或索引而SELECT声明仍悬而未决。 当a SELECT在同一表上处于活动状态时,尝试写入该表。 SELECT如果未将sqlite设置为在多线程应用程序中尝试在同一表上同时执行两个操作。 对数据库文件的fcntl(3,F_SETLK调用失败。例如,这可能是由NFS锁定问题引起的。针对此问题的一种解决方案是将DB移开,然后将其复制回来,使其具有新的Inode值 那么,我想为自己澄清一下,有必要避免锁吗?我可以同时从两个不同的线程读写吗?谢谢。
10 locking  sqlite 

1
使用多个数据库?
在Linux上使用sqlite3,如何使用多个数据库? 我想在数据库1中执行以下操作? sqlite3 database1.db insert into database1.mytable values (select * from database2.mytable) 如何SELECT为上面的database2 编写查询?
9 sqlite 

4
选择所有具有最小值的行
在Sqlite 3中,我试图弄清楚如何根据最小值选择行。我认为我受限制的原因是对相关术语的了解不足,无法有效地搜索Google。 该表如下所示: num text num2 ---------- ---------- ---------- 0 a 1 0 a 2 1 a 3 1 b 4 我想获得的行num2是1, 2和4。我想基于num的最小值为文本列的每个唯一值进行选择。 因此,对于text = 'a'中,最小值num是0,所以我想行1和2 text = 'b',最小值num是1,所以我想排4。 使用group by的各种组合,我可以获取row 1和2或rows 1and 4。我感觉好像缺少一个可以满足我想要的SQL组件,但是我一直无法弄清楚它可能是什么。 进行此类查询的正确方法是什么? 可能的解决方案 我找到了一种方法。我的声誉不足以回答我自己的问题,因此我在这里进行更新。我不确定这是否总是正确的或者效率是什么样的。欢迎任何意见。 我使用了复合选择语句,其中一个查询为文本的每个唯一值找到num的最小值: sqlite> select num, text from t group by text having num = …
9 sqlite 

1
估计索引对SQLite数据库大小的影响
我正在尝试为包含多个索引列的SQLite DB估计数据库大小(在磁盘上)。这些列的类型为(SQLite)Integer和String。用这些列估算每行的大小很简单,但是由于索引,我不确定如何考虑额外的每行填充。最好的方法是什么?
9 index  sqlite  size 

1
SQLite3不使用带有json_extract表达式的覆盖索引
我正在尝试SQLite3使用json_extract表达式在(3.18)中创建索引。我的目标是执行只需要索引即可产生结果的查询。这样做的原因是json_extract操作昂贵,在较大的数据集和/或值上进行操作时会降低性能。我得出结论,我需要一个覆盖指数来满足我的需求。 步骤1-使用标准表结构测试理论 CREATE TABLE Player ( Id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, FirstName TEXT NOT NULL, MiddleName TEXT, LastName TEXT NOT NULL ); CREATE INDEX Player_FirstName ON Player ( FirstName ASC, LastName ASC ); EXPLAIN QUERY PLAN SELECT FirstName, LastName FROM Player WHERE LENGTH(LastName) > 10 ORDER BY FirstName …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.