LOGO Lionel Groulx

Site Web du cours « Programmation de Systèmes »

MySQL Chapitre 5 : Fonctions Utiles

5.1. Calculs utiles de base

5.1.1.Somme

SELECT SUM(macolonne) AS nom_alias FROM Ma_table

5.1.2.Minimum

SELECT MIN(macolonne) AS nom_alias FROM Ma_table

5.1.3.Maximum

SELECT MAX(macolonne) AS nom_alias FROM Ma_table

5.1.4.Moyenne

SELECT AVG(macolonne) AS nom_alias FROM Ma_table

5.2. Conversion de type (“cast”)

Pour convertir une chaîne de caractères en un autre type à préciser.

SELECT CAST('870303' AS DATE);

Types possibles : BINARY, CHAR, DATE, DATETIME, TIME, UNSIGNED (sous-entendu INT), SIGNED (sous-entendu INT), DECIMAL

5.3. Opérations mathématiques

CEIL()

Arrondi supérieur d’un nombre décimal

FLOOR()

Arrondi inférieur

ROUND()

Arrondi

TRUNCATE()

Troncature (inférieur si positif, supérieur si négatif)

POW(n,e)

n exposant e

SQRT ()

racine

RAND()

Pseudo-aléatoire entre  0 et 1

SIGN()

-1 si négatif, 0 si nul, 1 si positif

ABS()

Valeur absolue

MOD (a,b)

Modulo de a par b

 

5.4. Fonctions sur les chaînes de caractères

BIT_LENGTH (chaîne)

Nombre de bits dans ma chaîne

CHAR_LENGTH(chaîne)

Nombre de caractères

LENGTH(chaîne)

Nombre d’octets (certains caractères prennent plusieurs octets)

STRCMP(chaine1,chaine2)

Compare 2 chaînes,

retourne 0 si identiques,

-1 si la première est devant en ordre alphabétique

1 sinon

REPEAT(chaine,n)

Répète la chaine n fois

LPAD(chaine,n,caractere)

Raccourcit/rallonge une chaine de caractères à la dimension indiquée par n, si la chaine est trop courte, elle est comblée par la gauche avec le caractère indiqué.

RPAD(chaine,n,caractere)

Raccourcit/rallonge une chaine de caractères à la dimension indiquée par n, si la chaine est trop courte, elle est comblée par la droite avec le caractère indiqué.

TRIM(chaine)

Enlève les espaces commençant et finissant ma chaîne de caractères

TRIM(caractere FROM chaine)               

Enlève tous les caractères indiqués contenus dans ma chaîne

SUBSTRING(chaine, pos, long)

Retourne une chaine de caractère prise dans la chaine, à partir de la position fournie, jusqu’à la fin ou de la longueur indiquée (si long est précisé).

POSITION (chaine1 IN chaine2)

Recherche la chaine1 dans la chaine2.

Si non trouvée, retourne 0

Sinon, retourne la position du premier caractère commun dans chaine1

REPLACE(chaine1,chaine2,

chaine3)

Remplace dans chaine1 la chaine2 par la chaine3

CONCAT (chaine1,chaine2,…)

Concatène et retourne le résultat

 

5.5. Fonctions sur les DATE et TIME

NOW()

Date et Heure actuelles

CURDATE()

Date actuelle seule

CURTIME()

Heure actuelle seule

DATE_ADD(dateTime, INTERVAL nb unite)

Ajoute nb unités de temps à la date donnée

Ex : DATE_ADD(maDate, INTERVAL 7 WEEK);

DATE_SUB

Voir ci-dessus

ADDTIME(dateTime1, dateTime2)

Ajoute les 2 dates

SUBTIME(dateTime1, dateTime2)

Soustrait la date2 à la date1

DATEDIFF(dateTime1, dateTime2)

Retourne le nombre de jours entre les 2 dates.

TIMEDIFF(dateTime1, dateTime2)

Retourne un TIME égal à la différence entre les 2

 

Se rappeler que les comparateurs d’égalité et inégalité fonctionnent aussi pour les DATE, TIME et DATETIME.

5.6. Compter les enregistrements

SELECT COUNT(*) AS nom_alias

FROM MaTable;

Retourne le nombre de lignes total dans MaTable.

SELECT COUNT(maColonne) AS nom_alias

FROM MaTable;

Retourne le nombre de lignes qui ne sont pas NULL dans la colonne maColonne dans MaTable.

SELECT COUNT(DISTINCT(maColonne)) AS nom_alias

FROM MaTable;

Retourne le nombre de valeurs différentes issues de la colonne maColonne dans MaTable.

Un alias permet de changer le nom-titre inscrit dans un résultat de requête.