Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

pengendali SQLite


Apakah pengendali SQLite? Operator

ialah perkataan atau aksara terpelihara, terutamanya digunakan untuk melaksanakan operasi dalam klausa WHERE bagi pernyataan SQLite, seperti perbandingan dan operasi aritmetik. Operator

digunakan untuk menentukan syarat dalam pernyataan SQLite dan menyambungkan berbilang syarat dalam pernyataan.

  • Pengendali aritmetik

  • Pengendali perbandingan

  • Pengendali logik

  • Pengendali bitwise

Pengendali aritmetik SQLite

Anggap pembolehubah a=10, pembolehubah b=20, kemudian:

运算符描述实例
+加法 - 把运算符两边的值相加a + b 将得到 30
-减法 - 左操作数减去右操作数a - b 将得到 -10
*乘法 - 把运算符两边的值相乘a * b 将得到 200
/除法 - 左操作数除以右操作数b / a 将得到 2
%取模 - 左操作数除以右操作数后得到的余数b % a will give 0

Contoh

Berikut ialah contoh mudah pengendali aritmetik SQLite:

baris mod sqlite>
sqlite> pilih 10 + 20;
10 20 = 30


sqlite> pilih 10 - 20;
10 - 20 = -10


sqlite> = 200


sqlite> pilih 10 / 5;
10 / 5 = 2


sqlite>

Operator perbandingan SQLite

Andaikan pembolehubah a=10, pembolehubah b=20, kemudian:

Contoh

Andaikan jadual SYARIKAT mempunyai rekod berikut: ---- ---------- ---------- ------- ---

1                                                                                                                                                                                                                                                                                                 0.0
3 Teddy Bln-0. 4 Markah 0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0

Contoh berikut menunjukkan penggunaan pelbagai operator perbandingan SQLite.

Di sini, kami menggunakan klausa WHERE , yang akan diterangkan dalam bab yang berasingan kemudian, tetapi kini anda perlu memahami bahawa klausa WHERE digunakan untuk menetapkan syarat pernyataan SELECT kenyataan.

Penyata PILIH berikut menyenaraikan semua rekod dengan GAJI melebihi 50,000.00:

sqlite> ---------- ---------- ---------- ----------- -------- - -
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0

Penyata SELECT berikut menyenaraikan semua rekod di mana GAJI bersamaan dengan 20,000.00:

sqlite> PILIH * DARI SYARIKAT MANA GAJI = 20000;

NAMA ID UMUR ALAMAT GAJI
---------- ---------- ------- --- ---- ---------- ----------
1 Paul 32 California 20000.0
3 Teddy 23 Norway 20000.0

Penyata PILIH berikut menyenaraikan semua rekod di mana GAJI tidak bersamaan dengan 20,000.00:

sqlite> PILIH * DARI SYARIKAT DI MANA GAJI != 20000;
ID NAME NAME NAME ESS ---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
0
1 James🎜>7
7 James🎜 24

Penyata PILIH berikut menyenaraikan semua rekod di mana GAJI tidak sama dengan 20,000.00:

sqlite> PILIH * DARI SYARIKAT DI MANA GAJI <> 20000;<🎜 ID >---------- ---------- ---------- ----------- -------- --
2 Allen 25 Texas 15000.0
4 Markah 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
1🎜>7 James 🎜>
Penyata PILIH berikut menyenaraikan semua rekod dengan GAJI lebih daripada atau sama dengan 65,000.00:
sqlite> PILIH * DARI SYARIKAT DI MANA GAJI >= 65000;<     ID

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

4 Markah 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0

Operator Logik SQLite

Berikut ialah senarai semua operator logik dalam SQLite.

运算符描述
ANDAND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。
BETWEENBETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。
EXISTSEXISTS 运算符用于在满足一定条件的指定表中搜索行的存在。
ININ 运算符用于把某个值与一系列指定列表的值进行比较。
NOT ININ 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。
LIKELIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。
GLOBGLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。GLOB 与 LIKE 不同之处在于,它是大小写敏感的。
NOTNOT 运算符是所用的逻辑运算符的对立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定运算符。
OROR 运算符用于结合一个 SQL 语句的 WHERE 子句中的多个条件。
IS NULLNULL 运算符用于把某个值与 NULL 值进行比较。
ISIS 运算符与 = 相似。
IS NOTIS NOT 运算符与 != 相似。
||连接两个不同的字符串,得到一个新的字符串。
UNIQUEUNIQUE 运算符搜索指定表中的每一行,确保唯一性(无重复)。

Contoh

Andaikan jadual SYARIKAT mempunyai rekod berikut: ---- ---------- ---------- ------- ---

1                                                                                                                                                                                                                                                                                                 0.0
3 Teddy Bln-0. 4 Markah 0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0

Contoh berikut menunjukkan penggunaan pengendali logik SQLite.

Penyata SELECT berikut menyenaraikan semua rekod dengan AGE lebih besar daripada atau sama dengan 25 dan gaji lebih besar daripada atau sama dengan 65000.00:

sqlite> * Dari syarikat di mana umur & gt; = 25 dan gaji & gt; = 65000;
id ----------------------
4 Mark 25 Rich- Mond 65000.0
5 David 27 Texas 85000.0
Penyata SELECT menyenaraikan semua rekod dengan AGE lebih daripada atau sama dengan 25
atau
gaji lebih besar daripada atau sama dengan 65000.00:

sqlite> PILIH * DARI SYARIKAT DI MANA UMUR >= 25 ATAU GAJI >= 65000;NAMA ID UMUR ALAMAT GAJI

---------- --------- -- --- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0

Pernyataan SELECT berikut menyenaraikan semua rekod yang AGEnya bukan NULL Hasilnya memaparkan semua rekod, yang bermaksud tiada rekod yang mempunyai AGE sama dengan NULL:

sqlite> UMUR BUKAN NULL;
NAMA ID UMUR ALAMAT GAJI
---------- ---------- ---------- ---- ------ ---- ------ ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Markah 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0

Pernyataan SELECT berikut menyenaraikan semua rekod yang NAMAnya bermula dengan 'Ki'. Aksara selepas 'Ki' tidak terhad:

sqlite> ; ---- ----------
6 Kim 22 South-Hall 45000.0

Pernyataan SELECT berikut menyenaraikan semua rekod yang NAMAnya bermula dengan 'Ki', The aksara selepas 'ki' tidak mengehadkan aksara:

SQLite & GT Pilih*daripada Syarikat di mana nama glob 'ki*' ----------- ---------- ---------- ----------
6 Kim 22 South-Dewan 45000.0


The pernyataan SELECT berikut menyenaraikan semua rekod dengan nilai AGE 25 atau 27:
sqlite> SELECT * FROM SYARIKAT DI MANA AGE IN ( 25, 27 );

ID                                                                                                                                                                                                                                                                                                                                                                                                         -      ---------

2 Allen 25 Texas 15000.0
4 Markah 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0

Pernyataan SELECT berikut menyenaraikan semua rekod dengan nilai AGE bukan 25 atau 27:

sqlite> PILIH * DARI SYARIKAT YANG TIDAK BERUMUR ( 25, 27 );
ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 kepada ---------
1 Paul 32 California 20000.0
3 Teddy 23 Norway 20000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
<🎜 🎜>Pernyataan SELECT berikut menyenaraikan semua rekod yang nilai UMURnya antara 25 dan 27:

sqlite> SELECT * DARI SYARIKAT DI MANA UMUR ANTARA 25 DAN 27 ALAMAT GAJI

-----; ----- ---------- ---------- ---------- ----- -----
2 Allen 25 Texas 15000.0
4 Markah 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0

Pernyataan SELECT berikut menggunakan subquery SQL Subquery mencari semua rekod dengan medan AGE dalam GAJI > 65000. Klausa WHERE berikut digunakan dengan operator EXISTS untuk menyenaraikan AGE dalam pertanyaan luar yang wujud dalam Semua rekod dalam keputusan dikembalikan oleh subquery:

sqlite> PILIH UMUR DARI SYARIKAT
DI MANA WUJUD (PILIH UMUR DARI SYARIKAT DI MANA GAJI > 65000);
UMUR
- ---- -----
32
25
23
25
27
22
24

Pernyataan SELECT berikut Gunakan subquery SQL. Subkueri mencari semua rekod dengan medan AGE dalam GAJI > 65000. Klausa WHERE berikut digunakan dengan operator > untuk menyenaraikan AGE dalam pertanyaan luar yang lebih besar daripada keputusan yang dikembalikan oleh subkueri:

sqlite> PILIH * DARI SYARIKAT
DI MANA UMUR > -------- ---------- ---------- ----------
1 Paul 32 California 20000.0

Pengendali Bitwise SQLite

Pengendali Bitwise bertindak pada bit dan melaksanakan operasi sedikit demi sedikit. Jadual kebenaran & dan |

Andaikan jika A = 60, dan B = 13, kini dalam format binari, ia kelihatan seperti ini:

A = 0011 1100

B = 0000 1101

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

A&B = 0000 1100

A|B = 0011 1101

~A = 1100 0011

Jadual berikut menyenaraikan operator bitwise yang disokong oleh bahasa SQLite. Andaikan pembolehubah A=60 dan pembolehubah B=13, kemudian:

运算符描述实例
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。(A & B) 将得到 12,即为 0000 1100
|如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。(A | B) 将得到 61,即为 0011 1101
~二进制补码运算符是一元运算符,具有"翻转"位效应。(~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。A << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。A >> 2 将得到 15,即为 0000 1111

Contoh

Contoh berikut menunjukkan penggunaan operator bit SQLite:

sqlite> ; baris .mode
sqlite> pilih 60 |
60 |. pilih 60 ^ 13;
10 * 20 = 200


sqlite>
(~60) = -61

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

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