sqlite3【SQLite データベース】3.2~3.113.12
sqlite3【SQLite モジュール】
Connection【コネクション クラス】
Cursor【カーソル クラス】
Row【行 クラス】
Blob【BLOB クラス】3.11
メモ
概要
- SQLite データベースの操作
- DB-API 2.0 インタフェース
- データベース:ローカルファイル または メモリ ( ":memory:" 指定)
- デフォルトは自動コミットなし3.6 (以前は自動コミット)
with文を使用すれば、自動コミット可
詳細はトランザクション制御参照
基本操作
基本操作 | 関数・メソッド・備考 |
---|---|
データベースの接続・切断 | sqlite3.connect【データベース接続】3.4 / 3.7 / 3.8/ 3.10 / 3.113.12 Connection.close【データベース切断】 |
SQLの実行 | Connection【コネクション クラス】の execute~【SQL文実行】(ショートカット) Cursor【カーソル クラス】の execute~【SQL文実行】 |
SELECT結果の取得 | Connection【コネクション クラス】のイテレーション 〔参照・ 例 〕 Cursor【カーソル クラス】の fetch~【フェッチ】 |
トランザクション制御 | Connection.commit【コミット】 Connection.rollback【ロールバック】 Connection【コネクション クラス】のコンテキストマネージャ (with文) 〔参照・ 例 〕 sqlite3.connect【データベース接続】の以下の引数 トランザクション分離レベル・トランザクション制御 3.12 引数 Connection.isolation_level【トランザクション分離レベル】属性 Connection.autocommit【トランザクション制御】属性 3.12 |
コマンドライン インタフェース 3.12 | python -m sqlite3 [-h] [-v] [filename] [sql] -h・--help:CLI ヘルプ表示 -v・--version:SQLite ライブラリのバージョン出力 |
SQLite データ型 一覧
SQLite 型 | Python 型 |
---|---|
NULL | None |
INTEGER | int |
REAL | float |
TEXT | str【文字列型】 (読み込みは、Connection.text_factory【Text ファクトリ】 属性で変更可) |
BLOB | bytes |
(date) | datetime.date〔 例 〕 (適合関数・変換関数が定義済 3.12 ) |
(timestamp) | datetime.datetime〔 例 〕 (適合関数・変換関数が定義済 3.12 ) |
(ユーザ定義型) | 以下でユーザ型を定義〔 例 〕 sqlite3.register_adapter【適合関数登録 (Python ⇒ SQLite)】 sqlite3.register_converter【変換関数登録 (SQLite ⇒ Python)】 |
モジュール・クラス一覧
モジュール・クラス |
---|
sqlite3【SQLite モジュール】 |
Connection【コネクション クラス】3.2 / 3.3 / 3.7 / 3.8 / 3.10 / 3.11 |
Cursor【カーソル クラス】3.6 |
Row【行 クラス】3.5 |
Blob【BLOB クラス】3.11 |
PrepareProtocol |
例外クラス |
sqlite3【SQLite モジュール】
3.4 / 3.7 / 3.8 / 3.10 / 3.113.12- 各種定数・データベース接続等の関数定義
定数 | 備考 | 例 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apilevel | DB-API レベル (文字列:'2.0' 固定) | '2.0' | ||||||||||||
paramstyle | パラメータマーカーのフォーマットタイプ (文字列:'qmark' 固定) | 'qmark' | ||||||||||||
sqlite_version | SQLite ライブラリのバージョン番号 (文字列) | '3.38.4' | ||||||||||||
sqlite_version_info | SQLite ライブラリのバージョン番号 (整数のタプル) | (3, 38, 4) | ||||||||||||
threadsafety | スレッド セーフのレベル (整数 SQLite ライブラリのコンパイル時のスレッド モード※に対応3.11
| 3 | ||||||||||||
version 3.12 | モジュールのバージョン番号 (文字列) | '2.6.0' | ||||||||||||
version_info 3.12 | モジュールのバージョン番号 (整数のタプル) | (2, 6, 0) | ||||||||||||
3.12 SQLITE_DBCONFIG_DEFENSIVE SQLITE_DBCONFIG_DQS_DDL SQLITE_DBCONFIG_DQS_DML SQLITE_DBCONFIG_ENABLE_FKEY SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION SQLITE_DBCONFIG_ENABLE_QPSG SQLITE_DBCONFIG_ENABLE_TRIGGER SQLITE_DBCONFIG_ENABLE_VIEW SQLITE_DBCONFIG_LEGACY_ALTER_TABLE SQLITE_DBCONFIG_LEGACY_FILE_FORMAT SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE SQLITE_DBCONFIG_RESET_DATABASE SQLITE_DBCONFIG_TRIGGER_EQP SQLITE_DBCONFIG_TRUSTED_SCHEMA SQLITE_DBCONFIG_WRITABLE_SCHEMA | 接続構成オプション (以下で使用) Connection.setconfig【接続構成オプション 設定】 Connection.getconfig【接続構成オプション 取得】 ※ SQLite のバージョンに依存 | |||||||||||||
関数 | 備考 | |||||||||||||
complete_statement | SQL 文チェック (構文チェックなし) | |||||||||||||
connect 3.4 / 3.7 / 3.8 / 3.10 / 3.113.12 | データベース接続 | |||||||||||||
enable_callback_tracebacks 3.10 | トレースバック出力設定 | |||||||||||||
register_adapter 3.10 | 適合関数登録 (Python ⇒ SQLite) | |||||||||||||
register_converter 3.10 | 変換関数登録 (SQLite ⇒ Python) |
Connection【コネクション クラス】
3.2 / 3.3 / 3.7 / 3.8 / 3.113.12- データベース接続に関するクラス
機能 | 備考 |
---|---|
with文 | 自動コミット〔参照・ 例 〕 (例外時:ロールバック) |
属性 | 備考 |
autocommit 3.12 | トランザクション制御 |
in_transaction 3.2 | トランザクションのアクティブ状態 (True:アクティブ / False:その他) |
isolation_level 3.12 | トランザクション分離レベル |
row_factory | Row ファクトリ (行の生成) |
text_factory | Text ファクトリ |
total_changes | 変更・挿入・削除 総行数 |
メソッド | 備考 |
backup 3.7 | バックアップ |
blobopen 3.11 | BLOB オープン |
close | データベース切断 |
commit | コミット |
create_aggregate | ユーザ集計(集合)関数作成 |
create_collation 3.11 | 照合順序作成 |
create_function 3.8 | ユーザー定義関数作成 |
create_window_function 3.11 | ウィンドウ関数の作成・削除 |
cursor | カーソル取得 |
deserialize 3.11 | デシリアライズ |
enable_load_extension 3.23.10 | SQLite 拡張読み込み許可 |
execute 3.10 | SQL文実行 |
executemany 3.10 | SQL文実行 (繰り返し) |
executescript 3.10 | 複数SQL文実行 |
getconfig 3.12 | 接続構成オプション 取得 |
getlimit 3.11 | 接続ランタイム制限 取得 |
interrupt | クエリ中断 |
iterdump | ダンプ イテレータ |
load_extension 3.23.103.12 | SQLite 拡張読み込み |
rollback | ロールバック |
serialize 3.11 | シリアライズ |
set_authorizer3.11 | コールバック登録 (列アクセス) |
set_progress_handler | コールバック登録 (命令実行) |
set_trace_callback3.3 | コールバック登録 (トレース) |
setconfig 3.12 | 接続構成オプション 設定 |
setlimit 3.11 | 接続ランタイム制限 設定 |
Cursor【カーソル クラス】
3.6- カーソルに関するクラス
機能 | 備考 |
---|---|
イテレータ | SELECT 結果の行取得 (fetch~【フェッチ】を参照) ・tuple【タプル型】の行 (デフォルト) ・指定型の行 (Connection.row_factory【Row ファクトリ (行の生成)】属性指定) |
属性 | 備考 |
arraysize | フェッチ行数 |
connection | 使用 Connection |
description | 最終クエリ結果の列名 |
lastrowid 3.6 | 最終変更行のrowid |
rowcount | 変更行数 |
メソッド | 備考 |
close | カーソル クローズ |
execute 3.103.12 | SQL文実行 |
executemany 3.103.12 | SQL文実行 (繰り返し) |
executescript 3.10 | 複数SQL文実行 |
fetchall | フェッチ (全行) |
fetchmany | フェッチ (指定行数) |
fetchone | フェッチ (1行) |
setinputsizes(sizes, /) 3.9 | パラメータ用メモリ領域予約 (処理なし:DB-API) |
setoutputsize(size, column=None, /) 3.9 | フェッチ用スペース割り当て (処理なし:DB-API) |
Row【行 クラス】
3.5- 行に関するクラス
- SELECT 実行後、下記で取得
・Cursor【カーソル クラス】のイテレーション
・fetchone【フェッチ (1行)】
・fetchmany【フェッチ (指定行数)】
・fetchall【フェッチ (全行)】 - 行生成関数の指定可
・Connection.row_factory【Row ファクトリ (行の生成)】属性に sqlite3.Row を設定
- SELECT 実行後、下記で取得
Blob【BLOB クラス】
3.11- BLOB (Binary Large OBject) に関するクラス
- Connection【コネクション クラス】の blobopen【BLOB オープン】で取得
- サイズ変更は不可:SQLの zeroblob関数で固定サイズで作成
例外クラス
例外クラス ( 例外) | 備考 |
---|---|
sqlite3.DatabaseError | データベース関連 例外 |
sqlite3.DataError | データエラー 例外 |
sqlite3.Error | 他の例外の基底クラス SQLite ライブラリ内の例外は以下の属性が存在 sqlite_errorcode:エラーコード3.11 sqlite_errorname:エラー名3.11 |
sqlite3.InterfaceError | インタフェース 例外 |
sqlite3.IntegrityError | 整合性 例外 |
sqlite3.InternalError | 内部エラー 例外 |
sqlite3.NotSupportedError | 未サポート 例外 |
sqlite3.OperationalError | データベース操作 例外 |
sqlite3.ProgrammingError | プログラミング 例外 |
sqlite3.Warning | 警告 例外 |
外部リンク
sqlite3.complete_statement【SQL 文チェック】
メモ
- SQL 文チェック (構文チェックなし)
下記をチェック- セミコロンで終了
- 文字列が閉じられている
- 対話型システムの入力チェックで有用
- 外部リンク
構文
sqlite3.complete_statemen(sql)
戻り値チェック結果 (True:有効 / False:無効)
sqlSQL 文
例
sqlite3.connect【データベース接続】3.4 / 3.7 / 3.8 / 3.10 / 3.113.12
メモ
構文
sqlite3.connect(database, timeout=5.0, detect_types=0, isolation_level='DEFERRED', check_same_thread=True, factory=sqlite3.Connection, cached_statements=100 1283.11, uri3.4 =False, *3.12, autocommit3.12 =sqlite3.LEGACY_TRANSACTION_CONTROL)
Connection【コネクション クラス】オブジェクト
factory指定で継承クラス
databaseデータベース文字列 (パス風オブジェクトも可 3.7 )
ファイルのパス名 (絶対パス または 相対パス)
":memory:"RAM 使用
URI 3.4uri引数指定で URI 解釈 (オプション指定可)
timeoutタイムアウト秒 (デフォルト:5秒)
detect_types型検出
以下の組み合せ (詳細は、register_converter【変換関数登録 (SQLite ⇒ Python)】)
0型検出なし
sqlite3.PARSE_DECLTYPES宣言時の型検出
sqlite3.PARSE_COLNAMES取得時の型検出
isolation_levelトランザクション分離レベル (詳細はSQLite - BEGIN TRANSACTION (英語) 参照)
autocommit (トランザクション制御)が sqlite3.LEGACY_TRANSACTION_CONTROL(旧仕様)で有効 3.12
(Connection.isolation_level【トランザクション分離レベル】属性と同等)
None自動コミット
"DEFERRED" (デフォルト)延期 (自動コミットなし)
"IMMEDIATE"即時
"EXCLUSIVE"排他的
check_same_thread同一スレッドチェック有無
True作成スレッドのみ接続使用可能
False複数スレッドで接続共有可能
factory戻り値のConnection【コネクション クラス】継承クラス
cached_statementsキャッシュSQL文数 (デフォルト:100 1283.11 )
uri3.4database の URI 指定有無 (True:URI 指定)
以下、キーワード引数 3.12
autocommit3.12トランザクション制御
Falseなし
TrueSQLite の自動コミットモード
sqlite3.LEGACY_TRANSACTION_CONTROL旧仕様 (isolation_level (トランザクション分離レベル)を使用)
監査イベントsqlite3.connect(database) 3.8
監査イベントsqlite3.connect/handle(connection_handle) 3.10
例
sqlite3.enable_callback_tracebacks【トレースバック出力設定】3.10
メモ
- デバッグ用トレースバック出力(sys.stderr)の有無を設定
- 外部リンク
構文
sqlite3.enable_callback_tracebacks(flag, /3.10 )
戻り値なし
以下、位置引数 3.10
flagトレースバック出力フラグ (True:有効 / False:無効)
例
sqlite3.register_adapter【適合関数登録 (Python ⇒ SQLite)】3.10
sqlite3.register_converter【変換関数登録 (SQLite ⇒ Python)】3.10
メモ
- SQLite が対応していない型の値を、適合関数・変換関数を使用して対応
メソッド 備考 sqlite3.register_adapter 3.10
【適合関数登録 (Python ⇒ SQLite)】指定したPython の型の値を SQLite が対応している型に変換 sqlite3.register_converter 3.10
【変換関数登録 (SQLite ⇒ Python)】指定した SQLite の値をバイト文字列から Python の型の値に変換 - sqlite3.connect【データベース接続】 の detect_types【型検出】 引数の組合せで変換関数の呼び出し
detect_types 備考 sqlite3.PARSE_DECLTYPES 宣言時の型検出 sqlite3.PARSE_COLNAMES 取得時の型検出
as '【列名】 [【型】]' で指定 - デフォルトで下記が定義済
SQLiteの型 Pythonの型 date datetime.date【日付】 timestamp datetime.datetime【日時】 - 外部リンク
構文
sqlite3.register_adapter(type, adapter, /3.10 )
戻り値なし
以下、位置引数 3.10
typePython の型
adapter適合関数 (呼び出し可能オブジェクト)
適合関数 引数 (例) | 備考 |
---|---|
任意 (型に対応した名前) | 登録した型のオブジェクト |
戻り値 | 備考 |
下記の型の値 int float str bytes | SQLite に書き込む値 |
sqlite3.register_converter(typename, converter, /3.10)
戻り値なし
以下、位置引数 3.10
typename型の名前 (SQLに記述・大小文字の区別なし)
converter変換関数 (呼び出し可能オブジェクト)
変換関数 引数 (例) | 備考 |
---|---|
bstr | バイト文字列 |
戻り値 | 備考 |
カスタムPython型 |
例
Connection.row_factory【Row ファクトリ (行の生成)】属性
メモ
- 行の生成属性 (型を指定)
- 設定なし (デフォルト):tuple【タプル型】の行
- sqlite3.Row:定義済のRow【行 クラス】 (例:Cursor.fetch~【フェッチ】 参照)
- ユーザ型:構文参照
- 行の生成型は下記で使用
- 外部リンク
構文
Connection.row_factory
下記形式の呼び出し可能オブジェクト
引数 (例) | 備考 |
---|---|
cursor | カーソル |
row | デフォルトの tuple【タプル型】の行 |
戻り値 | 備考 |
任意 |
例
Connection.text_factory【Text ファクトリ】属性
メモ
- SQLite TEXT型の生成属性
- SQLite TEXT型を Python のどの型で取得するか指定
- デフォルト:str【文字列型】
- 外部リンク
構文
Connection.text_factory
下記形式の呼び出し可能オブジェクト
引数 (例) | 備考 |
---|---|
bseq | バイト列 |
戻り値 | 備考 |
任意 |
例
Connection.total_changes【変更・挿入・削除 総行数】属性
メモ
- sqlite3.connect【データベース接続】後の変更・挿入・削除 総行数
- 関連
- 外部リンク
構文
Connection.total_changes
例
Connection.backup【バックアップ】3.7
メモ
- データベースのバックアップを作成
- 外部リンク
構文
Connection.backup(target, *, pages=0, progress=None, name="main", sleep=0.250) 3.7
戻り値なし
targetコピー先 (別のConnection【コネクション クラス】インスタンス)
pages (キーワード引数)ページ
≦0一括
0<最大指定ページ毎
progress (キーワード引数)進行状況関数 (呼び出し可能オブジェクト:詳細は下記参照)
name (キーワード引数)コピー元データベース名
"main"メインデータベース
"temp"一時データベース
接続データベース名ATTACH DATABASE ステートメントの AS 指定
sleep (キーワード引数)次ページバックアップまでのスリープ秒数 (整数・浮動小数点数)
進行状況関数 引数 (例) | 備考 |
---|---|
status | 最終ステータス (整数) |
remaining | 残りページ数 (整数) |
total | ページ総数 (整数) |
戻り値 | 備考 |
なし |
例
Connection.blobopen【BLOB オープン】3.11
メモ
- BLOB 処理用のオープン
- 戻り値のBlob【BLOB】オブジェクトで操作
- 外部リンク
構文
例
Connection.close【データベース切断】
メモ
- sqlite3.connect【データベース接続】で接続したデータベースの切断
- Connection.commit【コミット】せずに切断すると変更破棄
- 自動コミットについては、Connection【コネクション クラス】のコンテキストマネージャ
及び Connection.commit【コミット】参照
- 外部リンク
構文
Connection.close()
戻り値なし
例
Connection.autocommit【トランザクション制御】属性3.12
Connection.in_transaction【トランザクションのアクティブ状態】属性 3.2
Connection.isolation_level【トランザクション分離レベル】属性
Connection.commit【コミット】
Connection.rollback【ロールバック】
メモ
- トランザクション関連の属性・メソッド 等
属性・メソッド 等 備考 autocommit 属性 3.12 トランザクション制御
sqlite3.connect【データベース接続】のトランザクション制御 引数と同等
False:なし
True:SQLite の自動コミットモード
sqlite3.LEGACY_TRANSACTION_CONTROL(旧仕様):isolation_level(トランザクション分離レベル) 属性 有効in_transaction 属性 トランザクションのアクティブ状態
True:アクティブ (未コミットの変更あり)
False:その他isolation_level 属性 トランザクション分離レベル
sqlite3.connect【データベース接続】のトランザクション分離レベル 引数と同等
autocommit(トランザクション制御) 属性がsqlite3.LEGACY_TRANSACTION_CONTROL(旧仕様)の場合、有効 3.12
※詳細はSQLite - BEGIN TRANSACTION (英語) 参照commit() コミット rollback() ロールバック コンテキストマネージャ Connection【コネクション クラス】を with 文で使用すると自動コミット
(例外時:ロールバック) - 外部リンク
構文
Connection.in_transaction 3.2
Connection.isolation_level
値 | 備考 |
---|---|
None | 自動コミット (以前のデフォルト ~3.5 ) |
"DEFERRED" (デフォルト 3.6 ) | 延期 (自動コミットなし) |
"IMMEDIATE" | 即時 |
"EXCLUSIVE" | 排他的 |
Connection.commit()
戻り値なし
Connection.rollback()
戻り値なし
例
Connection.create_aggregate【ユーザ集計(集合)関数作成】
Connection.create_collation【照合順序作成】3.11
Connection.create_function【ユーザー定義関数作成】3.8
メモ
- 各種ユーザ定義の作成
メソッド 備考 create_aggregate ユーザ集計(集合)関数作成 (トレースバック出力可) create_collation 3.11 照合順序作成 create_function 3.8 ユーザー定義関数作成 (トレースバック出力可) - トレースバック出力
- 外部リンク
構文
Connection.create_aggregate(name, num_params, aggregate_class)
戻り値なし
nameユーザ集計(集合)関数名
num_paramsユーザ集計(集合)関数の引数の数
aggregate_classstep・finalize メソッドを持つユーザ集計(集合)クラス (詳細は下記参照)
ユーザ集計(集合)クラス
step メソッド 引数 (例) | 備考 |
---|---|
self | |
任意 | num_params 数分の引数 -1:可変長引数 |
戻り値 | 備考 |
なし |
finalize メソッド 引数 (例) | 備考 |
---|---|
self | |
戻り値 | 備考 |
下記の型 bytes str int float None | 最終結果 |
Connection.create_collation(name, callable, /3.10 )
戻り値なし
以下、位置引数 3.11
name照合順序名 (ASCII文字のみ任意のUnicode文字3.11 )
callable呼び出し可能オブジェクト (詳細は下記参照)
呼び出し可能オブジェクト
引数 (例) | 備考 |
---|---|
string1 | 比較文字列1 |
string2 | 比較文字列2 |
戻り値 | 備考 |
-1 | 比較文字列1が先 (string1 < string2) |
0 | 同じ (string1 = string2) |
1 | 比較文字列1が後 (string1 > string2) |
Connection.create_function(name, num_params, func, *, deterministic3.8 =False)
戻り値なし
nameユーザー定義関数名
num_paramsユーザー定義関数の引数の数
funcユーザー定義関数 (呼び出し可能オブジェクト)
以下、キーワード引数 3.8
deterministic 3.8決定的関数か否か (SQLite 3.8.3 以上)
True決定的関数 (SQLite 最適化マーク)
False非決定的関数
ユーザー定義関数 引数 (例) | 備考 |
---|---|
任意 | num_params 数分の引数 -1:可変長引数 |
戻り値 | 備考 |
下記の型 bytes str int float None | 最終結果 |
例
Connection.create_window_function【ウィンドウ関数の作成・削除】3.11
メモ
- ウィンドウ関数の作成・削除
- 外部リンク
構文
Connection.create_window_function(name, num_params, aggregate_class, /) 3.11
以下、位置引数
name (str)ウィンドウ関数名
num_params (int)引数の数 (-1:任意)
aggregate_class (class | None)対応クラス
クラス:必要な実装メソッドは下記参照
None:ウィンドウ関数削除
NotSupportedError 例外未サポート (SQLite 3.25.0 以降が必要)
aggregate_class (対応クラス) 仕様
メソッド | 引数 | 戻り値 | 備考 |
---|---|---|---|
step | 指定引数 | なし | 現在ウィンドウに行追加 |
value | なし | 現在の結果 | 現在の結果返却 |
inverse | 指定引数 | なし | 現在ウィンドウから行削除 |
finalize | なし | 最終結果 | 最終結果返却 (SQLite サポート型) |
例
Connection.cursor()【カーソル取得】
メモ
- カーソル取得
- 外部リンク
構文
Connection.cursor(factory=Cursor)
戻り値Cursor【カーソル クラス】オブジェクト
factory呼び出し可能オブジェクト (Cursor【カーソル クラス】 または そのサブクラスのインスタンス返却)
例
Connection.enable_load_extension【SQLite 拡張読み込み許可】3.23.10
Connection.load_extension【SQLite 拡張読み込み】3.23.103.12
メモ
- SQLite 拡張関連メソッド
メソッド 備考 enable_load_extension SQLite 拡張読み込み許可 load_extension SQLite 拡張読み込み (上記許可が必要) - 外部リンク
構文
Connection.enable_load_extension(enabled, /3.10 ) 3.2
戻り値なし
以下、位置引数 3.10
enabledSQLite 拡張の読み込み可否 (True:許可 / False:禁止)
監査イベントsqlite3.enable_load_extension(connection, enabled) 3.10
Connection.load_extension(path, /3.12, *3.12, entrypoint3.12 =None) 3.2
戻り値なし
以下、位置引数 3.12
path (str)SQLite 拡張ライブラリのパス
以下、キーワード引数 3.12
entrypoint (str)3.12エントリポイント名 (None:SQLiteが推測)
監査イベントsqlite3.load_extension(connection, path) 3.10
Connection.execute【SQL文実行】3.10
Connection.executemany【SQL文実行 (繰り返し)】3.10
Connection.executescript【複数SQL文実行】3.10
メモ
- SQL文実行
同名の Cursor【カーソル クラス】メソッドのショートカット
(一時的な Cursor【カーソル クラス】の省略可)メソッド 備考 execute【SQL文実行】3.10 単一のSQL文を実行 executemany【SQL文実行 (繰り返し)】3.10 単一のSQL文を変数値を変えて実行 executescript()【複数SQL文実行】3.10 複数のSQL文を実行 - SQL文の変数・変数値は下記で指定 (SQL インジェクション対策に有効)
変数 変数値 疑問符指定 ( ? ) list【リスト型】・tuple【タプル型】 等 名前指定 ( :name ) dict【辞書型】 等 - SELECT 結果の行情報の取得についてはCursor.fetch~【フェッチ】を参照
- 関連
- 外部リンク
構文
Connection.execute(sql, parameters=(), /3.10 )
戻り値Cursor【カーソル クラス】オブジェクト
以下、位置引数 3.10
sqlSQL文
parametersSQL文のパラメータ
Connection.executemany(sql, parameters, /3.10 )
戻り値Cursor【カーソル クラス】オブジェクト
以下、位置引数 3.10
sqlSQL文
parametersSQL文のパラメータ (シーケンス・マッピング)
Connection.executescript(sql_script, /3.10 )
戻り値Cursor【カーソル クラス】オブジェクト
以下、位置引数 3.10
sql_scriptSQLスクリプト
例
Connection.interrupt【クエリ中断】
メモ
- 別スレッドからクエリ中断
- 呼び出し元は例外
- 外部リンク
構文
Connection.interrupt()
戻り値なし
Connection.iterdump【ダンプ イテレータ】
メモ
- データベースを SQLテキスト形式でダンプするためのイテレータ
- .dump コマンドと同等
- ファイルに出力すれば、データベースの復元可
- 外部リンク
構文
Connection.iterdump()
戻り値SQL testフォーマットでダンプするためのイテレータ
例
Connection.set_authorizer【コールバック登録 (列アクセス)】3.11
Connection.set_progress_handler【コールバック登録 (命令実行)】
Connection.set_trace_callback【コールバック登録 (トレース)】3.3
メモ
- 各種コールバックの登録
メソッド 備考 set_authorizer 列アクセス毎に呼び出されるコールバックの登録 set_progress_handler 指定命令実行数毎に呼び出されるコールバックの登録 set_trace_callback 3.3 トレース時に呼び出されるコールバックの登録 - トレースバック出力
- 外部リンク
構文
Connection.set_authorizer(authorizer_callback)
戻り値なし
authorizer_callback下記形式のコールバック (None:コールバック登録解除 3.11)
コールバック 引数 (例) | 備考 |
---|---|
p1 | 操作コード 参考:SQLite - Authorizer Action Codes (英語) |
p2~p5 | 操作コード毎の情報 (上記リンク参照) |
戻り値 | 備考 |
sqlite3.SQLITE_OK | アクセス許可 |
sqlite3.SQLITE_DENY | エラー中断 |
sqlite3.SQLITE_IGNORE | 列を NULL 値扱い |
Connection.set_progress_handler(handler, n)
戻り値なし
handler下記形式のコールバック (None:登録解除)
n呼び出し間隔 (SQLite仮想マシンの命令数)
コールバック 引数 (例) | 備考 |
---|---|
なし | |
戻り値 | 備考 |
0 | 処理続行 |
0 以外 | 処理中止 (OperationalError 例外) |
Connection.set_trace_callback(trace_callback) 3.3
戻り値なし
trace_callback下記形式のコールバック (None:無効)
コールバック 引数 (例) | 備考 |
---|---|
sql | SQL 文 |
戻り値 | 備考 |
なし |
例
Connection.getlimit【接続ランタイム制限 取得】3.11
Connection.setlimit【接続ランタイム制限 設定】3.11
メモ
- 接続ランタイム制限の取得・設定
メソッド 備考 getlimit 接続ランタイム制限の取得 setlimit 接続ランタイム制限の設定 - 外部リンク
構文
Connection.getlimit(category, /)
戻り値 (int)制限値
以下、位置引数
category (int)制限カテゴリ (下記参照)
ProgrammingError 例外制限カテゴリ不明
Connection.setlimit(category, limit, /)
戻り値 (int)以前の制限値
以下、位置引数
category制限カテゴリ (下記参照)
limit (int)制限値
<0変更なし
上限値<上限値設定
ProgrammingError 例外制限カテゴリ不明
category (制限カテゴリ)定数 (sqlite3.~) | 値 | 備考 |
---|---|---|
SQLITE_LIMIT_LENGTH | 0 | 文字列・BLOB・テーブル行 の最大サイズ (バイト単位) |
SQLITE_LIMIT_SQL_LENGTH | 1 | SQL ステートメント最大長 (バイト単位) |
SQLITE_LIMIT_COLUMN | 2 | テーブル定義・SELECT結果セット・インデックス・ORDER BY句・GROUP BY句 の最大列数 |
SQLITE_LIMIT_EXPR_DEPTH | 3 | 任意式の解析ツリー最大深度 |
SQLITE_LIMIT_COMPOUND_SELECT | 4 | 複合 SELECT ステートメントの用語最大数 |
SQLITE_LIMIT_VDBE_OP | 5 | 仮想マシンプログラムの命令最大数 |
SQLITE_LIMIT_FUNCTION_ARG | 6 | 関数引数の最大数 |
SQLITE_LIMIT_ATTACHED | 7 | 接続データベースの最大数 |
SQLITE_LIMIT_LIKE_PATTERN_LENGTH | 8 | LIKE・GLOB 演算子のパターン引数の最大長 |
SQLITE_LIMIT_VARIABLE_NUMBER | 9 | SQL ステートメントのパラメータ最大インデックス番号 |
SQLITE_LIMIT_TRIGGER_DEPTH | 10 | 再帰トリガーの最大深度 |
SQLITE_LIMIT_WORKER_THREADS | 11 | 補助ワーカースレッドの最大数 |
例
Connection.serialize【シリアライズ】3.11
Connection.deserialize【デシリアライズ】3.11
メモ
- シリアライズ・デシリアライズ
メソッド 備考 serialize シリアライズ deserialize デシリアライズ - 外部リンク
構文
Connection.serialize(*, name='main') 3.11
戻り値 (bytes)
以下、キーワード引数
name (str)データベース名
Connection.deserialize(data, /, *, name='main') 3.11
戻り値
以下、位置引数
data (bytes)データ
以下、キーワード引数
name (str)データベース名
OperationalError 例外読み取りトランザクション・バックアップ操作 関係中
DatabaseError 例外データに有効 SQLite データベースがない
OverflowError 例外データが 263 - 1 より大きい
例
Connection.setconfig【接続構成オプション 設定】3.12
Connection.getconfig【接続構成オプション 取得】3.12
メモ
- 接続構成オプションの設定・取得
メソッド 備考 setconfig 接続構成オプションの設定 getconfig 接続構成オプションの取得 - 外部リンク
構文
Cursor.description【最終クエリ結果の列名】属性
メモ
- 最終クエリ結果の列名の属性
- 列名のタプル (列名要素は列名と 6つの None のタプル:Python DB API 互換)
- クエリ結果が 0行でも設定
- 外部リンク
構文
Cursor.description
例
Cursor.lastrowid【最終変更行のrowid】属性 3.6
Cursor.rowcount【変更行数】属性
メモ
- 変更行関連の属性
属性 備考 lastrowid【最終変更行のrowid】 INSERT または REPLACE 3.6 の Cursor.execute()【SQL文実行】 で変更
Cursor.executemany()【SQL文実行 (繰り返し)】 で実行時は Nonerowcount【変更行数】 Cursor.execute~()【SQL文実行】で変更された行数
Cursor.executemany()【SQL文実行 (繰り返し)】は合計数
Cursor.execute~()【SQL文実行】以外 または SELECT 等で決定できない場合、-1 - 関連
- 外部リンク
構文
Cursor.lastrowid
Cursor.rowcount
例
Cursor.close【カーソル クローズ】
メモ
- カーソルのクローズ
- 外部リンク
構文
Cursor.close()
戻り値なし
例
Cursor.execute【SQL文実行】3.103.12
Cursor.executemany【SQL文実行 (繰り返し)】3.103.12
Cursor.executescript【複数SQL文実行】3.10
メモ
- SQL文を実行
メソッド 備考 execute【SQL文実行】3.103.12 単一のSQL文を実行 executemany【SQL文実行 (繰り返し)】3.103.12 単一のSQL文を変数値を変えて実行 executescript【複数SQL文実行】3.10 複数のSQL文を実行 - SQL文の変数・変数値は下記で指定 (SQL インジェクション対策に有効)
変数 変数値 疑問符指定 ( ? ) list【リスト型】・tuple【タプル型】 等 名前指定 ( :name ) dict【辞書型】 等 - ショートカットとして同名の Connection【コネクション クラス】メソッドが存在
- 一時的な Cursor【カーソル クラス】の省略可
- SELECT 結果の行情報の取得についてはCursor.fetch~【フェッチ】を参照
- 関連
- 外部リンク
構文
Cursor.execute(sql, parameters=(), /3.10 ) 3.12
戻り値Cursor【カーソル クラス】オブジェクト
以下、位置引数 3.10
sqlSQL文
parameters (dict | シーケンス)SQL文のパラメータ
Cursor.executemany(sql, parameters, /3.10 ) 3.12
戻り値Cursor【カーソル クラス】オブジェクト
以下、位置引数 3.10
sqlSQL 文
parametersSQL文のパラメータ (シーケンス・マッピング)
Cursor.executescript(sql_script, /3.10 )
戻り値Cursor【カーソル クラス】オブジェクト
以下、位置引数 3.10
sql_scriptSQLスクリプト
例
Cursor.fetchone【フェッチ (1行)】
Cursor.fetchmany【フェッチ (指定行数)】
Cursor.fetchall【フェッチ (全行)】
Cursor.arraysize【フェッチ行数】属性
メモ
- SELECT 結果の行情報取得メソッド・関連属性 等
メソッド 等 備考 fetchone()【フェッチ (1行)】 1行の行情報を取得 fetchmany()【フェッチ (指定行数)】 指定行数の行情報を取得
引数省略:arraysize【フェッチ行数】属性fetchall()【フェッチ (全行)】 全行の行情報を取得 Cursor【カーソル クラス】のイテレーション 1行毎に行情報を取得 - 行情報
(Connection.row_factory【Row ファクトリ (行の生成)】属性の指定で変更)- デフォルト:tuple【タプル型】の行情報 (列はインデックス参照可能)
- 定義済み:Row【行 クラス】 の行情報 (列はインデックス参照・名前参照 可能)
- ユーザ定義:各種呼び出し可能オブジェクト
- 外部リンク
構文
Cursor.fetchone()
戻り値行情報 (行なし:None)
Cursor.fetchmany(size=cursor.arraysize)
戻り値行情報のリスト (行なし:空リスト)
sizeフェッチ行数
Cursor.fetchall()
戻り値行情報のリスト (行なし:空リスト)
Cursor.arraysize
デフォルト:1
例
Row.keys【列名リスト】
メモ
- 列名のリストを取得
- Row【行 クラス】の機能(要素アクセス等)の例も記述
- 外部リンク
構文
Row.keys()
戻り値列名のリスト
例
Blob.close【クローズ】
Blob.read【リード】
Blob.write【ライト】
Blob.seek【シーク】
Blob.tell【現在アクセス位置】
メモ
- 各種操作
メソッド 備考 close クローズ (with文使用で自動クローズ) read データ読み取り write データ書き込み seek シーク tell 現在アクセス位置 取得 - 外部リンク