SQLite

SQLiteで複数の行を1行のINSERT文でまとめて追加

insert into t1 (f1, f2, f3) values ('a1', 'b1', 'c1'), ('a2', 'b2', 'c2'), ('a3', 'b3', 'c3') ネタ元 https://www.gesource.jp/weblog/?p=6398

SQLiteでdatabase is lockedがでるときには仕様を把握しよう

SQLiteは 暗黙のトランザクション処理とオートコミットといった機能があるのでお手軽な反面、 アクセスが頻繁な処理を作ると、思った以上の トランザクションの開始やコミットが発生し、ジャーナルファイルの生成と削除が 繰り返されるため、トランザクショ…

SQLiteで日時または時刻の要素を加算・減算

datetime('2019-05-04', '+2 days', '-4 hours')てな感じ ネタ元 https://www.dbonline.jp/sqlite/function/index6.html#section2

SQLiteで現在の日時入力

INSERT INTO my_table (name, modified_date) VALUES 'hogehoge', datetime('now', 'localtime'); ネタ元 https://pgmemo.tokyo/data/archives/952.html

C#のSQLiteでオンメモリで実行する

":memory:"で指定して ";mode=memory;cache=shared"; を付けて使う public abstract class SqliteBase { public string ConnectionString; protected SqliteBase() { SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder { DataSour…

sqliteで書き込み速度をアップさせる設定

SyncMode=Off JournalMode=Memory または SyncMode=Off JournalMode=Wal が爆速。ただし、SyncMode=OFFにすると同期を取らなくなるので SyncMode=Normal JournalMode=Wal がベター。 ネタ元 https://devlights.hatenablog.com/entry/2014/02/01/151642

SQLiteのインメモリモードとファイルモードの性能比較

HDDと比べるとだいぶ差がある ネタ元 https://qiita.com/ytkj/items/33dc4f1b2df542eff3c9

sqlでExecuteScalarとExecuteReaderとExecuteNonQueryの違い

ExecuteNonQuery() UPDATE、INSERT、DELETE、REPLACEとかで使う。 ExecuteReader() アクションと非アクションのクエリ(選択)で動作します ExecuteScalar() 集計関数を含む非アクションクエリで動作します。 ネタ元 https://atom1000.com/2018/10/13/execut…

sqliteでデータがなければInsert、あればUpdateしたいなら REPLACE

ネタ元 http://yan-note.blogspot.com/2012/11/android-insertupdate.html

SQLiteで利用可能なデータ型

NULL NULL値 INTEGER 符号付整数。1, 2, 3, 4, 6, or 8 バイトで格納 REAL 浮動小数点数。8バイトで格納 TEXT テキスト。UTF-8, UTF-16BE or UTF-16-LEのいずれかで格納 BLOB Binary Large OBject。入力データをそのまま格納 ネタ元 https://www.dbonline.jp…

SQLiteのdbにファイルを保存する方法

BLOB型に保存する ネタ元 https://qiita.com/ymko/items/8c883f21a05518706c57

SQLite VC++に組み込み手順

ソースとDLLをダウンロード https://www.sqlite.org/download.htmlから Source Code と Precompiled Binaries for Windows をダウンロード sqlite3.libの作成 Visual Studio コマンドプロンプトを起動。 libコマンドで sqlite3.libを生成する。 パスはそれぞ…

降順にソートした結果の先頭5列だけの移動平均を出すSQL文

select の入れ子 って感じに書く select avg(current) from (select current from tbl_data where code=9984 and date<=20160310 order by date DESC limit 5) items;ネタ元 http://stackoverflow.com/questions/1854383/select-average-from-mysql-table-wi…

SQLiteでDBの整合性チェックSQL

PRAGMA integrity_check;ネタ元 http://taichino.com/engineer-life/database/4123

SQLite C言語向けAPI チートシート

SQLite C言語向けAPI チートシートです。 http://qiita.com/katsugeneration/items/26a76f66a1c9cb1710f4

SQLiteで利用可能なデータ型

格納される値のデータ型 型 解説 NULL NULL値 INTEGER 符号付整数。1, 2, 3, 4, 6, or 8 バイトで格納 REAL 浮動小数点数。8バイトで格納 TEXT テキスト。UTF-8, UTF-16BE or UTF-16-LEのいずれかで格納 BLOB Binary Large OBject。入力データをそのまま格納…

SQLiteの書き込み速度をアップさせる (System.Data.SQLite, SyncMode, JournalMode, PRAGMA)

デフォルトは、System.Data.SQLiteの場合SyncMode=Normal JournalMode=Default です。これをSyncMode=Off JournalMode=Memory にすると、爆速になります。またはSyncMode=Off JournalMode=Wal にしても同じくらい速くなります。SyncModeはNormalのままがいい…

SQLiteでの処理を高速化

INSERTでは、トランザクションをきちんと制御すべし。それでも遅い場合には、journal_modeをMEMORYにしてみるべし。ですね。ネタ元 http://uniunix.com/blog/?p=154

SQLiteの最初の一歩

SQLite極短サンプルコード #pragma comment( lib, "sqlite3.lib" ) #include <tchar.h> #include <sqlite3.h> #include <stdio.h> // 抽出結果が返るコールバック関数 static int callback(void *NotUsed, int argc, char **argv, char **azColName){ int i; for(i=0; i</stdio.h></sqlite3.h></tchar.h>

SQLiteでテーブルが存在するか確認

select count(*) from sqlite_master where type='table' and name='<テーブル名>';ネタ元 http://o-tomox.hatenablog.com/entry/2013/09/28/194634

SQliteでsqlite3_exec()を使うとメモリリークする場合

エラーメッセージをsqlite3_free()してないからでしょう res = sqlite3_exec(database, [sqlQueryStr UTF8String], NULL, NULL, &errorMsg); if (res != SQLITE_OK) { sqlite3_free(errorMsg); // <-これ sqlite3_close(database); NSLog(@"executeQuery Err…

SQLiteでテーブルにデータを追加する際、あれば更新なければ追加するには INSERT OR REPLACE

INSERT OR REPLACE INTO userinfo (id) VALUES (1);ネタ元 http://d.hatena.ne.jp/ovjang/20110331/1301574587

DB Browser for SQLiteを使ってデータベースの軽量化できる

対象のデータベースに接続してから「File」メニューの中の「Compact Database」メニューをクリックネタ元 http://www.dbonline.jp/sqlite-db-browser/manage/index1.html

SQLiteでattempt to write a readonly databaseと言われたら、書き込み権限の問題の場合あり

ネタ元 http://d.hatena.ne.jp/calpo/20110315/p1

SQLiteのロック・トランザクション関連仕様

DBのロック状態の種類: (文中の「プロセス」は、正確には「プロセス、もしくはスレッド」を意味します。) UNLOCKED ロックされていない状態。誰も読み書きしていない。DBの初期状態。 SHARED read可、write不可な状態。複数プロセスが同時にSHAREDロック…