🕺

Typescript で Kysely を使って、SQLite の集計処理をかんたんにやる

2023/07/19に公開

集計処理などのバッチプログラムを作成するときに、kysely を使うと簡単にできるので良かったです。

npm モジュールのインストール

npm install better-sqlite3 kysely

ソースコード

count.ts
import { Kysely, SqliteDialect, sql } from 'kysely'
import SQLite from 'better-sqlite3'

// データベース参照を初期化
const db = new Kysely({
  dialect: new SqliteDialect({ database: new SQLite('./test.db') }),
})

// テーブル作成
await sql`CREATE TABLE user (name string, age number, gender string)`.execute(db)

// データ挿入
await sql`INSERT INTO user(name, age, gender) VALUES('coji', 46, 'male')`.execute(db)

// 集計
const { rows } = await sql<{ user_count: number }>`SELECT count(*) AS user_count FROM user`.execute(db)
console.log('user_count', rows[0].user_count)

実行

npx tsx count.ts

実行結果

user_count 1

らくちーん。

Discussion