« MySQL/Opérateurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Mieux vaut présenter les opérateurs avant leur ordre
Ligne 2 :
 
MySQL propose plus que les standards des opérateurs SQL. Ils peuvent être utilisés pour rédiger des expressions contenant des constantes, variables, valeurs contenues dans des champs ou autres expressions.
 
== Précédence ==
=== Précédence des opérateurs ===
Du plus au moins prioritaire :
<source lang=sql>
INTERVAL
BINARY, COLLATE
!
-, ~
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
&&, AND
XOR
||, OR
:=
</source>
 
Modificateurs :
* ''PIPES_AS_CONCAT'' : si activé, || est prioritaire sur ^, mais - et ~ le reste sur ||.
* ''HIGH_NOT_PRECEDENCE'' : si activé, <code>NOT</code> est au niveau de !.
 
=== Utilisation des parenthèses ===
Tout comme en mathématiques, les parenthèses permettent d'évaluer des sous-expressions avant d'autres :
<source lang=sql>
SELECT 1 + 1 * 5 -- = 6
SELECT (1 + 1) * 5 -- = 10
</source>
 
Cela peut aussi se faire pour rendre les requêtes plus lisibles aux humains :
<source lang=sql>
SELECT 1 + (2 * 5)
</source>
 
== Opérateurs d'assignation ==
Ligne 410 ⟶ 371 :
<source lang=sql>
SELECT 1 >> 2 -- 0
</source>
 
== Conditions ==
La structure <code>IF ... THEN ... ELSE ... END IF;</code> ne fonctionne que dans les procédures stockées. Pour gérer une condition en dehors d'elles, on peut utiliser<ref>http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html</ref> :
# <code>IF(condition, siVraie, siFausse);</code>
# <code>SELECT CASE WHEN condition THEN siVraie ELSE siFausse END;</code>
 
== Précédence ==
=== Précédence des opérateurs ===
Du plus au moins prioritaire :
<source lang=sql>
INTERVAL
BINARY, COLLATE
!
-, ~
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
&&, AND
XOR
||, OR
:=
</source>
 
Modificateurs :
* ''PIPES_AS_CONCAT'' : si activé, || est prioritaire sur ^, mais - et ~ le reste sur ||.
* ''HIGH_NOT_PRECEDENCE'' : si activé, <code>NOT</code> est au niveau de !.
 
=== Utilisation des parenthèses ===
Tout comme en mathématiques, les parenthèses permettent d'évaluer des sous-expressions avant d'autres :
<source lang=sql>
SELECT 1 + 1 * 5 -- = 6
SELECT (1 + 1) * 5 -- = 10
</source>
 
Cela peut aussi se faire pour rendre les requêtes plus lisibles aux humains :
<source lang=sql>
SELECT 1 + (2 * 5)
</source>