除了sqlite3之外,还有其他可以在iPhone上使用的数据库引擎吗?像textDb这样的东西适用于 PHP,单文件且无服务器。
有没有办法在 Sqlite 中将日期转换为字符串?例如,我试图获取 Sqlite 中的最短日期:
SELECT MIN(StartDate) AS MinDate FROM TableName
Run Code Online (Sandbox Code Playgroud)
我知道在 SQL Server 中我会使用下面的 SQL 来完成我想要做的事情:
SELECT CONVERT(VARCHAR(10), MIN(StartDate), 101) AS MinDate FROM TableName
Run Code Online (Sandbox Code Playgroud)
谢谢!
假设我像这样制作了一张桌子:
db.execute("""
CREATE TABLE IF NOT EXISTS todos
(id INTEGER PRIMARY KEY AUTOINCREMENT,
job TEXT,
duration TEXT,
category TEXT,
expected_completion TEXT)
""")
Run Code Online (Sandbox Code Playgroud)
我将如何获得“工作”列的所有值?我知道我可以遍历每个条目或使用 pandas 库,但我很想知道是否有通过 SQLite 执行此操作的标准方法。
所以我有以下查询:
select username from users where username like 'aDam%'
Run Code Online (Sandbox Code Playgroud)
但这里的问题是它不区分大小写。此查询还将获得名为“adam%”、“Adam%”等的用户。
问题:如何只获得“aDam%”(使查询区分大小写)?
注意:% 运算符在这里很重要。
我需要在内存缓冲区中加载/保存 SQLite 数据库。为此,我想将 memvfs 扩展嵌入到 sqlite3 代码中,并将其完全编译为 sqlite3.dll。
怎么办?
更新1:
我想使用 memvfs 作为临时内存缓冲区。我的程序将数据从网络加载到缓冲区,连接到这个内存缓冲区并将数据恢复到空的内存数据库中。我认为将 memvfs 包含到 sqlite 合并中会提高性能。
更新2:
如果您想使用 memvfs 扩展,请注意源代码中自述注释中的错误。使用“PRAGMA journal_mode= OFF ”代替“journal_mode=NONE”
更新3:
memvfs.c 中的另一个错误 - 对 URI 中的 maxsz 参数使用“max”而不是“maxsz”。sqlite 开发人员仔细设置了一个耙子 :(
python 新手,正在练习一个小项目。我正在尝试将用户提供的数据(名字、姓氏、性别、年龄)或生成的数据(用户 ID、数学分数、口头分数)插入到 .db 文件中。一切运行顺利,直到实际插入,它给我“sqlite3.OperationalError:不完整的输入”。我的代码中是否有错误,还是应该使用不同的策略来保存这些?我还需要稍后回忆它们以获得基本的登录页面,所以请记住这一点。
class diag:
quantitative_diagnostic = quantitative_diagnostic_percentage
verbal_diagnostic = verbal_diagnostic_percentage
class user:
def __init__(self):
user_ID
forename
surname
sex
age
quantitative_diagnostic_percentage
verbal_diagnostic_percentage
# user info storage
conn = sqlite3.connect('promethean_user.db')
c = conn.cursor()
c.execute("INSERT INTO promethean_user VALUES (:user_ID0, :forename,
:surname, :age, :sex, :quant_diag, :verbal_diag",
{'user_ID0': user.user_ID,
'forename': user.forename,
'surname': user.surname,
'age': user.age,
'sex': user.sex,
'quant_diag': diag.quantitative_diagnostic,
'verbal_diag': diag.verbal_diagnostic})
Run Code Online (Sandbox Code Playgroud)
预期将数据保存到 .db 文件,给出错误警告“qlite3.OperationalError:输入不完整”。错误警告位于“verbal_diag”:代码的 diag.verbal_diagnostic 部分
我在这里有一个工作查询:
SELECT tlt.name AS theme, COUNT(*) AS nsets
FROM tlt
INNER JOIN sets
ON tlt.id = sets.theme_id
GROUP BY tlt.name
ORDER BY nsets DESC;
Run Code Online (Sandbox Code Playgroud)
但是当我添加 WHERE 子句时,sqlite 在 WHERE 子句“附近”抛出一个语法错误
SELECT tlt.name AS theme, COUNT(*) AS nsets
FROM tlt
INNER JOIN sets
ON tlt.id = sets.theme_id
GROUP BY tlt.name
ORDER BY nsets DESC;
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么这个简单的 WHERE 子句会破坏这个查询。
我将 flutter_moor 用于 SQLite 数据库。我有一个问题,我需要一个带有两位小数的双倍货币金额列。
我发现有一个 RealColumn,但不知道如何正确实现它。
/// A column that stores floating point numeric values.///
abstract class RealColumn extends Column<double, RealType> {}
Run Code Online (Sandbox Code Playgroud)
这是表的样子:
class MyClass extends Table {
IntColumn get int => integer().autoIncrement()();
TextColumn get title => text().withLength(min: 1, max: 35)();
TextColumn get description => text().withLength(min: 0, max: 50)();
TextColumn get categorie => text().withLength(min: 1, max: 35)();
RealColumn get amount => double()();
DateTimeColumn get date => dateTime()();
}
Run Code Online (Sandbox Code Playgroud)
RealColumn 上的 double() 不起作用。我认为它与 int 或 text 相同。我没有在文档和网络中找到解决方案。
我的问题是,让金额列工作的正确方法是什么?
非常感谢您的帮助。
----编辑:---- …
我正在使用 JavaScript 中的 Node.js 在 SQLite 3.2.1 中设置一个包含客户数据的数据库。
错误SQLITE_ERROR: no such table: T_KUNDENDATEN_DE不断返回。从错误中我了解到可以联系数据库。SQL 查询有效,变量vorname和nachname在 URL 中正确捕获并传递给 db.all 构造函数。但它返回错误。在调试模式下,我无法弄清楚这里出了什么问题。
表 T_KUNDENDATEN_DE 不是新表,其中有数据。
有什么建议可以解决这个问题吗?
用于调用的 URL app.get('/cdata'。
http://localhost:8000/cdata?vorname=ralf&nachname=ruf
// Create express app
var express = require("express")
var app = express()
var DateObj= new Date()
var sqlite3 = require('sqlite3');
var db = new sqlite3.Database('KundendatenJS.db');
// Server port
var HTTP_PORT = 8000
// Start server
app.listen(HTTP_PORT, () => {
console.log("Server running on port %PORT%".replace("%PORT%",HTTP_PORT))
});
// …Run Code Online (Sandbox Code Playgroud) (这里是全新的学习电子,所以我确定这是一个基本问题,我错过了一些基本的东西......)
如何从 Electron 应用程序前端与本地数据库(我使用的是 Sqlite)交互?我有一个非常基本的数据库管理器类,index.js在我的 Electron 应用程序的文件中使用它没有问题。但是从前端(我使用的是 Svelte,但我可能可以翻译其他前端框架的解决方案),如何与数据库交互?这似乎很基本,但我试图找到一个基本的例子。
由于一切都是本地的,似乎没有必要设置一个完整的 API 来来回编组数据,但也许是这样?但如果是这样,如何告诉 Electron“后端”(如果这是正确的术语)做某事并将结果返回到前端?我看到了一些关于 IPC 的东西,但现在这没有多大意义,而且似乎有点矫枉过正。
这是我的简单数据库管理器类:
const sqlite3 = require("sqlite3").verbose();
class DbManager {
#db;
open() {
this.#db = new sqlite3.Database("testing.db", sqlite3.OPEN_READWRITE);
}
close() {
this.#db.close();
}
run(sql, param) {
this.#db.run(sql, param);
return this;
}
}
const manager = new DbManager();
module.exports = manager;
Run Code Online (Sandbox Code Playgroud)
我可以调用它并从 Electron 入口点做任何没有问题的事情index.js:
const { app, BrowserWindow, screen } = require("electron");
require("electron-reload")(__dirname);
const db = require("./src/repository/db");
const createWindow = () => {
...
}; …Run Code Online (Sandbox Code Playgroud) sqlite ×10
sql ×4
python ×2
electron ×1
flutter ×1
flutter-moor ×1
input ×1
iphone ×1
javascript ×1
node.js ×1
python-2.7 ×1
python-3.x ×1
rest ×1
svelte ×1
vfs ×1