いくつか気づいた謎と、名前の意味。
謎
これまでに気づいた謎。
名前(基本)
英名 | カタカナ英語 | 和名 |
---|---|---|
database file |
データベースファイル |
|
schema name |
スキーマネーム |
スキーマ名 (main ,temp 。attach ... as NAME で指定されたNAME ) |
table |
テーブル | 表 |
record ,row |
レコード ,ロウ ,ロー |
行 |
column ,field |
カラム ,フィールド |
列 |
ビュー
/一時テーブル
- ビュー
view
はselect
文に名前をつけたもの - 一時テーブルはそのDB接続が終了したら削除されるテーブル
紛らわしい
データベース
後述のスキーマネームのことなのか、それともファイルのことか。
スキーマ
構文ツリーでいうschema-name
はattach DB as NAME
したときのNAME
。だが、ドットコマンド.shcema
はcreate
文。「スキーマ」という語が指すものは文脈次第で変わる? ググるときに困る。
行
日本語で表現すると表記ゆれが激しくなる。「行」というが「改行コードを含む文字列」のことを指すこともある。
英語でもrow
と言ったりrecord
と言ったりする。
列
column
, field
の表記ゆれがある。日本語も含めると、それぞれのカタカナ英語と列
。
名前(キーワード)
データベースで使われる名前とその概要。
- オブジェクト
- 操作
データベースの操作はSQL文やドットコマンドで行う。
オブジェクト
database
table
(constraint
)column
(constraint
)
view
index
trriger
transaction
≒savepoint
obj | 概要 |
---|---|
(connection ) |
DB接続。保存先(ファイル(attach ),メモリ(別/共有)) |
database |
DB。以下をすべて含めた集合体。 (またはDB接続、DBファイル、スキーマ名のいずれかを指すこともある?) |
table |
表。列定義をもった構造 |
column |
列。その名前や制約を定義したもの |
view |
事前にパッケージしたselect ステートメントに名前を付けたもの |
index |
どの行がどこにあるかを示したもの。速度向上のため。 |
trriger |
イベント。insert などが発生したときに自動実行するSQLを定義する |
transaction |
変更処理のまとまり。速度向上やデータの整合性を保つため。 |
savepoint |
トランザクションに名前が付いたもの。ネストできる。 |
メタオブジェクト
obj | 概要 |
---|---|
(expression ) |
式 |
(keyword ) |
語 |
SQL文の一部。
操作
attach
/detach
begin
/end
commit
/rollback
release
create
/drop
alter
reindex
upsert
(insert
+update
),delete
select
with
explain
,analize
操作 | 対象obj | 概要 |
---|---|---|
(connect) | DBファイル | 接続する。SQL構文でない語。ファイル(DB,ZIP,CSV,SQLArchive)、メモリ(別/共有)。 |
explain |
SQL文 | 最適化系。クエリプランを返す。 |
analize |
DBファイル | 最適化系。テーブルとインデックスの統計を収集する。 |
attach /detach |
DBファイル | 現在のDB接続に別のDBファイルを追加する。 |
begin /end |
transaction |
開始と終了。 |
commit /rollback |
transaction |
transaction の内容を書き込む/戻す |
create /drop |
table ,view virtual table index ,trigger |
作成・削除する |
alter |
table ,column |
名前を変更する。列を追加する。 |
reindex |
index |
インデックスの削除・再作成。照合シーケンス変更時に役立つ |
insert |
table |
レコードを挿入する。 |
update |
table |
レコードを更新する。 |
upsert |
table |
レコードが有れば更新、無ければ挿入する。 |
delete |
table |
レコードを削除する。 |
select |
table |
レコードを取得する。 |
with |
table |
レコードを再帰的に取得する。 |
release |
savepoint |
作成済みsavepoint を破棄する。 |
savepoint |
savepoint |
transaction に名前を付ける(savepoint ) |
SQLite固有
vacuum
pragma
on conflict
replace
indexed by
操作 | 対象obj | 概要 |
---|---|---|
vacuum |
DBファイルサイズを最小化する。 | |
pragma |
DBファイルの設定やメタデータを表示・編集する。 | |
on conflict |
insert 時に制約で弾かれたら所定の更新処理をする |
|
replace |
on conflict 時に既存レコードを指定レコードへ置換したいとき |
|
indexed by |
delete ,update ,select 文で指定インデックスの使用を強制する |
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux
前回まで
- SQLite3学習 俯瞰まとめ
- SQLite3学習 環境構築まとめ
- SQLite3学習 インタフェースまとめ(C言語、CLI、対話モード、Tcl...)
- SQLite3学習 ドットコマンドまとめ
- SQLite3学習 JSON拡張まとめ
- SQLite3学習 FTSまとめ(ICU, MeCab)
- SQLite3学習 再帰クエリ(WITH RECURSIVE)
- SQLite3学習 R-Treeモジュール
- SQLite3学習 Geopoly(2次元ベクタ画像の生成)
- SQLite3学習 拡張関数(generate_series)
- SQLite3学習 拡張ライブラリ数学関数(extension-functions.c)
- SQLite3謎 主キーの型をintにするとinsertで値を省略したらNULLになってしまう
- SQLite3謎 values()構文