Les quatre opérateurs de MySQL
- Un, les opérateurs arithmétiques
- Deuxièmement, l'opérateur de comparaison
- Trois opérateurs logiques
- Opérateur quatre bits
- Cinq, la priorité des opérateurs
Un, les opérateurs arithmétiques
Les opérateurs arithmétiques pris en charge par MySQL.
Opérateur | Commentaire |
---|---|
+ | une addition |
- | Soustraction |
* | multiplication |
/ | division |
% | Prends le reste |
Exemples d'utilisation
mysql> select 1+2,5-3,3*4,4/3,7%2;
+-----+-----+-----+--------+------+
| 1+2 | 5-3 | 3*4 | 4/3 | 7%2 |
+-----+-----+-----+--------+------+
| 3 | 2 | 12 | 1.3333 | 1 |
+-----+-----+-----+--------+------+
1 row in set (0.00 sec)
1) Dans l'opération de division et l'opération de reste, le diviseur ne peut pas être 0. Si le diviseur est O, le résultat renvoyé est NULL. Il est à noter que s'il y a plusieurs opérateurs, les opérations sont effectuées selon la priorité de multiplication et de division suivie de l'addition et de la soustraction.Les opérateurs de même priorité ne sont pas dans l'ordre.
2) Il existe une autre situation dans la valeur du champ MySQL. Certains champs de type chaîne stockent des chaînes numériques. Ces champs seront automatiquement convertis en valeurs numériques lors des opérations arithmétiques. Si le début de la chaîne est un nombre, il sera converti en ce nombre lors de la conversion. S'il s'agit d'une chaîne mixte contenant à la fois des caractères et des nombres, elle sera convertie en 0 si elle ne peut pas être convertie en nombre. Ces détails nécessitent plus d'attention lors de l'exécution d'opérations arithmétiques.
Deuxièmement, l'opérateur de comparaison
Les opérateurs de comparaison sont un type d'opérateurs souvent utilisés lors de l'interrogation d'enregistrements de données. En utilisant l'opérateur de comparaison, vous pouvez déterminer quels enregistrements de la table sont éligibles. Si le résultat de la comparaison est vrai, il renvoie 1, s'il est faux, il renvoie 0. Si le résultat de la comparaison est incertain, il renvoie NULL. Les chaînes sont insensibles à la casse par défaut lors de la comparaison.
Opérateurs de comparaison couramment utilisés par MySQL
Opérateur | Commentaire |
---|---|
= | égal |
> | plus que le |
< | Moins que |
<= | Inférieur ou égal à |
> = | supérieur ou égal à |
! = ou <> | pas égal à |
EST NULL | Déterminer si une valeur est NULL |
EST NON NULLE | Déterminer si une valeur n'est pas NULL |
ENTRE ET | Entre les deux |
DANS | Dans la collection |
COMME | Correspondance générique, requête floue |
LE PLUS GRAND | Renvoie la valeur maximale de deux paramètres ou plus |
MOINS | Renvoie la valeur minimale de deux paramètres ou plus |
1. Égal à l'opérateur
"=" est utilisé pour juger si les nombres, les chaînes et les expressions sont égaux. S'ils sont égaux, il renvoie 1, et s'ils ne sont pas égaux, il renvoie 0. Si l'une des deux comparaisons est NULL, le résultat de la comparaison est NULL. Parmi eux, la comparaison des caractères est jugée selon le code ASCII. Si le code ASCII est égal, cela signifie que les deux caractères sont identiques; si le code ASCII n'est pas égal, cela signifie que les deux caractères ne sont pas identiques.
- Valeur ASCII I couramment utilisée
Exemples d'utilisation
mysql> select 5=5,'e'='e',(2+6)=(3+5),6='6',4=null;
+-----+---------+-------------+-------+--------+
| 5=4 | 'a'='e' | (2+6)=(3+5) | 6='6' | 4=null |
+-----+---------+-------------+-------+--------+
| 0 | 0 | 1 | 1 | NULL |
+-----+---------+-a------------+-------+--------+
1 row in set (0.00 sec)
Remarque
1) Si les deux sont des entiers, la comparaison est effectuée en fonction de la valeur entière.
2) Si un entier est une chaîne et que la valeur du champ est du même type, la chaîne sera automatiquement convertie en nombre puis comparée.
3) Si les deux sont des chaînes, comparez-les en fonction des chaînes.
4) Si au moins une des deux valeurs est NULL, le résultat de la comparaison est NULL.
2. Pas égal à opérateur
Il existe deux façons d'écrire le signe d'inégalité, à savoir <> ou =, qui est utilisé pour comparer des nombres, des chaînes et des expressions qui ne sont pas égaux.
S'il n'est pas égal, il renvoie 1, et s'il est égal, il renvoie 0, ce qui est exactement l'opposé de la valeur de retour d'égale. Il convient de noter que l'
opérateur inégale ne peut pas être utilisé pour juger NULL.
Exemples d'utilisation
mysql> select 3<>3,4!='a','abc'!='cba',0<>null;
+------+--------+--------------+---------+
| 3<>3 | 4!='a' | 'abc'!='cba' | 0<>null |
+------+--------+--------------+---------+
| 0 | 1 | 1 | NULL |
+------+--------+--------------+---------+
1 row in set, 1 warning (0.00 sec)
3. Supérieur, supérieur ou égal à, inférieur, inférieur ou égal aux opérateurs
- L'opérateur supérieur à (>) est utilisé pour déterminer si l'opérande de gauche est supérieur à l'opérande de droite. S'il est supérieur, il renvoie 1, sinon il renvoie 0. Il ne peut pas être utilisé pour déterminer NULL.
- L'opérateur inférieur à (<) est utilisé pour déterminer si l'opérande de gauche est inférieur à l'opérande de droite. S'il est inférieur, il renvoie 1; sinon, il renvoie 0 et ne peut pas être utilisé pour juger NULL.
- Supérieur ou égal (> =) pour déterminer si l'opérande de gauche est supérieur ou égal à l'opérande de droite, s'il est supérieur ou égal à 1, il renvoie 1, sinon il renvoie 0 et ne peut pas être utilisé pour déterminer NULL.
- Inférieur ou égal (<=) pour déterminer si l'opérande de gauche est inférieur ou égal à l'opérande de droite, s'il est inférieur ou égal à 1, il renvoie 1, sinon il retourne et ne peut pas être utilisé pour juger NULL.
Exemples d'utilisation
mysql> select 5>2,'a'>4,'b'<'a','abc'< 'baa',null<9,(5+3)<=(6+8);
+-----+-------+---------+--------------+--------+--------------+
| 5>2 | 'a'>4 | 'b'<'a' | 'abc'< 'baa' | null<9 | (5+3)<=(6+8) |
+-----+-------+---------+--------------+--------+--------------+
| 1 | 0 | 0 | 1 | NULL | 1 |
+-----+-------+---------+--------------+--------+--------------+
1 row in set, 1 warning (0.00 sec)
//字符串做比较时默认只会比较第一个字符的的大小。
//不同类型的字段类型无法比较,返回值为0
4. IS NULL, IS NOTNULL opérateurs
IS NULL détermine si une valeur est NULL, renvoie 1 si elle est NULL, sinon renvoie 0
IS NOT NULL juge si une valeur n'est pas NULL, renvoie 1 si elle n'est pas NULL, sinon renvoie 0
Exemples d'utilisation
mysql> select 2 IS NULL,'' IS NOT NULL,NULL IS NULL,0 IS NULL;
+-----------+----------------+--------------+-----------+
| 2 IS NULL | '' IS NOT NULL | NULL IS NULL | 0 IS NULL |
+-----------+----------------+--------------+-----------+
| 0 | 1 | 1 | 0 |
+-----------+----------------+--------------+-----------+
1 row in set (0.00 sec)
//空值不等于NULL。空值虽然不占用空间,但是也表示一个值。
//NULL虽然占用空间,但是不表示一个值,只表示一个NULL对象。
5. ENTRE ET opérateur
L'opération de comparaison BETWEENAND est généralement utilisée pour déterminer si une valeur se situe entre deux valeurs. Peut être utilisé pour déterminer si un entier ou l'anglais se situe entre un certain nombre ou une certaine lettre.
Exemples d'utilisation
mysql> select 5 between 2 and 8,'a' between 'a' and 'b',6 between 1 and 6,'a' between 'b' and 'z';
+-------------------+-------------------------+-------------------+-------------------------+
| 5 between 2 and 8 | 'a' between 'a' and 'b' | 6 between 1 and 6 | 'a' between 'b' and 'z' |
+-------------------+-------------------------+-------------------+-------------------------+
| 1 | 1 | 1 | 0 |
+-------------------+-------------------------+-------------------+-------------------------+
1 row in set (0.00 sec)
// between对于取值之间的头尾是包含的。类似与小于等于和大于等于。
6, MOINS, PLUS GRAND opérateur
MOINS: Lorsqu'il y a deux paramètres ou plus, la valeur minimale est renvoyée. Si l'une des valeurs est NULL, le
résultat renvoyé est NULL.
GREATEST: lorsqu'il y a deux paramètres ou plus, la valeur maximale est renvoyée. Si l'une des valeurs est NULL
, le résultat renvoyé est NULL.
Exemples d'utilisation
mysql> select least(1,2,3,3.1),least('a','b','c'),least('a',5,'b'),least(1,4,8);
+------------------+--------------------+------------------+--------------+
| least(1,2,3,3.1) | least('a','b','c') | least('a',5,'b') | least(1,4,8) |
+------------------+--------------------+------------------+--------------+
| 1.0 | a | 0 | 1 |
+------------------+--------------------+------------------+--------------+
1 row in set, 2 warnings (0.00 sec)
//least :可以比较整数类型和浮点型的最小值,输出类型自动转换为浮点型的最小值。
//least:不能比较整数和字符串类型的最小值。
mysql> select greatest('a','c',5),greatest(4,5,7),greatest(4.5,5,7),greatest('a','y','b');
+---------------------+-----------------+-------------------+-----------------------+
| greatest('a','c',5) | greatest(4,5,7) | greatest(4.5,5,7) | greatest('a','y','b') |
+---------------------+-----------------+-------------------+-----------------------+
| 5 | 7 | 7.0 | y |
+---------------------+-----------------+-------------------+-----------------------+
1 row in set, 2 warnings (0.00 sec)
//greatest:可以比较整数类型和浮点型的最大值,输出类型自动转换为浮点型的最大值
//greatest:可以比较整数型和字符型的最大值,但是会将字符串类型的值忽略不参与比较
7, IN, opérateur NOTIN
IN: Détermine si une valeur est dans la liste correspondante, si elle est 1, elle renvoie 1, sinon elle renvoie 0.
NOT IN: Détermine si une valeur n'est pas dans la liste correspondante, si ce n'est pas le cas, elle renvoie 1, sinon elle renvoie 0
Exemples d'utilisation
mysql> select 'a' in ('a','b', 'c'),'c' not in ('a','b','c');
+-----------------------+--------------------------+
| 'a' in ('a','b', 'c') | 'c' not in ('a','b','c') |
+-----------------------+--------------------------+
| 1 | 0 |
+-----------------------+--------------------------+
1 row in set (0.00 sec)
Opérateurs 8, LIKE, NOTLIKE
LIKE est utilisé pour faire correspondre des chaînes, si la correspondance est réussie, il renvoie 1, sinon il retourne 0. LIKE prend en charge deux caractères génériques: «%» est utilisé pour correspondre à n'importe quel nombre de caractères, et «_ »ne peut correspondre qu'à un seul caractère.
NOT LIKE est juste l'opposé de LIKE. Si aucune correspondance n'est réussie, il renvoie 1, sinon il renvoie 0
Exemples d'utilisation
mysql> select 'abc' like 'a%',12 like '1_' ,35 not like '3_67','ac'not like '__';
+-----------------+--------------+--------------------+-------------------+
| 'abc' like 'a%' | 12 like '1_' | 35 not like '3_67' | 'ac'not like '__' |
+-----------------+--------------+--------------------+-------------------+
| 1 | 1 | 1 | 0 |
+-----------------+--------------+--------------------+-------------------+
1 row in set (0.00 sec)
Trois opérateurs logiques
Les opérateurs logiques sont également appelés opérateurs booléens. Ils sont généralement utilisés pour déterminer si une expression est vraie ou fausse. Si elle est vraie, elle renvoie 1, sinon elle renvoie 0. Vrai et faux peuvent également être représentés par TRUE et FALSE.
Il y a quatre opérateurs logiques pris en charge dans MySQL
Opérateur | Commentaire |
---|---|
PAS ou! | Négation logique |
ET 或 && | Logique et |
OU 或 II | OU logique |
XOR | OU exclusif logique |
- Façon de comprendre
1表示为真TURE,0表示为假FALSE
逻辑非 1!= 0 0!= 1
真的为假,假的为真
逻辑与 0&&0=0 1&&0=0 0&&!=0 1&&1=1
两个条件都为真为真,两个为假为假
逻辑或 0||0=0 1||0=1 0||1=1 1||1=1
两个条件有一个为真则为真,两个为假为假
逻辑异或 0xor0=0 1xor0=1 0&&1=1 1xor1=0
两个条件一个为真即为真,两个为真或两个为假为假
1. Négation logique
L'opérateur le plus simple des opérateurs logiques est la négation logique, qui est représentée par NOT ou!.
Exemple d'opération
mysql> select not 2,!3,not 0,!(4%2),!NULL;
+-------+----+-------+--------+-------+
| not 2 | !3 | not 0 | !(4%2) | !NULL |
+-------+----+-------+--------+-------+
| 0 | 0 | 1 | 1 | NULL |
+-------+----+-------+--------+-------+
1 row in set (0.00 sec)
- La négation logique annule le test logique qui le suit, devenant vrai en faux et faux en vrai.
1) Si l'opérande suivant NOT est 0, la valeur résultante est 1;
2) Si l'opérande est différent de zéro, la valeur résultante est 0;
3) Si l'opérande est NULL, la valeur résultante est NULL.
2. ET logique
Le ET logique est généralement utilisé pour juger de la validité de deux valeurs ou plus, et le ET logique est représenté par ET ou &&
Exemple d'opération
mysql> select 2 and 5,6 && 0,0&&NULL,1 and NULL;
+---------+--------+---------+------------+
| 2 and 5 | 6 && 0 | 0&&NULL | 1 and NULL |
+---------+--------+---------+------------+
| 1 | 0 | 0 | NULL |
+---------+--------+---------+------------+
1 row in set (0.00 sec)
- Logic AND juge le test logique, toutes les valeurs renvoyées sont true return true, sinon retournent false.
La signification de NULL dans le jugement logique
NULL ne signifie pas que 0 ou 1 est vrai ou faux. Lorsque la condition de jugement ne peut pas être jugée vraie ou fausse en raison de l'existence de NULL, elle renvoie une valeur NULL
Analyse des conditions | && | II | xor |
---|---|---|---|
1 et NULL | NUL | 1 | 1 |
NULL et 1 | NUL | 1 | 1 |
0 et NULL | 0 | NUL | NUL |
NULL et 0 | 0 | NUL | NUL |
NULL et NULL | NUL | NUL | NUL |
3. OU logique
OU logique signifie deux valeurs ou plus, dont l'une quelconque est différente de zéro, c'est-à-dire qu'elle renvoie vrai. OU logique est représenté par || ou OU
Exemple d'opération
MySQL 5.6 识别 “||” 符号的或运算符
mysql> select 4||5,6 or 0,0||5;
+------+--------+------+
| 4||5 | 6 or 0 | 0||5 |
+------+--------+------+
| 45 | 1 | 05 |
+------+--------+------+
1 row in set (0.00 sec)
MySQL 5.7 不识别 “||” 符号的或运算符,5.7逻辑与判断的时候建议都使用 “or” 或运算符
mysql> select 4||5,6 or 0,0||5;
+------+--------+------+
| 4||5 | 6 or 0 | 0||5 |
+------+--------+------+
| 45 | 1 | 05 |
+------+--------+------+
1 row in set (0.00 sec)
4. XOR logique
Opérandes avec deux valeurs quelconques, si les deux sont 0 ou les deux sont différents de zéro, retournent 0; si l'un est 0 et l'autre est différent de zéro, le résultat renvoyé est 1; lorsque l'une ou l'autre des valeurs est NULL, la valeur de retour Est NULL. OU exclusif logique est représenté par "xor"
Exemple d'opération
mysql> select 5 xor 6,0 xor 0,0 xor 5;
+---------+---------+---------+
| 5 xor 6 | 0 xor 0 | 0 xor 5 |
+---------+---------+---------+
| 0 | 0 | 1 |
+---------+---------+---------+
1 row in set (0.00 sec)
Opérateur quatre bits
Les opérateurs de bits sont en fait des opérateurs qui effectuent des calculs sur des nombres binaires .
Les opérations au niveau du bit dans MySQL convertiront d'abord les opérandes au format binaire, puis effectueront des opérations au niveau du bit, et enfin convertiront le résultat du calcul du format binaire au format décimal pour que les utilisateurs puissent le visualiser.
MySQL prend en charge 6 opérateurs bit à bit
Opérateur de bits | Commentaire |
---|---|
& | Bitwise et |
je | Bitwise ou |
~ | Négation au niveau du bit |
^ | XOR au niveau du bit |
<< | Décalage de bits vers la gauche |
>> | Décalage de bits à droite |
Exemple d'opération
- ET au niveau du bit, OU, XOR, négation
mysql> select 15&5,8|5,5^10,10&~1;
+------+-----+------+-------+
| 15&5 | 8|5 | 5^10 | 10&~1 |
+------+-----+------+-------+
| 5 | 13 | 15 | 10 |
+------+-----+------+-------+
1 row in set (0.00 sec)
运算过程 15&5 8|5 5^10 10&~1
第一步转换为二进制 15=1111 5=101 8=1000 5=101 5=101 10=1010 10=1010 1=1
第二步将二进制数一位一位对其进行运算符判断,对其方式为右对其向左补零。 ~1=1110
15=1111 8=1000 5=0101 10=1010
5=0101 5=0101 10=1010 ~1=1110
得到 0101=5 1101=13 1111=15 1010=10
-
Opération ET au niveau du bit (&), les bits binaires correspondants sont tous 1, et leur résultat d'opération est 1, sinon il est 0.
-
L'opération OU au niveau du bit (|) signifie qu'un ou deux des bits binaires correspondants valent 1 et que le résultat de l'opération est 1, sinon il vaut 0.
-
Opération XOR au niveau du bit (^), lorsque les bits binaires correspondants ne sont pas les mêmes, le résultat de l'opération est 1, sinon il vaut 0.
-
L'inversion au niveau du bit (~) signifie que le nombre binaire correspondant est inversé bit par bit, c'est-à-dire qu'après 1 est inversé, il devient 0, et après 0 est inversé, il devient 1. Il est généralement utilisé en combinaison avec d'autres opérations sur les bits, et la valeur est inversée en premier Compléter par une autre valeur exécute d'autres opérations d'opérateur au niveau du bit.
-
Décalage de bits à gauche, à droite
mysql> select 5<<2,2<<5,15>>3,25>>5;
+------+------+-------+-------+
| 5<<2 | 2<<5 | 15>>3 | 25>>5 |
+------+------+-------+-------+
| 20 | 64 | 1 | 0 |
+------+------+-------+-------+
1 row in set (0.00 sec)
向左位移过程 5<<2
转换为二进制 5=101
将5的二进制数整体向左移动两个位置空出来的补零得到 10100
转换为十进制为25
向右位移的过程 15>>3
转换为二进制 15=1111
将15的二进制数整体向右移动三个位置,移出的数丢弃得到 1
转换为十进制为1
Remarque : L'opérateur de décalage vers la gauche ou de décalage vers la droite consiste à convertir le nombre en binaire, puis à décaler le nombre spécifié de chiffres vers la gauche ou la droite, les chiffres en excès seront supprimés et ignorés, et le poste vacant sera rempli par 0 .
Cinq, la priorité des opérateurs
Les opérateurs ont des problèmes d'utilisation prioritaires. La priorité des opérateurs détermine l'ordre des différents opérateurs dans le processus de calcul. Les opérateurs avec des niveaux plus élevés seront calculés en premier. Si les opérateurs sont du même niveau, MySQL effectuera les calculs dans l'ordre de gauche à droite. Si vous n'êtes pas sûr de la priorité de l'opérateur utilisé, vous pouvez utiliser () pour modifier la priorité.