English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Un opérateur est un mot réservé ou un caractère, principalement utilisé dans les clauses WHERE des requêtes SQLite pour exécuter des opérations, telles que des comparaisons et des opérations arithmétiques.
Les opérateurs sont des mots réservés ou des caractères, principalement utilisés dans les clauses WHERE des requêtes SQLite pour spécifier des conditions et relier plusieurs conditions dans une requête.
Opérateurs arithmétiques
Opérateurs de comparaison
Opérateurs logiques
Opérateurs de bit
Assumons que la variable a =10, la variable b =20, alors :
Opérateur | Description | Exemple |
---|---|---|
+ | Addition - Ajoutez les valeurs des deux côtés de l'opérateur | a + b obtiendra 30 |
- | Soustraction - Soustrayez l'opérande de droite de l'opérande de gauche | a - b obtiendra -10 |
* | Multiplication - Multipliez les valeurs des deux côtés de l'opérateur | a * b obtiendra 200 |
/ | Division - Diviser l'opérande de gauche par l'opérande de droite | b / a obtiendra 2 |
% | Modulo - Le reste obtenu en divisant l'opérande de gauche par l'opérande de droite | b % a donnera 0 |
Voici un exemple simple des opérateurs arithmétiques SQLite :
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
Assumons que la variable a =10, la variable b =20, alors :
Opérateur | Description | Exemple |
---|---|---|
== | Vérifiez si les valeurs des deux opérandes sont égales, si elles le sont, la condition est vraie. | (a == b) n'est pas vrai. |
= | Vérifiez si les valeurs des deux opérandes sont égales, si elles le sont, la condition est vraie. | (a = b) n'est pas vrai. |
!= | Vérifiez si les valeurs des deux opérandes sont égales, sinon la condition est vraie. | (a != b) est vrai. |
<> | Vérifiez si les valeurs des deux opérandes sont égales, sinon la condition est vraie. | (a <> b) est vrai. |
> | Vérifie si la valeur de l'opérateur de gauche est supérieure à la valeur de l'opérateur de droite, et si c'est le cas, la condition est vraie. | (a > b) n'est pas vrai. |
< | Vérifie si la valeur de l'opérateur de gauche est inférieure à la valeur de l'opérateur de droite, et si c'est le cas, la condition est vraie. | (a < b) est vrai. |
>= | Vérifie si la valeur de l'opérateur de gauche est supérieure ou égale à la valeur de l'opérateur de droite, et si c'est le cas, la condition est vraie. | (a >= b) n'est pas vrai. |
<= | Vérifie si la valeur de l'opérateur de gauche est inférieure ou égale à la valeur de l'opérateur de droite, et si c'est le cas, la condition est vraie. | (a <= b) est vrai. |
!< | Vérifie si la valeur de l'opérateur de gauche n'est pas inférieure ou égale à la valeur de l'opérateur de droite, et si c'est le cas, la condition est vraie. | (a !< b) est faux. |
!> | Vérifie si la valeur de l'opérateur de gauche n'est pas supérieure ou égale à la valeur de l'opérateur de droite, et si c'est le cas, la condition est vraie. | (a !> b) est vrai. |
假设 COMPANY 表有以下记录:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 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
Le tableau suivant montre l'utilisation de divers opérateurs de comparaison SQLite.
Ici, nous utilisons WHERE La clause est expliquée dans un chapitre séparé, mais pour l'instant, vous devez comprendre que la clause WHERE est utilisée pour définir les conditions de la requête SELECT.
La requête SELECT suivante énumère les enregistrements SALARY > 5de toutes les enregistrements :
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
La requête SELECT suivante énumère les enregistrements SALARY = 2de toutes les enregistrements :
sqlite> SELECT * FROM COMPANY WHERE SALARY = 20000; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0
La requête SELECT suivante énumère les enregistrements SALARY <> 2de toutes les enregistrements :
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
La requête SELECT suivante énumère les enregistrements SALARY <> 2de toutes les enregistrements :
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
La requête SELECT suivante énumère les enregistrements SALARY >= 65de toutes les enregistrements :
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
Voici la liste de tous les opérateurs logiques de SQLite.
Opérateur | Description |
---|---|
ET | L'opérateur AND permet l'existence de multiples conditions dans une clause WHERE d'une requête SQL. |
BETWEEN | L'opérateur BETWEEN est utilisé pour rechercher une valeur dans une série de valeurs comprises entre une valeur minimale et une valeur maximale donnée. |
EXISTS | L'opérateur EXISTS est utilisé pour rechercher l'existence de lignes dans une table spécifiée qui répondent à certaines conditions. |
IN | L'opérateur IN est utilisé pour comparer une valeur avec une liste spécifiée de valeurs. |
NOT IN | L'opposé de l'opérateur IN, utilisé pour comparer une valeur avec une valeur qui ne se trouve pas dans une liste spécifiée. |
LIKE | L'opérateur LIKE est utilisé pour comparer une valeur avec une valeur similaire utilisant un opérateur de joker. |
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 California 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 California 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 California 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 California 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 ET 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
La requête SELECT suivante utilise une sous-requête SQL, la sous-requête recherche SALARY > 65000 des enregistrements avec le champ AGE, la clause WHERE suivante, utilisée avec l'opérateur EXISTS, énumère tous les enregistrements où l'AGE de l'enquête externe existe dans le résultat de la sous-requête :
sqlite> SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000); AGE ---------- 32 25 23 25 27 22 24
La requête SELECT suivante utilise une sous-requête SQL, la sous-requête recherche SALARY > 65000 des enregistrements avec le champ AGE, la clause WHERE suivante, utilisée avec l'opérateur >, énumère tous les enregistrements où l'AGE de l'enquête externe est supérieur au résultat de l'AGE de l'enquête sous-jacente :
sqlite> SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000); ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0
Les opérateurs de calcul binaire agissent sur les bits et exécutent des opérations bit par bit. Les tableaux de vérité & et | sont les suivants :
p | q | p & q | p | q |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
Supposons si A = 60, et B = 13, maintenant, sous forme binaire, elles sont les suivantes :
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
~A = 1100 0011
Le tableau suivant liste les opérateurs de calcul binaire pris en charge par le langage SQLite. Supposons que la variable A =60, la variable B =13, alors :
Opérateur | Description | Exemple |
---|---|---|
& | Si elle existe dans les deux opérandes, l'opérateur AND binaire copie un bit dans le résultat. | (A & B) obtiendra 12,即为 0000 1100 |
| | Si elle existe dans l'un des opérandes, l'opérateur OR binaire copie un bit dans le résultat. | (A | B) obtiendra 61, c'est-à-dire 0011 1101 |
~ | L'opérateur de complément à deux octets en binaire est un opérateur unaire, ayant un effet de "inversion", c'est-à-dire que 0 devient1,1devient 0. | (~A ) obtiendra -61, c'est-à-dire 1100 0011, une forme de complément à deux octets d'un nombre binaire signé. |
<< | Opérateur de déplacement à gauche en binaire. La valeur de l'opérande de gauche est déplacée vers la gauche d'un nombre de positions spécifié par l'opérande de droite. | A << 2 将得到 240, c'est-à-dire 1111 0000 |
>> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 | A >> 2 将得到 15,即为 0000 1111 |
以下示例演示了 SQLite 位运算符的使用:
sqlite> .mode line sqlite> select 60 | 13; 60 | 13 = 61 sqlite> select 60 & 13; 60 & 13 = 12 sqlite> select (~60); (~60) = -61 sqlite> select60 << 2); (60 << 2) = 240 sqlite> select60 >> 2); (60 >> 2) = 15