Встроенный объект объекта

Объект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 22
var 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 8
var 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 4
var 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 4
var 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

Строка, текущее имя файла базы данных.

1
readonly String SQLite.fileName;

timeout

Целое число, время ожидания запроса и установки базы данных в миллисекундах

1
Integer SQLite.timeout;

type

Строка, запрос текущего типа базы данных соединений.

1
readonly String SQLite.type;

функция-член

backup

Резервное копирование текущей базы данных в новый файл

1
SQLite.backup(String fileName) async;

Параметры звонка:

  • fileName: Строка, укажите имя файла резервной базы данных.

close

Закрыть текущее соединение с базой данных

1
SQLite.close() async;

use

Выберите базу данных по умолчанию для текущего подключения к базе данных.

1
SQLite.use(String dbName) async;

Параметры звонка:

  • dbName: Строка, укажите имя базы данных

begin

Запустить транзакцию при текущем соединении с базой данных

1
SQLite.begin(String point = "") async;

Параметры звонка:

  • point: строка, указывает имя транзакции, не указано по умолчанию.

commit

Зафиксировать транзакцию при текущем соединении с базой данных

1
SQLite.commit(String point = "") async;

Параметры звонка:

  • point: строка, указывает имя транзакции, не указано по умолчанию.

rollback

Откат транзакции при текущем соединении с базой данных

1
SQLite.rollback(String point = "") async;

Параметры звонка:

  • point: строка, указывает имя транзакции, не указано по умолчанию.

trans

Введите транзакцию для выполнения функции и зафиксируйте или откатите ее в зависимости от выполнения функции.

1
Boolean SQLite.trans(Function func);

Параметры звонка:

  • func: Функция, функция, выполняемая транзакционным способом.

Результаты возврата:

  • Boolean, возвращает информацию о том, зафиксирована ли транзакция, возвращает true для обычной фиксации, возвращает false для отката и выдает ошибку, если транзакция идет не так.

Есть три результата выполнения функции:

  • Функция возвращает обычный результат, включая завершение операции и активный возврат, после чего транзакция будет автоматически зафиксирована.
  • Функция возвращает false, и транзакция будет отменена.
  • Ошибка операции функции, транзакция автоматически откатывается

Введите транзакцию для выполнения функции и зафиксируйте или откатите ее в зависимости от выполнения функции.

1 2
Boolean SQLite.trans(String point, Function func);

Параметры звонка:

  • point: строка, указывает имя транзакции.
  • func: Функция, функция, выполняемая транзакционным способом.

Результаты возврата:

  • Boolean, возвращает информацию о том, зафиксирована ли транзакция, возвращает true для обычной фиксации, возвращает false для отката и выдает ошибку, если транзакция идет не так.

Есть три результата выполнения функции:

  • Функция возвращает обычный результат, включая завершение операции и активный возврат, после чего транзакция будет автоматически зафиксирована.
  • Функция возвращает false, и транзакция будет отменена.
  • Ошибка операции функции, транзакция автоматически откатывается

execute

Выполните команду sql и верните результат выполнения.

1
NArray SQLite.execute(String sql) async;

Параметры звонка:

  • sql: Веревка, веревка

Результаты возврата:

  • NArray, возвращает массив, содержащий записи результатов. Если запрос имеет формат UPDATE или INSERT, возвращаемый результат также будет включать в себя затронутый и InsertId. mssql не поддерживает InsertId.

Выполните команду sql и верните результат выполнения. Строка может быть отформатирована в соответствии с параметрами.

1 2
NArray SQLite.execute(String sql, ...args) async;

Параметры звонка:

  • sql: строка, строка формата, необязательные параметры указываются с помощью ?. Например: «ВЫБРАТЬ ИЗ ТЕСТА WHERE [id]=?»
  • args: ..., список необязательных параметров

Результаты возврата:

  • NArray, возвращает массив, содержащий записи результатов. Если запрос имеет формат UPDATE или INSERT, возвращаемый результат также будет включать в себя затронутый и InsertId. mssql не поддерживает InsertId.

createTable

Создать таблицу данных

1
SQLite.createTable(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

dropTable

Удалить таблицу данных

1
SQLite.dropTable(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

createIndex

Создать индекс таблицы данных

1
SQLite.createIndex(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

dropIndex

Удалить индекс таблицы данных

1
SQLite.dropIndex(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

insert

Вставить новую запись

1
Number SQLite.insert(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

Результаты возврата:

  • Number, возвращает идентификатор, содержащий вставку, или 0, если движок ее не поддерживает.

find

Запрос данных на основе заданных условий

1
NArray SQLite.find(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

Результаты возврата:

  • NArray, возвращает записи, содержащие результаты

count

Подсчитайте количество записей данных на основе заданных условий

1
Integer SQLite.count(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

Результаты возврата:

  • Integer, возвращает количество записей, содержащих результат

update

Обновить данные на основе заданных условий

1
Integer SQLite.update(Object opts) async;

Параметры звонка:

  • opts: Объект, список параметров

Результаты возврата:

  • Integer, возвращает количество записей, содержащих обновления

remove

Удалить данные на основе указанных условий

1
Integer SQLite.remove(Object opts) async;

Параметры звонка:

  • opts: Объект, список необязательных параметров.

Результаты возврата:

  • Integer, возвращает количество записей, содержащих обновления

format

Отформатируйте команду sql и верните отформатированный результат

1 2
String SQLite.format(String method, Object opts);

Параметры звонка:

  • method: строка, указывает запрошенный метод
  • opts: Объект, список необязательных параметров.

Результаты возврата:

  • String, возвращает отформатированную команду sql

Отформатируйте команду sql и верните отформатированный результат

1 2
String SQLite.format(String sql, ...args);

Параметры звонка:

  • sql: строка, строка формата, необязательные параметры указываются с помощью ?. Например: «ВЫБРАТЬ ИЗ ТЕСТА WHERE [id]=?»
  • args: ..., список необязательных параметров

Результаты возврата:

  • String, возвращает отформатированную команду sql

toString

Возвращает строковое представление объекта. Обычно возвращается «[Native Object]». Объект может быть повторно реализован в соответствии с его собственными характеристиками.

1
String SQLite.toString();

Результаты возврата:

  • String, возвращает строковое представление объекта

toJSON

Возвращает представление объекта в формате JSON, обычно возвращая коллекцию читаемых свойств, определенных объектом.

1
Value SQLite.toJSON(String key = "");

Параметры звонка:

  • key: Строка, не используется.

Результаты возврата:

  • Value, возвращает значение, содержащее сериализуемый JSON