ObjectSQLite
SQLite-Objekte sind integrierte ModuledbEin Mitglied der SQLite-Datenbank, das hauptsächlich für die Verbindung und den Betrieb der SQLite-Datenbank verantwortlich ist und für die Erstellung, Abfrage, Einfügung, Aktualisierung und andere Vorgänge der SQLite-Datenbank verwendet werden kann. Gleichzeitig bietet das SQLite-Objekt auch einige erweiterte Vorgänge wie das Sichern und Formatieren von SQL. SQLite-Verbindungsobjekte unterstützen auch Transaktionsvorgänge
In praktischen Anwendungen erstellen wir normalerweise Datentabellen vom Typ SQLite basierend auf Geschäftsanforderungen und führen dann Vorgänge wie das Hinzufügen, Löschen, Ändern und Abfragen von Daten aus, zum Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var db = require('db')
// open a SQLite database
var sqlite = db.openSQLite('test.db')
// use execute method to create a table
sqlite.execute('CREATE TABLE test (id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL)')
// use execute method to insert data
sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 1, 'Alice', 18)
sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 2, 'Bob', 20)
sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 3, 'Charlie', 22)
// use execute method to query data
var rs = sqlite.execute('SELECT * FROM test')
console.log(rs)
// use execute method to update data
sqlite.execute('UPDATE test SET name=?, age=? WHERE id=?', 'Marry', 19, 1)
// use execute method to delete data
sqlite.execute('DELETE FROM test WHERE id=?', 2)
SQLite verfügt außerdem über ein integriertes vec_index-Modul. Wir können einen Index für das Vektorfeld in der SQLite-Datenbank erstellen, basierend auf dem Vektorfeld suchen und den Vektorsatz erhalten, der dem Zielvektor am ähnlichsten ist. Unterstützt die Verwendung numerischer Arrays zur Darstellung von Vektoren, z. B. [1, 2, 3], und unterstützt Vektordimensionen. Darüber hinaus unterstützt vec_index Batch-Operationen innerhalb einer Transaktion.
Hier ist ein einfaches Beispiel:
1
2
3
4
5
6
7
8var db = require('db');
var path = require('path');
var conn = db.openSQLite(path.join(__dirname, 'vec_test.db'));
conn.execute('create virtual table vindex using vec_index(title(3), description(3))');
conn.execute(`insert into vindex(title, description, rowid) values("[1,2,3]", "[3,4,5]", 3)`);
Der Vektorabruf kann beispielsweise mit der Funktion vec_search durchgeführt werden:
1
2
3
4var key = [1, 2, 5.1234];
var limit = 1;
var res = conn.execute(`select rowid, distance from vindex where vec_search(title, "${JSON.stringify(key)}")`);
vec_search gibt eine Sammlung nächstgelegener Vektoren und ein Array von Entfernungen zurück, wobei die Entfernungen von klein nach groß geordnet sind. Wenn Sie mehrere nächstliegende Vektorsätze zurückgeben müssen, können Sie den Parameter :limit verwenden, zum Beispiel:
1
2
3
4var key = [1, 2, 5.1234];
var limit = 1;
var res = conn.execute(`select rowid, distance from vindex where vec_search(title, "${JSON.stringify(key)}:10")`);
Erbschaftsverhältnis
Mitgliedereigenschaften
fileName
String, aktueller Datenbankdateiname
1readonly String SQLite.fileName;
timeout
Ganzzahl, Datenbank-Timeout abfragen und festlegen, in Millisekunden
1Integer SQLite.timeout;
type
String, fragen Sie den aktuellen Verbindungsdatenbanktyp ab
1readonly String SQLite.type;
Mitgliedsfunktion
backup
Sichern Sie die aktuelle Datenbank in einer neuen Datei
1SQLite.backup(String fileName) async;
Aufrufparameter:
- fileName: Zeichenfolge, geben Sie den Dateinamen der Sicherungsdatenbank an
close
Aktuelle Datenbankverbindung schließen
1SQLite.close() async;
use
Wählen Sie die Standarddatenbank für die aktuelle Datenbankverbindung aus
1SQLite.use(String dbName) async;
Aufrufparameter:
- dbName: String, geben Sie den Datenbanknamen an
begin
Starten Sie eine Transaktion für die aktuelle Datenbankverbindung
1SQLite.begin(String point = "") async;
Aufrufparameter:
- point: String, gibt den Namen der Transaktion an, standardmäßig nicht angegeben
commit
Übernehmen Sie die Transaktion für die aktuelle Datenbankverbindung
1SQLite.commit(String point = "") async;
Aufrufparameter:
- point: String, gibt den Namen der Transaktion an, standardmäßig nicht angegeben
rollback
Rollback einer Transaktion auf der aktuellen Datenbankverbindung
1SQLite.rollback(String point = "") async;
Aufrufparameter:
- point: String, gibt den Namen der Transaktion an, standardmäßig nicht angegeben
trans
Geben Sie eine Transaktion ein, um eine Funktion auszuführen, und führen Sie basierend auf der Ausführung der Funktion einen Commit oder ein Rollback durch.
1Boolean SQLite.trans(Function func);
Aufrufparameter:
- func: Funktion, eine Funktion, die auf transaktionale Weise ausgeführt wird
Rückgabeergebnisse:
- Boolean, gibt zurück, ob die Transaktion festgeschrieben wurde, gibt „true“ für normales Festschreiben zurück, gibt „false“ für Rollback zurück und gibt einen Fehler aus, wenn die Transaktion fehlschlägt.
Es gibt drei Ergebnisse der Funktionsausführung:
- Die Funktion kehrt normal zurück, einschließlich Betriebsende und aktiver Rückgabe. Zu diesem Zeitpunkt wird die Transaktion automatisch festgeschrieben.
- Die Funktion gibt false zurück und die Transaktion wird zurückgesetzt
- Funktionsfehler, Transaktion wird automatisch zurückgesetzt
Geben Sie eine Transaktion ein, um eine Funktion auszuführen, und führen Sie basierend auf der Ausführung der Funktion einen Commit oder ein Rollback durch.
1
2Boolean SQLite.trans(String point,
Function func);
Aufrufparameter:
- point: String, gibt den Namen der Transaktion an
- func: Funktion, eine Funktion, die auf transaktionale Weise ausgeführt wird
Rückgabeergebnisse:
- Boolean, gibt zurück, ob die Transaktion festgeschrieben wurde, gibt „true“ für normales Festschreiben zurück, gibt „false“ für Rollback zurück und gibt einen Fehler aus, wenn die Transaktion fehlschlägt.
Es gibt drei Ergebnisse der Funktionsausführung:
- Die Funktion kehrt normal zurück, einschließlich Betriebsende und aktiver Rückgabe. Zu diesem Zeitpunkt wird die Transaktion automatisch festgeschrieben.
- Die Funktion gibt false zurück und die Transaktion wird zurückgesetzt
- Funktionsfehler, Transaktion wird automatisch zurückgesetzt
execute
Führen Sie einen SQL-Befehl aus und geben Sie das Ausführungsergebnis zurück
1NArray SQLite.execute(String sql) async;
Aufrufparameter:
- sql: Zeichenfolge, Zeichenfolge
Rückgabeergebnisse:
- NArray, gibt ein Array zurück, das Ergebnisdatensätze enthält. Wenn die Anforderung UPDATE oder INSERT ist, enthält das zurückgegebene Ergebnis auch die betroffene und insertId. mssql unterstützt insertId nicht.
Führen Sie einen SQL-Befehl aus und geben Sie das Ausführungsergebnis zurück. Die Zeichenfolge kann entsprechend den Parametern formatiert werden.
1
2NArray SQLite.execute(String sql,
...args) async;
Aufrufparameter:
- sql: String, Formatstring, optionale Parameter werden mit ? angegeben. Zum Beispiel: „SELECT FROM TEST WHERE [id]=?“
- args: ..., optionale Parameterliste
Rückgabeergebnisse:
- NArray, gibt ein Array zurück, das Ergebnisdatensätze enthält. Wenn die Anforderung UPDATE oder INSERT ist, enthält das zurückgegebene Ergebnis auch die betroffene und insertId. mssql unterstützt insertId nicht.
createTable
Datentabelle erstellen
1SQLite.createTable(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
dropTable
Datentabelle löschen
1SQLite.dropTable(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
createIndex
Erstellen Sie einen Datentabellenindex
1SQLite.createIndex(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
dropIndex
Datentabellenindex löschen
1SQLite.dropIndex(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
insert
Neuen Datensatz einfügen
1Number SQLite.insert(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
Rückgabeergebnisse:
- Number, gibt die ID zurück, die die Einfügung enthält, oder 0, wenn die Engine dies nicht unterstützt.
find
Fragen Sie Daten basierend auf angegebenen Bedingungen ab
1NArray SQLite.find(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
Rückgabeergebnisse:
- NArray, gibt Datensätze zurück, die Ergebnisse enthalten
count
Zählen Sie die Anzahl der Datensätze basierend auf angegebenen Bedingungen
1Integer SQLite.count(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Datensätze zurück, die das Ergebnis enthalten
update
Aktualisieren Sie Daten basierend auf angegebenen Bedingungen
1Integer SQLite.update(Object opts) async;
Aufrufparameter:
- opts: Objekt, Parameterliste
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Datensätze zurück, die Aktualisierungen enthalten
remove
Daten basierend auf angegebenen Bedingungen löschen
1Integer SQLite.remove(Object opts) async;
Aufrufparameter:
- opts: Objekt, optionale Parameterliste
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Datensätze zurück, die Aktualisierungen enthalten
format
Formatieren Sie einen SQL-Befehl und geben Sie das formatierte Ergebnis zurück
1
2String SQLite.format(String method,
Object opts);
Aufrufparameter:
- method: String, gibt die angeforderte Methode an
- opts: Objekt, optionale Parameterliste
Rückgabeergebnisse:
- String, gibt den formatierten SQL-Befehl zurück
Formatieren Sie einen SQL-Befehl und geben Sie das formatierte Ergebnis zurück
1
2String SQLite.format(String sql,
...args);
Aufrufparameter:
- sql: String, Formatstring, optionale Parameter werden mit ? angegeben. Zum Beispiel: „SELECT FROM TEST WHERE [id]=?“
- args: ..., optionale Parameterliste
Rückgabeergebnisse:
- String, gibt den formatierten SQL-Befehl zurück
toString
Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.
1String SQLite.toString();
Rückgabeergebnisse:
- String, gibt die Zeichenfolgendarstellung des Objekts zurück
toJSON
Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.
1Value SQLite.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält