オブジェクトSQLite
SQLite オブジェクトは組み込みモジュールですdbSQLite データベースのメンバー。主に 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 を返し、トランザクションが失敗した場合はエラーをスローします。
func の実行結果は 3 つあります。
- 関数は、操作の終了とアクティブな戻りを含めて通常に戻り、その時点でトランザクションは自動的にコミットされます。
- 関数は false を返し、トランザクションはロールバックされます。
- 関数操作エラー、トランザクションは自動的にロールバックされます
トランザクションを入力して関数を実行し、関数の実行に基づいてコミットまたはロールバックします。
1
2Boolean SQLite.trans(String point,
Function func);
呼び出しパラメータ:
- point: 文字列、トランザクションの名前を指定します
- func: 関数、トランザクション方式で実行される関数
返される結果:
- Boolean、トランザクションがコミットされているかどうかを返し、通常のコミットの場合は true を返し、ロールバックの場合は false を返し、トランザクションが失敗した場合はエラーをスローします。
func の実行結果は 3 つあります。
- 関数は、操作の終了とアクティブな戻りを含めて通常に戻り、その時点でトランザクションは自動的にコミットされます。
- 関数は false を返し、トランザクションはロールバックされます。
- 関数操作エラー、トランザクションは自動的にロールバックされます
execute
SQLコマンドを実行し、実行結果を返す
1NArray SQLite.execute(String sql) async;
呼び出しパラメータ:
- sql:文字列、文字列
返される結果:
- NArrayは、結果レコードを含む配列を返します。要求が UPDATE または INSERT の場合、返される結果には、影響を受ける Id と insertId も含まれます。mssql は、insertId をサポートしません。
SQLコマンドを実行し、実行結果を返します。文字列はパラメータに従ってフォーマットできます。
1
2NArray SQLite.execute(String sql,
...args) async;
呼び出しパラメータ:
- sql: 文字列、書式文字列、オプションのパラメータは?で指定します。例: 「SELECT FROM TEST WHERE [id]=?」
- args: ...、オプションのパラメータリスト
返される結果:
- NArrayは、結果レコードを含む配列を返します。要求が UPDATE または INSERT の場合、返される結果には、影響を受ける Id と 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、挿入を含む ID を返します。エンジンがサポートしていない場合は 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: 文字列、書式文字列、オプションのパラメータは?で指定します。例: 「SELECT FROM TEST WHERE [id]=?」
- args: ...、オプションのパラメータリスト
返される結果:
- String、フォーマットされたSQLコマンドを返します。
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String SQLite.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value SQLite.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します