Tutoriel classi...login
Tutoriel classique SQLite
auteur:php.cn  temps de mise à jour:2022-04-13 17:05:02

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> 20 = 30


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

Opérateur de comparaison SQLite

Supposons que la variable a=10, la variable b=20, puis :

Exemple

Supposons que la table COMPANY contienne les enregistrements suivants : ---- ---------- ---------- ------- ---

1                                                                                                                                                                                            0,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

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 :

sqlite> SELECT * FROM COMPANY WHERE SALARY > 50000;
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 :

sqlite> SELECT * FROM COMPANY WHERE SALARY = 20000;
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 :

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

L'instruction SELECT suivante répertorie tous les enregistrements où SALARY n'est pas égal à 20 000,00 :

sqlite> SELECT * FROM COMPANY WHERE 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 avec SALARY supérieur ou égal à 65 000,00 :

sqlite> SELECT * FROM COMPANY WHERE SALARY >= 65000;
ID     AGE ADDRESS SALARY
--------- ---------- ---------- ---------- ------- ---
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.

运算符描述
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 运算符搜索指定表中的每一行,确保唯一性(无重复)。

Exemple

Supposons que la table COMPANY contienne les enregistrements suivants : ---- ---------- ---------- ------- ---

1                                                                                                                                                                                            0,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'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 :

sqlite> * DE L'ENTREPRISE OÙ ÂGE> ;= 25 ET SALAIRE >= 65000;
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
ou
salaire supérieur ou égal à 65000.00 :

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OU SALAIRE >= 65000;

ID NOM ÂGE ADRESSE SALAIRE
-------------- --------- -- --- ----------
1 Paul 32 Californie 20000.0
2 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 :

sqlite> L'ÂGE N'EST PAS 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 :

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

L'instruction SELECT suivante répertorie tous les enregistrements dont le NOM commence par 'Ki', Le les caractères après 'ki' ne limitent pas les caractères :

SQLite & GT ; Select*from Company which name glob 'ki*' ---- ----------; ---------- ---------- ----------
6 Kim 22 South-Hall 45000.0


Le L'instruction SELECT suivante répertorie tous les enregistrements avec une valeur AGE de 25 ou 27 :
sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );

ID                                                                                                                                                                                                                     ------ - ---------

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

>                                                                                                                                                                                                                  ---------

1 Paul 32 Californie 20000.0

3 Teddy 23 Norvège 20000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0


L'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
----- ----- ---------- ---------- ---------- ----- -----
2 Allen 25 Texas 15000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

L'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 :

sqlite> SELECT AGE FROM COMPANY
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 :

sqlite> SELECT * FROM COMPANY
WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID NOM AGE ---------- -- -------- ---------- ---------- ----------
1 Paul 32 Californie 20000.0
Opérateurs au niveau du bit SQLite

Les opérateurs au niveau du bit agissent sur les bits et effectuent des opérations petit à petit. La table de vérité & et | sont les suivantes :

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> ; .mode ligne
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