SQLite クラシック チュ...login
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

SQLite 演算子


SQLite 演算子とは何ですか?

演算子は予約語または予約文字であり、主に SQLite ステートメントの WHERE 句で比較や算術演算などの演算を実行するために使用されます。

演算子は、SQLite ステートメントで条件を指定し、ステートメント内の複数の条件を接続するために使用されます。

  • テーブル演算子 运 比較演算子

  • 論理演算子

  • Sqlite 算術演算子

  • 変数 A = 10、変数 B = 20 と仮定すると、次のようになります:
オペレーター

説明

+加算 - 演算子の両側の値を加算しますa + bは30を取得します
-減算-左の演算は数値から右のオペランドを引いたものですa - bは取得します-10
*乗算 - 演算子の両側の値を乗算しますa * bは200になります
/除算 - 左オペランドを右オペランドで割ったものb / a は 2
%modulo を与えます - 左オペランドを右オペランドで除算した後に得られる剰余 b % a は 0
を与えます

以下は、SQLite 算術演算子の簡単な例です。

10- 20 = -10
sqlite>select 10 * 20;
10 * 20 = 200


sqlite>select 10 / 5;


sqlite>select 12 % 5;
12%5 = 2


SQLite 比較演算子

変数 a=10、変数 b=20 と仮定すると、次のようになります:




演算子
説明

===!=<>><>=<=!<!>

COMPANY テーブルに次のレコードがあるとします。

ID NAME AGE ADDRESS SALARY
---------- ---------- -------- -- ---------- ----------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームス 24 ヒューストン 10000.0

次の例は、さまざまな SQLite 比較演算子の使用法を示しています。

ここでは、WHERE 句を使用します。これについては後ほど別の章で説明しますが、ここでは、WHERE 句が SELECT ステートメントの条件文を設定するために使用されることを理解する必要があります。

次の SELECT ステートメントは、SALARY が 50,000.00 より大きいすべてのレコードをリストします:

sqlite> SELECT * FROM COMPANY WHERE SALARY >
ID名前 住所 給与
---------- -- -- ------.テキサス 85000.0

次の SELECT ステートメントは、SALARY が 20,000.00 に等しいすべてのレコードをリストします。名前 年齢 -------- --- ---------- -------------- ----------
1 32ノルウェー 20000.0

次の SELECT ステートメントは、SALARY が 20,000.00 に等しくないすべてのレコードをリストします:

sqlite> SELECT * FROM COMPANY WHERE SALARY != 20000;
ID NAME AGE ADDRESS SALARY
---------- -- ------.モンド 65000.0
5 デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームス 24 ヒューストン 10000.0

次の SELECT ステートメントは、SALARY が 20,000.00 に等しくないすべてのレコードをリストします:

sqlite> SELECT * FROM COMPANY WHERE SALARY <>
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------------- -----------
225リッチ-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
次の SELECT ステートメントは、SALARY が 65,000.00 以上のすべてのレコードをリストします。

sqlite> SELECT * FROM給与&gt; = 65000;

SQLite 論理演算子

以下は、SQLite のすべての論理演算子のリストです。

2 つのオペランドの値を確認します。が等しい場合、条件は true です。 (a == b) は真実ではありません。
は、2 つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が true です。 (a = b) は真実ではありません。
は、2 つのオペランドの値が等しいかどうかをチェックし、そうでない場合は条件が true です。 (a != b) は true です。
2 つのオペランドの値が等しいかどうかを確認し、そうでない場合は条件が true です。 (a <> b) は true です。
左のオペランドの値が右のオペランドの値より大きいかどうかを確認し、大きい場合は条件が true です。 (a > b) は真実ではありません。
左のオペランドの値が右のオペランドの値より小さいかどうかを確認し、そうであれば条件は true です。 (a < b) は true です。
左のオペランドの値が右のオペランドの値以上であるかどうかを確認し、そうである場合、条件は true です。 (a >= b) は真実ではありません。
左のオペランドの値が右のオペランドの値以下であるかどうかを確認し、そうである場合、条件は true です。 (a <= b) は true です。
左のオペランドの値が右のオペランドの値より小さくないかどうかを確認し、そうであれば条件は true です。 (a !< b) は false です。
左のオペランドの値が右のオペランドの値より大きくないかどうかを確認し、そうであれば条件が true です。 (a !> b) は true です。
演算子説明
ANDAND 演算子を使用すると、SQL ステートメントの WHERE 句に複数の条件を含めることができます。
BETWEENBETWEEN 演算子は、指定された最小値と最大値の範囲内の値の範囲内の値を検索するために使用されます。
EXISTSEXISTS 演算子は、指定されたテーブル内で特定の条件を満たす行の存在を検索するために使用されます。
ININ 演算子は、値を指定された値のリストと比較するために使用されます。
NOT IN IN 演算子の反対で、値を指定されたリストにない値と比較するために使用されます。
LIKE LIKE 演算子は、ワイルドカード演算子を使用して値を類似の値と比較するために使用されます。
GLOBGLOB演算子は、ワイルドカード演算子を使用して値を類似の値と比較するために使用されます。 GLOB は、大文字と小文字が区別されるという点で LIKE とは異なります。
NOTNOT 演算子は、使用される論理演算子の逆です。 NOT EXISTS、NOT BETWEEN、NOT IN など。 否定演算子です。
OROR 演算子は、SQL ステートメントの WHERE 句で複数の条件を結合するために使用されます。
IS NULL NULL 演算子は、値を NULL 値と比較します。
ISIS 演算子は = に似ています。
IS NOTIS NOT 演算子は != に似ています。
|| 2 つの異なる文字列を連結して、新しい文字列を取得します。
UNIQUE UNIQUE 演算子は、指定されたテーブル内のすべての行を検索し、一意性 (重複がないこと) を保証します。

COMPANY テーブルに次のレコードがあるとします。

ID NAME AGE ADDRESS SALARY
---------- ---------- -------- -- ---------- ----------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームス 24 ヒューストン 10000.0

次の例は、SQLite 論理演算子の使用法を示しています。

次の SELECT ステートメントは、AGE が 25 以上で、salary が 65000.00 以上であるすべてのレコードをリストします:

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
ID 名前 年齢 住所 給与
---------- ---------- ---------- ---------- - ------ ---
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0

S 以下 ELECT ステートメントは、AGE が 25 以上、または salary 以上であるすべてのレコードをリストします。 to 65000.00:

sqlite> 会社からの年齢 & GT; = 25 OR SALARY & GT = 65000;
ID 年齢 住所 給与
----------- ---------------------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
4 マーク 25 リッチ-モンド 65000.0
5 デビッド 27 テキサス 85000.0

次の SELECT ステートメントは、AGE が NULL でないすべてのレコードをリストします。これは、AGE が NULL に等しいレコードがないことを意味します。年齢 住所 給与

-------------------------------------- -- --
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000。 0
7 ジェームス 24 ヒューストン 10000.0

次の SELECT ステートメントは、NAME が「Ki」で始まるすべてのレコードをリストします。「Ki」以降の文字は制限されません:

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- -------- --
6 Kim 22 South-Hall 45000.0

次の SELECT ステートメントは、NAME が「Ki」で始まるすべてのレコードをリストします。「Ki」の後の文字は制限されません:

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki *';
ID ---- ----------
6 Kim 22 South-Hall 45000.0
次の SELECT ステートメントは、AGE 値が 25 または 27 であるすべてのレコードをリストします。

sqlite> ;(25、27); 5 デビッド 27 テキサス 85000.0

次の SELECT ステートメントは、AGE 値が 25 でも 27 でもないすべてのレコードをリストします:

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN (25, 27);
ID NAME AGE AD DRESS SALARY
--- -- ----- ---------- ---------- ---------- ----------
1 ポール 32 カリフォルニア20000.0
3 Teddy 23 Norway 20000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0

次の SELECT ステートメントは、AGE 値が 25 から 27 までのすべてのレコードをリストします。 ; 会社から * を選択してください25 歳から 27 歳までの年齢;

ID ----------
2 アレン 25 テキサス 15000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 テキサス 85000.0

次の SELECT ステートメントは、SQL サブクエリを使用します。サブクエリは、SALARY > 65000 の AGE フィールドを持つすべてのレコードを検索します。次の WHERE 句は、サブクエリに存在する外部クエリ内の AGE をリストするために EXISTS 演算子とともに使用されます。返された結果のレコード:

sqlite> SELECT AGE FROM COMPANY

23
25
27
22
24


次の SELECT ステートメントは、SQL サブクエリを使用して、SALARY > 65000 の AGE フィールドを持つすべてのレコードを検索します。次の WHERE 句は、> 演算子とともに使用され、外側のクエリの AGE がサブクエリによって返された結果の Age よりも大きいすべてのレコードをリストします。名前 年齢 住所 給料
。 ---------------------------------------- ----
1 Paul 32 California 20000.0

SQLITE ビット演算子
ピッチはビット演算を実行します。真理値表 & と | は次のとおりです。
0

1
0

1

11111001

A = 60、B = 13 の場合、バイナリ形式で次のようになるとします:

A = 0011 1100

B = 0000 1101

-------------- ------------ ---

A&B = 0000 1100

A|B = 0011 1101

~A = 1100 0011

次の表は、SQLite 言語でサポートされているビット単位の演算子のリストです。 。変数 A=60 および変数 B=13 と仮定すると、次のようになります。

OperatorDescriptionExample
& 両方のオペランドに同時に存在する場合、バイナリ AND 演算子は 1 ビットをコピーします。結果。 (A & B) は 12 を返します。これは 0000 1100 です
| どちらかのオペランドに存在する場合、バイナリ OR 演算子は 1 ビットを結果にコピーします。 (A | B) は 61、つまり 0011 1101 になります
~ 2 の補数演算子は単項演算子であり、「反転」ビット効果があります。 (~A ) は -61 を返します。これは 1100 0011、2 の補数、符号付き 2 進数です。
<<二項左シフト演算子。左オペランドの値は、右オペランドで指定されたビット数だけ左にシフトされます。 A << 2 は 240 を取得します。これは 1111 0000 です
>> 2 項右シフト演算子。左オペランドの値は、右オペランドで指定されたビット数だけ右にシフトされます。 A >> 2 は 15、つまり 0000 1111 を取得します

次の例は、SQLite ビット演算子の使用法を示しています。 13 ;

60 | 13 = 61
sqlite>select 60 & 13;
60 & 13 = 12

sqlite>select 60 ^ 13;
10 = 200

sqlite>select(~60);
(~60) = -61

sqlite>select(60<<2);
(60<<2)=240

sqlite>select(60>>2);
(60> ;> 2) = 15