ObjectSQLite
SQLite-objecten zijn ingebouwde modulesdbEen lid van de SQLite-database, voornamelijk verantwoordelijk voor de verbinding en werking van de SQLite-database, en kan worden gebruikt voor het maken, opvragen, invoegen, bijwerken en andere bewerkingen van de SQLite-database. Tegelijkertijd biedt het SQLite-object ook enkele geavanceerde bewerkingen, zoals het maken van back-ups en het formatteren van SQL. SQLite-verbindingsobjecten ondersteunen ook transactiebewerkingen
In praktische toepassingen maken we meestal gegevenstabellen van het SQLite-type op basis van zakelijke behoeften, en voeren we vervolgens bewerkingen uit zoals het toevoegen, verwijderen, wijzigen en opvragen van gegevens, bijvoorbeeld:
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 heeft ook een ingebouwde vec_index-module.We kunnen een index maken op het vectorveld in de SQLite-database, zoeken op basis van het vectorveld en de vectorset verkrijgen die het meest lijkt op de doelvector. Ondersteunt het gebruik van numerieke arrays om vectoren weer te geven, zoals [1, 2, 3], en ondersteunt vectordimensies. Bovendien ondersteunt vec_index batchbewerkingen binnen een transactie.
Hier is een eenvoudig voorbeeld:
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)`);
Het ophalen van vectoren kan worden uitgevoerd met behulp van de vec_search-functie, bijvoorbeeld:
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 retourneert een verzameling dichtstbijzijnde vectoren en een reeks afstanden, waarbij afstanden zijn gerangschikt van klein naar groot. Als u meerdere dichtstbijzijnde vectorsets moet retourneren, kunt u de parameter :limit gebruiken, bijvoorbeeld:
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")`);
erfenis relatie
eigenschappen van leden
fileName
Tekenreeks, huidige databasebestandsnaam
1readonly String SQLite.fileName;
timeout
Geheel getal, query en ingestelde databasetime-out, in milliseconden
1Integer SQLite.timeout;
type
String, vraag het huidige verbindingsdatabasetype op
1readonly String SQLite.type;
lid functie
backup
Maak een back-up van de huidige database naar een nieuw bestand
1SQLite.backup(String fileName) async;
Oproepparameters:
- fileName: String, geef de bestandsnaam van de back-updatabase op
close
Sluit de huidige databaseverbinding
1SQLite.close() async;
use
Selecteer de standaarddatabase voor de huidige databaseverbinding
1SQLite.use(String dbName) async;
Oproepparameters:
- dbName: String, geef de databasenaam op
begin
Start een transactie op de huidige databaseverbinding
1SQLite.begin(String point = "") async;
Oproepparameters:
- point: String, specificeert de naam van de transactie, niet standaard opgegeven
commit
Voer de transactie uit op de huidige databaseverbinding
1SQLite.commit(String point = "") async;
Oproepparameters:
- point: String, specificeert de naam van de transactie, niet standaard opgegeven
rollback
Een transactie ongedaan maken op de huidige databaseverbinding
1SQLite.rollback(String point = "") async;
Oproepparameters:
- point: String, specificeert de naam van de transactie, niet standaard opgegeven
trans
Voer een transactie in om een functie uit te voeren, en voer een commit of rollback uit op basis van de uitvoering van de functie.
1Boolean SQLite.trans(Function func);
Oproepparameters:
- func: Functie, een functie die op transactionele wijze wordt uitgevoerd
Resultaten retourneren:
- Boolean, retourneert of de transactie is vastgelegd, retourneert true voor normale commit, retourneert false voor rollback en genereert een fout als de transactie fout gaat.
Er zijn drie resultaten van func-uitvoering:
- De functie keert normaal terug, inclusief einde van de werking en actieve terugkeer, waarna de transactie automatisch wordt vastgelegd.
- De functie retourneert false en de transactie wordt teruggedraaid
- Functiefout, transactie wordt automatisch teruggedraaid
Voer een transactie in om een functie uit te voeren, en voer een commit of rollback uit op basis van de uitvoering van de functie.
1
2Boolean SQLite.trans(String point,
Function func);
Oproepparameters:
- point: String, specificeert de naam van de transactie
- func: Functie, een functie die op transactionele wijze wordt uitgevoerd
Resultaten retourneren:
- Boolean, retourneert of de transactie is vastgelegd, retourneert true voor normale commit, retourneert false voor rollback en genereert een fout als de transactie fout gaat.
Er zijn drie resultaten van func-uitvoering:
- De functie keert normaal terug, inclusief einde van de werking en actieve terugkeer, waarna de transactie automatisch wordt vastgelegd.
- De functie retourneert false en de transactie wordt teruggedraaid
- Functiefout, transactie wordt automatisch teruggedraaid
execute
Voer een SQL-opdracht uit en retourneer het uitvoeringsresultaat
1NArray SQLite.execute(String sql) async;
Oproepparameters:
- sql: Snaar, snaar
Resultaten retourneren:
- NArray, retourneert een array met resultaatrecords. Als het verzoek UPDATE of INSERT is, bevat het geretourneerde resultaat ook beïnvloed en insertId. mssql ondersteunt insertId niet.
Voer een SQL-opdracht uit en retourneer het uitvoeringsresultaat. De tekenreeks kan worden opgemaakt volgens de parameters.
1
2NArray SQLite.execute(String sql,
...args) async;
Oproepparameters:
- sql: String, formaatstring, optionele parameters worden gespecificeerd met ?. Bijvoorbeeld: 'SELECTEER UIT TEST WAAR [id]=?'
- args: ..., optionele parameterlijst
Resultaten retourneren:
- NArray, retourneert een array met resultaatrecords. Als het verzoek UPDATE of INSERT is, bevat het geretourneerde resultaat ook beïnvloed en insertId. mssql ondersteunt insertId niet.
createTable
Gegevenstabel maken
1SQLite.createTable(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
dropTable
Gegevenstabel verwijderen
1SQLite.dropTable(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
createIndex
Gegevenstabelindex maken
1SQLite.createIndex(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
dropIndex
Gegevenstabelindex verwijderen
1SQLite.dropIndex(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
insert
Nieuw record invoegen
1Number SQLite.insert(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
Resultaten retourneren:
- Number, retourneert de id die de invoeging bevat, of 0 als de engine dit niet ondersteunt.
find
Gegevens opvragen op basis van gespecificeerde voorwaarden
1NArray SQLite.find(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
Resultaten retourneren:
- NArray, retourneert records met resultaten
count
Tel het aantal gegevensrecords op basis van gespecificeerde voorwaarden
1Integer SQLite.count(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
Resultaten retourneren:
- Integer, retourneert het aantal records dat het resultaat bevat
update
Update gegevens op basis van gespecificeerde voorwaarden
1Integer SQLite.update(Object opts) async;
Oproepparameters:
- opts: Object, parameterlijst
Resultaten retourneren:
- Integer, retourneert het aantal records met updates
remove
Gegevens verwijderen op basis van gespecificeerde voorwaarden
1Integer SQLite.remove(Object opts) async;
Oproepparameters:
- opts: Object, optionele parameterlijst
Resultaten retourneren:
- Integer, retourneert het aantal records met updates
format
Formatteer een SQL-opdracht en retourneer het opgemaakte resultaat
1
2String SQLite.format(String method,
Object opts);
Oproepparameters:
- method: String, specificeert de gevraagde methode
- opts: Object, optionele parameterlijst
Resultaten retourneren:
- String, retourneert de geformatteerde SQL-opdracht
Formatteer een SQL-opdracht en retourneer het opgemaakte resultaat
1
2String SQLite.format(String sql,
...args);
Oproepparameters:
- sql: String, formaatstring, optionele parameters worden gespecificeerd met ?. Bijvoorbeeld: 'SELECTEER UIT TEST WAAR [id]=?'
- args: ..., optionele parameterlijst
Resultaten retourneren:
- String, retourneert de geformatteerde SQL-opdracht
toString
Retourneert de tekenreeksweergave van het object. Over het algemeen wordt '[Native Object]' geretourneerd. Het object kan opnieuw worden geïmplementeerd op basis van zijn eigen kenmerken.
1String SQLite.toString();
Resultaten retourneren:
- String, retourneert de tekenreeksrepresentatie van het object
toJSON
Retourneert een weergave in JSON-indeling van het object, waarbij doorgaans een verzameling leesbare eigenschappen wordt geretourneerd die door het object zijn gedefinieerd.
1Value SQLite.toJSON(String key = "");
Oproepparameters:
- key: Tekenreeks, niet gebruikt
Resultaten retourneren:
- Value, retourneert een waarde die JSON-serialiseerbaar bevat