Fonctions numériques

Disponible

Liste des fonctions numériques

Comme nous l'avons dit plus haut, il ne suffit pas qu'un SGBD stocke simplement des données d'un certain type, il doit également prendre en charge un ensemble étendu d'opérations ultra-rapides sur des données de ces types.

Et, comme vous le savez, tous les SGBD prennent en charge une variété de types numériques et d'opérations sur ceux-ci. Aujourd'hui, vous vous familiariserez avec les plus populaires d'entre eux.

Toutes les fonctions numériques de MySQL peuvent être conditionnellement divisées en 5 groupes :

  • Opérations arithmétiques
  • Opérations sur les bits
  • Fonctions d'arrondi
  • Fonctions algébriques
  • Fonctions trigonométriques

Au fait, vous en connaissez beaucoup grâce au langage Java, donc je pense qu'ils ne vous surprendront pas. Mais commençons dans l'ordre.

La liste complète des fonctionnalités peut être trouvée ici .

Opérations arithmétiques

Il n'y a, en principe, rien d'inattendu, tout de même les opérations standards qu'ailleurs :

# Exemple
1 +, -, *, / 2+2*2 Addition, soustraction, multiplication, division (pas parfait !)
2 % 13% 5 Reste de la division
3 MOD 13MOD5 Reste de la division
4 DIV 13 DIV 5 Division par entier

De l'intéressant : en divisant deux nombres entiers, vous obtenez un nombre réel. Pour diviser par entier, vous devez utiliser l'opérateur DIV.

Si vous souhaitez obtenir le reste d'une division par un entier, vous devez utiliser l'opérateur MOD ou %, comme dans le langage Java. Je ne donnerai pas d'exemples, car pour moi tout est évident ici.

Opérations sur les bits

Vous pouvez également effectuer des opérations au niveau du bit sur les nombres en SQL, un peu comme en Java. Bien qu'il y ait des nuances. La liste des opérations sur les bits disponibles est présentée dans le tableau ci-dessous :

# Exemple Note
1 & 0b1111 & 0b1000 ET au niveau du bit
2 | 0b1111 | 0b0001 OU au niveau du bit
3 ^ 0b1111^0b1111 Bit XOR
4 ~ ~0b1111 inversion au niveau du bit
5 >> 128 >> ​​​​5 Décalage de bits vers la droite
6 << 2 << 5 Décalage de bits vers la gauche
7 BIT_COUNT() BIT_COUNT(255) Renvoie le nombre de bits qui valent 1

Avant la version 8.0 de MySQL, de telles opérations ne pouvaient être effectuées que sur le type de données BIGINT, long de 64 bits et similaire au type long de Java. Cependant, dans MySQL 8.0 (que nous envisageons), le concept a changé. Désormais, ces opérations peuvent être effectuées sur des types binaires spéciaux :

  • BINAIRE
  • VARBINAIRE
  • Et aussi sur les types BLOB (qui sont un tableau d'octets)

Tous les autres types sont simplement convertis en type BIGINT et les opérations sont effectuées comme avant (uniquement sur les 64 premiers bits).

Fonctions d'arrondi

Pour arrondir dans MySQL, on utilise des fonctions douloureusement familières. Une liste d'entre eux est donnée dans le tableau ci-dessous:

# Exemple Note
1 PLAFOND(), PLAFOND() PLAFOND (5.1) = 6 Arrondit un nombre réel
2 SOL() PLANCHER(5.9) = 5 Arrondit un nombre réel vers le bas
3 ROND() ROND(4.1) = 4 Arrondit un nombre réel à l'entier le plus proche
4 TRONQUER() TRUNCATE(4.123, 2) = 4.12 Tronque un nombre à N décimales
5 RAND() 0.61914388706828 Renvoie un nombre réel aléatoire entre 0 et 1
6 RAND(N) 0.93845168309142 Renvoie un nombre réel aléatoire entre 0 et 1. N est utilisé comme valeur de départ

Vous connaissez toutes les fonctions d'arrondi depuis la première quête en Java. Seules les fonctions TRUNCATE() et RANDOM(N) peuvent nous intéresser ici.

La fonction TRUNCATE (nombre, quantité) prend comme premier paramètre un nombre réel, et comme second paramètre le nombre de décimales à conserver. Le nombre est réduit au nombre de décimales souhaité.

Quant à la fonction RAND(N), les choses sont un peu plus compliquées. Comme vous le savez probablement, un ordinateur ne peut pas générer de nombres aléatoires. Au lieu de cela, il génère une séquence de nombres pseudo-aléatoires. Autrement dit, en regardant un nombre, il n'est pas clair s'il est aléatoire ou non, mais la séquence de nombres peut déjà être similaire au hasard. Les développeurs en profitent en générant une séquence de nombres très similaire au hasard.

Dans ce cas, chaque nouveau numéro de la séquence est généré selon une règle délicate basée sur le numéro précédent de cette séquence . Par conséquent, si vous transmettez un certain nombre de départ (également appelé graine) à l'algorithme de génération de nombres aléatoires, vous recevrez à chaque fois la même séquence de nombres aléatoires .

Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires