Opérateurs SQLite
Que sont les opérateurs SQLite ? L'opérateur
est un mot ou un caractère réservé, principalement utilisé pour effectuer des opérations dans la clause WHERE des instructions SQLite, telles que des comparaisons et des opérations arithmétiques. L'opérateur
est utilisé pour spécifier des conditions dans les instructions SQLite et connecter plusieurs conditions dans une instruction.
Opérateurs arithmétiques
Opérateurs de comparaison
Opérateurs logiques
Opérateurs au niveau du bit
Opérateurs arithmétiques SQLite
Supposons que la variable a=10, la variable b=20, puis :
运算符 | 描述 | 实例 |
---|---|---|
+ | 加法 - 把运算符两边的值相加 | a + b 将得到 30 |
- | 减法 - 左操作数减去右操作数 | a - b 将得到 -10 |
* | 乘法 - 把运算符两边的值相乘 | a * b 将得到 200 |
/ | 除法 - 左操作数除以右操作数 | b / a 将得到 2 |
% | 取模 - 左操作数除以右操作数后得到的余数 | b % a will give 0 |
Exemple
Ce qui suit est un exemple simple d'opérateurs arithmétiques SQLite :
sqlite> sélectionnez 10 - 20;
10 - 20 = -10
sqlite> sélectionnez 10 * 20;
10 * 20 = 200
sqlite> sélectionnez 10 / 5;
10 / 5 = 2
sqlite> sélectionnez 12 % 5 ;
12 % 5 = 2
Supposons que la variable a=10, la variable b=20, puis :
Exemple
Supposons que la table COMPANY contienne les enregistrements suivants : ---- ---------- ---------- ------- ---
1 0,05 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Les exemples suivants démontrent l'utilisation de divers opérateurs de comparaison SQLite.
Ici, nous utilisons la clause WHERE , qui sera expliquée dans un chapitre séparé plus tard, mais vous devez maintenant comprendre que la clause WHERE est utilisée pour définir les conditions de l'instruction SELECT déclaration.
L'instruction SELECT suivante répertorie tous les enregistrements avec SALARY supérieur à 50 000,00 :
ID AGE ADDRESS SALARY
---------- ---------- ---------- ----------- -------- - -
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
L'instruction SELECT suivante répertorie tous les enregistrements où SALARY est égal à 20 000,00 :
ID NOM ÂGE ADRESSE SALAIRE
-------------- ---------- ------- --- ---- ---------- --------------
1 Paul 32 Californie 20000.0
3 Teddy 23 Norvège 200 00.0
L'instruction SELECT suivante répertorie tous les enregistrements où SALARY n'est pas égal à 20 000,00 :
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
L'instruction SELECT suivante répertorie tous les enregistrements où SALARY n'est pas égal à 20 000,00 :
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
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
Opérateurs logiques SQLite
Ce qui suit est une liste de tous les opérateurs logiques dans SQLite.
运算符 | 描述 |
---|---|
AND | AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。 |
BETWEEN | BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。 |
EXISTS | EXISTS 运算符用于在满足一定条件的指定表中搜索行的存在。 |
IN | IN 运算符用于把某个值与一系列指定列表的值进行比较。 |
NOT IN | IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。 |
LIKE | LIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。 |
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 运算符搜索指定表中的每一行,确保唯一性(无重复)。 |
Exemple
Supposons que la table COMPANY contienne les enregistrements suivants : ---- ---------- ---------- ------- ---
1 0,05 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
L'exemple suivant démontre l'utilisation des opérateurs logiques SQLite.
L'instruction SELECT suivante répertorie tous les enregistrements où AGE est supérieur ou égal à 25 et le salaire est supérieur ou égal à 65 000,00 :
ID ----------------------
4 Mark 25 Rich- Mond 65000.0
5 David 27 Texas 85000.0
L'instruction SELECT répertorie tous les enregistrements avec AGE supérieur ou égal à 25
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OU SALAIRE >= 65000;
ID NOM ÂGE ADRESSE SALAIRE2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
L'instruction SELECT suivante répertorie tous les enregistrements dont AGE n'est pas NULL. Le résultat affiche tous les enregistrements, ce qui signifie qu'aucun enregistrement n'a un AGE égal à NULL :
ID NOM ÂGE ADRESSE SALAIRE
---------- ---------- ---------- ---- ------ ---- ------ ----------
1 Paul 32 Californie 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norvège 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
L'instruction SELECT suivante répertorie tous les enregistrements dont le NOM commence par 'Ki'. Les caractères après 'Ki' ne sont pas restreints :
6 Kim 22 South-Hall 45000.0
SQLite & GT ; Select*from Company which name glob 'ki*' ---- ----------; ---------- ---------- ----------
Le L'instruction SELECT suivante répertorie tous les enregistrements avec une valeur AGE de 25 ou 27 :
ID ------ - ---------
2 Allen 25 Texas 15000.0> ---------
1 Paul 32 Californie 20000.0
3 Teddy 23 Norvège 20000.0L'instruction SELECT suivante répertorie tous les enregistrements dont la valeur AGE est comprise entre 25 et 27 :
sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27 ADDRESS SALARY
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0L'instruction SELECT suivante utilise une sous-requête SQL. La sous-requête recherche tous les enregistrements avec des champs AGE dans SALARY > 65000. La clause WHERE suivante est utilisée avec l'opérateur EXISTS pour répertorier les AGE dans la requête externe qui existent dans Tous les enregistrements dans le résultats renvoyés par la sous-requête :
WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
AGE
- ---- -----
32
25
23
25
27
22
24
L'instruction SELECT suivante utilise la sous-requête SQL. La sous-requête recherche tous les enregistrements avec le champ AGE dans SALARY > 65000. La clause WHERE suivante est utilisée avec l'opérateur > pour répertorier l'AGE dans la requête externe qui est supérieur aux résultats renvoyés par la sous-requête :
WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID NOM AGE ---------- -- -------- ---------- ---------- ----------
1 Paul 32 Californie 20000.0
Supposons que si A = 60 et B = 13, maintenant au format binaire, ils ressemblent à ceci :
A = 0011 1100
B = 0000 1101
------------------
A&B = 0000 1100
A|B = 0011 1101
~A = 1100 0011
Le tableau suivant répertorie les opérateurs au niveau du bit pris en charge par le langage SQLite. Supposons que la variable A=60 et la variable B=13, alors :
运算符 | 描述 | 实例 |
---|---|---|
& | 如果同时存在于两个操作数中,二进制 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 |
Exemple
L'exemple suivant montre l'utilisation des opérateurs de bits SQLite :
sqlite> sélectionnez 60 | 13;
60 | 13
sqlite> ; sélectionnez 60 ^ 13;
10 * 20 = 200
sqlite> sélectionnez (~60);
(~60) = -61
sqlite> (60 << 2);
(60 << 2) = 240
sqlite> select (60 >> 2);
(60 >> 2 ) = 15