Partie I
SQL de base
106
© Éditions Eyrolles
Pour preuve, le script suivant ne renvoie aucune erreur :
CREATE TABLE
Test (c1 DECIMAL(6,3), c2 DATE
,c3 VARCHAR(1), c4
CHAR);
INSERT INTO Test VALUES ('548.45', '20060116', 3, 5);
Explicites
Une conversion est dite « explicite » quand on utilise une fonction à cet effet. Les fonctions de
conversion les plus connues sont CAST et CONVERT (qui respectent la syntaxe de la norme
SQL).
Les fonctions de conversion sont décrites dans le tableau suivant :
Comparaisons
MySQL compare deux variables entre elles en suivant les règles suivantes :
• Si l’une des deux valeurs est NULL, la comparaison retourne NULL (sauf pour l’opérateur
<=> qui renvoie vrai si les deux valeurs sont NULL).
• Si les deux valeurs sont des chaînes, elles sont comparées en tant que telles.
• Si les deux valeurs sont des numériques, elles sont comparées en tant que telles.
• Les valeurs hexadécimales sont traitées comme des chaînes de bits si elles ne sont pas
comparées à des numériques.
• Si l’une des valeurs est TIMESTAMP ou DATETIME et si l’autre est une constante, cette dernière est convertie en TIMESTAMP.
• Dans les autres cas, les valeurs sont comparées comme des numériques (flottants).
Tableau 4-21 Fonctions de conversion
Fonction
Conversion
Exemple
BINARY(expr)
L’expression en bits.
Pour le premier pilote de notre dernier
exemple, le test
=
renverra faux.
CAST(expression
AS typeMySQL )
L’expression dans le type en paramètre (BINARY, CHAR, DATE,
DATETIME, DECIMAL, SIGNED,
TIME, UNSIGNED).
retourne '2'.
CONVERT(c, jeucar)
La chaîne c dans le jeu de caractères passé en paramètre.
jeu de caractère DOS, retourne
"? Ê Í ?".
BINARY(brevet)
BINARY('pl-1')
CAST(2 AS CHAR)
CONVERT('Ä Ê Í Ø' USING
cp850)
SQL de base
106
© Éditions Eyrolles
Pour preuve, le script suivant ne renvoie aucune erreur :
CREATE TABLE
Test (c1 DECIMAL(6,3), c2 DATE
,c3 VARCHAR(1), c4
CHAR);
INSERT INTO Test VALUES ('548.45', '20060116', 3, 5);
Explicites
Une conversion est dite « explicite » quand on utilise une fonction à cet effet. Les fonctions de
conversion les plus connues sont CAST et CONVERT (qui respectent la syntaxe de la norme
SQL).
Les fonctions de conversion sont décrites dans le tableau suivant :
Comparaisons
MySQL compare deux variables entre elles en suivant les règles suivantes :
• Si l’une des deux valeurs est NULL, la comparaison retourne NULL (sauf pour l’opérateur
<=> qui renvoie vrai si les deux valeurs sont NULL).
• Si les deux valeurs sont des chaînes, elles sont comparées en tant que telles.
• Si les deux valeurs sont des numériques, elles sont comparées en tant que telles.
• Les valeurs hexadécimales sont traitées comme des chaînes de bits si elles ne sont pas
comparées à des numériques.
• Si l’une des valeurs est TIMESTAMP ou DATETIME et si l’autre est une constante, cette dernière est convertie en TIMESTAMP.
• Dans les autres cas, les valeurs sont comparées comme des numériques (flottants).
Tableau 4-21 Fonctions de conversion
Fonction
Conversion
Exemple
BINARY(expr)
L’expression en bits.
Pour le premier pilote de notre dernier
exemple, le test
=
renverra faux.
CAST(expression
AS typeMySQL )
L’expression dans le type en paramètre (BINARY, CHAR, DATE,
DATETIME, DECIMAL, SIGNED,
TIME, UNSIGNED).
retourne '2'.
CONVERT(c, jeucar)
La chaîne c dans le jeu de caractères passé en paramètre.
jeu de caractère DOS, retourne
"? Ê Í ?".
BINARY(brevet)
BINARY('pl-1')
CAST(2 AS CHAR)
CONVERT('Ä Ê Í Ø' USING
cp850)
