ОбъектSQLite
Объекты SQLite — это встроенные модули.dbЧлен базы данных SQLite, который в основном отвечает за подключение и работу базы данных SQLite и может использоваться для создания, запроса, вставки, обновления и других операций базы данных SQLite. В то же время объект SQLite также предоставляет некоторые расширенные операции, такие как резервное копирование и форматирование SQL. Объекты соединения SQLite также поддерживают операции транзакций.
В практических приложениях мы обычно создаем таблицы данных типа SQLite в зависимости от потребностей бизнеса, а затем выполняем такие операции, как добавление, удаление, изменение и запрос данных, например:
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 также имеет встроенный модуль vec_index.Мы можем создать индекс по векторному полю в базе данных SQLite, выполнить поиск по векторному полю и получить набор векторов, наиболее похожий на целевой вектор. Поддерживает использование массивов числовых типов для представления векторов, например [1, 2, 3], и поддерживает векторные размеры. Кроме того, vec_index поддерживает пакетные операции внутри транзакции.
Вот простой пример:
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)`);
Поиск вектора можно выполнить с помощью функции vec_search, например:
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 возвращает коллекцию ближайших векторов и массив расстояний, где расстояния упорядочены от меньшего к большему. Если вам нужно вернуть несколько ближайших наборов векторов, вы можете использовать параметр :limit, например:
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")`);
отношения наследства
свойства члена
fileName
Строка, текущее имя файла базы данных.
1readonly String SQLite.fileName;
timeout
Целое число, время ожидания запроса и установки базы данных в миллисекундах
1Integer SQLite.timeout;
type
Строка, запрос текущего типа базы данных соединений.
1readonly String SQLite.type;
функция-член
backup
Резервное копирование текущей базы данных в новый файл
1SQLite.backup(String fileName) async;
Параметры звонка:
- fileName: Строка, укажите имя файла резервной базы данных.
close
Закрыть текущее соединение с базой данных
1SQLite.close() async;
use
Выберите базу данных по умолчанию для текущего подключения к базе данных.
1SQLite.use(String dbName) async;
Параметры звонка:
- dbName: Строка, укажите имя базы данных
begin
Запустить транзакцию при текущем соединении с базой данных
1SQLite.begin(String point = "") async;
Параметры звонка:
- point: строка, указывает имя транзакции, не указано по умолчанию.
commit
Зафиксировать транзакцию при текущем соединении с базой данных
1SQLite.commit(String point = "") async;
Параметры звонка:
- point: строка, указывает имя транзакции, не указано по умолчанию.
rollback
Откат транзакции при текущем соединении с базой данных
1SQLite.rollback(String point = "") async;
Параметры звонка:
- point: строка, указывает имя транзакции, не указано по умолчанию.
trans
Введите транзакцию для выполнения функции и зафиксируйте или откатите ее в зависимости от выполнения функции.
1Boolean SQLite.trans(Function func);
Параметры звонка:
- func: Функция, функция, выполняемая транзакционным способом.
Результаты возврата:
- Boolean, возвращает информацию о том, зафиксирована ли транзакция, возвращает true для обычной фиксации, возвращает false для отката и выдает ошибку, если транзакция идет не так.
Есть три результата выполнения функции:
- Функция возвращает обычный результат, включая завершение операции и активный возврат, после чего транзакция будет автоматически зафиксирована.
- Функция возвращает false, и транзакция будет отменена.
- Ошибка операции функции, транзакция автоматически откатывается
Введите транзакцию для выполнения функции и зафиксируйте или откатите ее в зависимости от выполнения функции.
1
2Boolean SQLite.trans(String point,
Function func);
Параметры звонка:
- point: строка, указывает имя транзакции.
- func: Функция, функция, выполняемая транзакционным способом.
Результаты возврата:
- Boolean, возвращает информацию о том, зафиксирована ли транзакция, возвращает true для обычной фиксации, возвращает false для отката и выдает ошибку, если транзакция идет не так.
Есть три результата выполнения функции:
- Функция возвращает обычный результат, включая завершение операции и активный возврат, после чего транзакция будет автоматически зафиксирована.
- Функция возвращает false, и транзакция будет отменена.
- Ошибка операции функции, транзакция автоматически откатывается
execute
Выполните команду sql и верните результат выполнения.
1NArray SQLite.execute(String sql) async;
Параметры звонка:
- sql: Веревка, веревка
Результаты возврата:
- NArray, возвращает массив, содержащий записи результатов. Если запрос имеет формат UPDATE или INSERT, возвращаемый результат также будет включать в себя затронутый и InsertId. mssql не поддерживает InsertId.
Выполните команду sql и верните результат выполнения. Строка может быть отформатирована в соответствии с параметрами.
1
2NArray SQLite.execute(String sql,
...args) async;
Параметры звонка:
- sql: строка, строка формата, необязательные параметры указываются с помощью ?. Например: «ВЫБРАТЬ ИЗ ТЕСТА WHERE [id]=?»
- args: ..., список необязательных параметров
Результаты возврата:
- NArray, возвращает массив, содержащий записи результатов. Если запрос имеет формат UPDATE или INSERT, возвращаемый результат также будет включать в себя затронутый и InsertId. mssql не поддерживает InsertId.
createTable
Создать таблицу данных
1SQLite.createTable(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
dropTable
Удалить таблицу данных
1SQLite.dropTable(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
createIndex
Создать индекс таблицы данных
1SQLite.createIndex(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
dropIndex
Удалить индекс таблицы данных
1SQLite.dropIndex(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
insert
Вставить новую запись
1Number SQLite.insert(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
Результаты возврата:
- Number, возвращает идентификатор, содержащий вставку, или 0, если движок ее не поддерживает.
find
Запрос данных на основе заданных условий
1NArray SQLite.find(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
Результаты возврата:
- NArray, возвращает записи, содержащие результаты
count
Подсчитайте количество записей данных на основе заданных условий
1Integer SQLite.count(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
Результаты возврата:
- Integer, возвращает количество записей, содержащих результат
update
Обновить данные на основе заданных условий
1Integer SQLite.update(Object opts) async;
Параметры звонка:
- opts: Объект, список параметров
Результаты возврата:
- Integer, возвращает количество записей, содержащих обновления
remove
Удалить данные на основе указанных условий
1Integer SQLite.remove(Object opts) async;
Параметры звонка:
- opts: Объект, список необязательных параметров.
Результаты возврата:
- Integer, возвращает количество записей, содержащих обновления
format
Отформатируйте команду sql и верните отформатированный результат
1
2String SQLite.format(String method,
Object opts);
Параметры звонка:
- method: строка, указывает запрошенный метод
- opts: Объект, список необязательных параметров.
Результаты возврата:
- String, возвращает отформатированную команду sql
Отформатируйте команду sql и верните отформатированный результат
1
2String SQLite.format(String sql,
...args);
Параметры звонка:
- sql: строка, строка формата, необязательные параметры указываются с помощью ?. Например: «ВЫБРАТЬ ИЗ ТЕСТА WHERE [id]=?»
- args: ..., список необязательных параметров
Результаты возврата:
- String, возвращает отформатированную команду sql
toString
Возвращает строковое представление объекта. Обычно возвращается «[Native Object]». Объект может быть повторно реализован в соответствии с его собственными характеристиками.
1String SQLite.toString();
Результаты возврата:
- String, возвращает строковое представление объекта
toJSON
Возвращает представление объекта в формате JSON, обычно возвращая коллекцию читаемых свойств, определенных объектом.
1Value SQLite.toJSON(String key = "");
Параметры звонка:
- key: Строка, не используется.
Результаты возврата:
- Value, возвращает значение, содержащее сериализуемый JSON