English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ein Operator ist ein Reservwort oder ein Zeichen, das hauptsächlich in WHERE-Klauseln von SQLite-Anweisungen verwendet wird, um Operationen wie Vergleiche und Arithmetik auszuführen.
Operatoren werden verwendet, um Bedingungen in SQLite-Anweisungen zu spezifizieren und mehrere Bedingungen in einer Anweisung zu verbinden.
Arithmetische Operatoren
Vergleichsoperatoren
Logische Operatoren
Bit-Operatoren
Annehmen Sie, dass die Variable a=10, Variable b=20, dann:
Operator | Beschreibung | Beispiel |
---|---|---|
+ | Addition - Wert auf beiden Seiten des Operators addieren | a + b erhält 30 |
- | Subtraktion - Der linke Operanden minus der rechte Operanden | a - b erhält -10 |
* | Multiplikation - Wert auf beiden Seiten des Operators multiplizieren | a * b erhält 200 |
/ | Division - Der linke Operanden dividiert durch den rechten Operanden | b / a erhält 2 |
% | Modulo - Der Rest, der durch die Division des linken Operanden durch den rechten Operanden erhalten wird | b % a ergibt 0 |
Hier ist ein einfaches Beispiel für SQLite-Arithmetische Operatoren:
sqlite> .mode line sqlite> select 10 + 20; 10 + 20 = 30 sqlite> select 10 - 20; 10 - 20 = -10 sqlite> select 10 * 20; 10 * 20 = 200 sqlite> select 10 / 5; 10 / 5 = 2 sqlite> select 12 % 5; 12 % 5 = 2
Annehmen Sie, dass die Variable a=10, Variable b=20, dann:
Operator | Beschreibung | Beispiel |
---|---|---|
== | Überprüfen Sie den Wert der beiden Operanden, ob sie gleich sind, wenn ja, dann ist die Bedingung wahr. | (a == b) ist nicht wahr. |
= | Überprüfen Sie den Wert der beiden Operanden, ob sie gleich sind, wenn ja, dann ist die Bedingung wahr. | (a = b) ist nicht wahr. |
!= | Überprüfen Sie den Wert der beiden Operanden, ob sie gleich sind, wenn nicht, dann ist die Bedingung wahr. | (a != b) ist wahr. |
<> | Überprüfen Sie den Wert der beiden Operanden, ob sie gleich sind, wenn nicht, dann ist die Bedingung wahr. | (a <> b) ist wahr. |
> | Überprüfen Sie, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist, und wenn ja, ist die Bedingung wahr. | (a > b) ist nicht wahr. |
< | Überprüfen Sie, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist, und wenn ja, ist die Bedingung wahr. | (a < b) ist wahr. |
>= | Überprüfen Sie, ob der Wert des linken Operanden größer gleich dem Wert des rechten Operanden ist, und wenn ja, ist die Bedingung wahr. | (a >= b) ist nicht wahr. |
<= | Überprüfen Sie, ob der Wert des linken Operanden kleiner gleich dem Wert des rechten Operanden ist, und wenn ja, ist die Bedingung wahr. | (a <= b) ist wahr. |
!< | Überprüfen Sie, ob der Wert des linken Operanden nicht kleiner als der Wert des rechten Operanden ist, und wenn ja, ist die Bedingung wahr. | (a !< b) ist falsch. |
!> | Überprüfen Sie, ob der Wert des linken Operanden nicht größer als der Wert des rechten Operanden ist, und wenn ja, ist die Bedingung wahr. | (a !> b) ist wahr. |
假设 COMPANY 表有以下记录:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Der folgende Beispiel zeigt die Verwendung verschiedener SQLite-Vergleichsoperatoren.
Hier verwenden wir WHERE Der WHERE-Teil, der in einem separaten Kapitel erläutert wird, sollte verstanden werden, dass der WHERE-Teil eine Bedingungssatz ist, der in einem SELECT-Ausdruck verwendet wird, um Bedingungen zu setzen.
Der folgende SELECT-Ausdruck listet SALARY größer 5000,00 aller Aufzeichnungen:
sqlite> SELECT * FROM COMPANY WHERE SALARY > 50000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
Der folgende SELECT-Ausdruck listet SALARY gleich 2000,00 aller Aufzeichnungen:
sqlite> SELECT * FROM COMPANY WHERE SALARY = 20000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0 3 Teddy 23 Norway 20000.0
Der folgende SELECT-Ausdruck listet SALARY ungleich 2000,00 aller Aufzeichnungen:
sqlite> SELECT * FROM COMPANY WHERE SALARY != 20000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 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 7 James 24 Houston 10000.0
Der folgende SELECT-Ausdruck listet SALARY ungleich 2000,00 aller Aufzeichnungen:
sqlite> SELECT * FROM COMPANY WHERE SALARY <> 20000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 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 7 James 24 Houston 10000.0
Der folgende SELECT-Ausdruck listet SALARY größer gleich 65000,00 aller Aufzeichnungen:
sqlite> SELECT * FROM COMPANY WHERE SALARY >= 65000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
Hier ist eine Liste aller logischen Betriebsoperators in SQLite.
Operator | Beschreibung |
---|---|
UND | Der AND-Betriebsoperator ermöglicht die Existenz mehrerer Bedingungen in einem WHERE-Teil eines SQL-Ausdrucks. |
BETWEEN | Der BETWEEN-Betriebsoperator wird verwendet, um Werte in einer Reihe von Werten zwischen einem angegebenen Mindestwert und einem angegebenen Höchstwert zu suchen. |
EXISTS | Der EXISTS-Betriebsoperator wird verwendet, um die Existenz von Zeilen in einer bestimmten Tabelle unter bestimmten Bedingungen zu suchen. |
IN | Der IN-Betriebsoperator wird verwendet, um einen Wert mit einer Reihe von angegebenen Listenwerten zu vergleichen. |
NOT IN | Der Gegensatz zum IN-Betriebsoperator, der verwendet wird, um einen Wert mit einem Wert zu vergleichen, der nicht in einer Reihe von angegebenen Listenwerten enthalten ist. |
LIKE | Der LIKE-Betriebsoperator wird verwendet, um einen Wert mit einem ähnlichen Wert, der mit dem Wildcard-Betriebsoperator verglichen wird, zu vergleichen. |
GLOB | GLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。GLOB 与 LIKE 不同之处在于,它是大小写敏感的。 |
NOT | NOT 运算符是所用的逻辑运算符的对立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定运算符。 |
OR | OR 运算符用于结合一个 SQL 语句的 WHERE 子句中的多个条件。 |
IS NULL | NULL 运算符用于把某个值与 NULL 值进行比较。 |
IS | IS 运算符与 = 相似。 |
IS NOT | IS NOT 运算符与 != 相似。 |
|| | 连接两个不同的字符串,得到一个新的字符串。 |
UNIQUE | UNIQUE 运算符搜索指定表中的每一行,确保唯一性(无重复)。 |
假设 COMPANY 表有以下记录:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
下面的示例演示了 SQLite 逻辑运算符的用法。
下面的 SELECT 语句列出了 AGE 大于等于 25 且工资大于等于 65000.00 的所有记录:
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
下面的 SELECT 语句列出了 AGE 大于等于 25 或工资大于等于 65000.00 的所有记录:
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
下面的 SELECT 语句列出了 AGE 不为 NULL 的所有记录,结果显示所有的记录,意味着没有一个记录的 AGE 等于 NULL:
sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 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 NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 6 Kim 22 South-Hall 45000.0
下面的 SELECT 语句列出了 AGE 的值为 25 或 27 的所有记录:
sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 ); ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
下面的 SELECT 语句列出了 AGE 的值既不是 25 也不是 27 的所有记录:
sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 ); ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 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 之间的所有记录:
sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 UND 27; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
Die nachstehende SELECT-Anweisung verwendet eine SQL-Subanfrage, die SALARY > 65000 der alle Aufzeichnungen mit dem Feld AGE, die nachfolgende WHERE-Klausel wird zusammen mit dem EXISTS-Operator verwendet, um alle Aufzeichnungen anzuzeigen, bei denen das AGE im externen Abfrageergebnis im Ergebnis der Subanfrage existiert:
sqlite> SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000); AGE ---------- 32 25 23 25 27 22 24
Die nachstehende SELECT-Anweisung verwendet eine SQL-Subanfrage, die SALARY > 65000 der alle Aufzeichnungen mit dem Feld AGE, die nachfolgende WHERE-Klausel wird zusammen mit dem >-Operator verwendet, um alle Aufzeichnungen anzuzeigen, bei denen das AGE im externen Abfrageergebnis größer als das Ergebnis des Subqueries ist:
sqlite> SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000); ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 Kalifornien 20000.0
Bit-Operatoren wirken auf Bits und führen die Operationen bitweise aus. Die Wahrheitstabelle & und | sind wie folgt:
p | q | p & q | p | q |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
Angenommen, wenn A = 60, und B = 13, jetzt in binärem Format, siehe unten:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
~A = 1100 0011
Die nachstehende Tabelle zeigt die bitweisen Operatoren, die von SQLite unterstützt werden. Angenommen, Variable A=60, Variable B=13, dann:
Operator | Beschreibung | Beispiel |
---|---|---|
& | Wenn ein Bit gleichzeitig in beiden Operanden existiert, kopiert der binäre AND-Operator ein Bit in das Ergebnis. | (A & B) wird 12,daher 0000 1100 |
| | Wenn ein Bit in irgendeinem Operanden existiert, kopiert der binäre OR-Operator ein Bit in das Ergebnis. | (A | B) wird 61, entspricht 0011 1101 |
~ | Der binärische Komplement-Operator ist ein einwertiger Operator mit dem "Verkehrten" Effekt, d.h. 0 wird1,1in 0 umgewandelt. | (~A) wird -61, entspricht 1100 0011, die Komplementform einer signierten binären Zahl ist. |
<< | Der binärische Linksverschiebe-Operator. Der Wert des linken Operanden wird um die Anzahl der Stellen links verschoben, die der rechte Operand angegeben hat. | A << 2 wird erhalten 240, entspricht 1111 0000 |
>> | binärer rechter Schiebeoperator. Der Wert des linken Operanden wird um die Anzahl der Stellen des rechten Operanden nach rechts verschoben. | A >> 2 wird erhalten 15,daher 0000 1111 |
Der folgende Beispiel zeigt die Verwendung der SQLite Bit-Operatoren:
sqlite> .mode line sqlite> select 60 | 13; 60 | 13 = 61 sqlite> select 60 & 13; 60 & 13 = 12 sqlite> select (~60); (~60) = -61 sqlite> select (60 << 2); (60 << 2) = 240 sqlite> select (60 >> 2); (60 >> 2) = 15