やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3構文 expression

 文ではなく式。

情報源

以前

 以前は「公式からは見つけられなかった」ようだが、今回見つけた。

演算子

 優先順位が高い順。

二項演算子

演算子 意味
|| 文字列結合
*,/,% 乗算、除算、剰余
+,- 加算、減算
<<,>>,&,| ビット演算子(左シフト、右シフト、ビットAND、ビットOR)
<,<=,>,>= 比較演算子(小なり、小なりイコール、大なり、大なりイコール)
=,==,!=,<>,is,is not,in,like,glob,match,regexp 比較演算子(イコール、ノットイコール)
and 論理演算子論理積
or 論理演算子論理和
  • <: 左は小さい。右よりも。(小なり)

単項演算子

演算子 意味
~ ビット演算子(ビットNOT)
- 負数
+ (何もしない)
not 論理演算子(否定)

collate演算子

collate binary
collate nocase
collate rtrim
create table T(A text);
insert into T values('B');
insert into T values('A');
insert into T values('C');
select A from T where A = 'a';





select A from T where A collate nocase = 'a';
A

 collate演算子はすべての単項演算子より優先度が高い。

その他の論理演算子

演算子 意味
between 範囲内にあるか
in 候補内にあるか
exists 存在するか
like パターンに一致するか
glob パターンに一致するか
match パターンに一致するか(FTS用)
regexp 正規表現パターンに一致するか

その他

 値を返す。

演算子 意味
case when then else 条件に一致したとき指定値を返す

 行を返す。

演算子 意味
limit offset 指定行数を上限とする。offsetがあるとき先頭から指定行数だけ飛ばす

 表を返す。

演算子 意味
distinct 重複値を排除する
union 和結合(2表すべて)
except 差結合(2表の差分のみ)
intersect 積結合(2表で一致のみ)

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで