TOP

SQL-Leçon 6. Champs calculés (calculés)

Pourquoi devriez-vous utiliser des champs calculés ? En règle générale, les informations de la base de données sont présentées sous forme de fragments séparés, car il est plus facile de structurer les données et de les exploiter. Cependant, nous devrons souvent utiliser non pas des éléments de données individuels, mais des informations déjà combinées et traitées. Par exemple, il est souvent nécessaire de combiner le prénom et le nom des clients, de combiner les éléments d'adresse qui se trouvent dans différentes colonnes du tableau, de traiter le texte et les mots, lettres et symboles individuels, de résumer le coût total de l'achat. , pour afficher des statistiques sur les informations contenues dans la base de données. Les données sont généralement stockées dans des « morceaux » séparés, ce qui nécessite un traitement supplémentaire de la part du programme client. Cependant, il est possible de recevoir des informations déjà traitées à l'aide d'un SGBD. C'est dans ce cas que les champs de calcul sont utiles. Elles sont automatiquement créées lors de l'exécution de la requête et ont l'apparence et les propriétés des colonnes ordinaires déjà présentes dans la table. La seule différence est qu'il n'y a pas de champs physiquement calculés, ils n'occupent donc pas d'espace supplémentaire dans la base de données, mais existent temporairement dans la « mémoire aléatoire » du SGBD. L’avantage d’effectuer des opérations côté SGBD est la rapidité de traitement des données.


1. Effectuer des opérations mathématiques

Une façon d'utiliser les champs calculés consiste à effectuer des opérations mathématiques sur les données sélectionnées. Prenons un exemple de la façon dont cela se produit, en utilisant à nouveau notre table Sumproduct. Supposons que vous deviez calculer le prix d'achat moyen de chaque produit. Pour ce faire, vous devez redistribuer la colonne Montant vers Quantity (quantité) :

Run SQLSELECT DISTINCT Product, Amount/Quantity 
FROM Sumproduct

Comme vous pouvez le constater, le SGBD a sélectionné tous les noms de produits et affiché leur coût moyen dans une colonne distincte créée lors de l'exécution de la requête. Vous pouvez également remarquer que nous avons utilisé un opérateur supplémentaire DISTINCT, dont nous avons besoin pour afficher des noms de produits uniques (sans lui, nous aurions des enregistrements en double).

2. Utiliser des pseudonymes

Dans l'exemple précédent, nous avons calculé le prix d'achat moyen de chaque produit et affiché la valeur dans la colonne de calcul. Cependant, à l'avenir, il nous sera gênant de faire référence à ce champ, car son nom n'est pas informatif pour nous (le SGBD a donné le nom du champ - Expr1001). Cependant, nous pouvons nommer le champ indépendamment en précisant son nom dans la requête au préalable, c'est-à-dire en donnant un alias. Réécrivons l'exemple précédent et spécifions un alias pour le champ calculé :

Run SQLSELECT DISTINCT Product, Amount/Quantity AS AvgPrice 
FROM Sumproduct

Nous voyons que notre champ de calcul a reçu son propre nom AvgPrice. Pour cela, nous avons utilisé l'opérateur AS, après quoi nous avons spécifié le nom dont nous avions besoin. A noter que seules les opérations mathématiques de base sont supportées en SQL : addition (+), soustraction (-), multiplication (*), division (/). Vous pouvez également utiliser des parenthèses pour modifier la séquence des opérations.

Les alias sont souvent utilisés non seulement pour nommer les champs de calcul, mais également pour renommer ceux qui sont actifs. Cela peut être nécessaire si le champ actif a un nom long ou si le nom n'est pas suffisamment informatif.

3. Connexion des champs (concaténation)

En plus des opérations mathématiques, nous pouvons également combiner du texte et l'afficher dans un champ séparé. Voyons comment coller (concaténer) du texte. Pour connecter le texte de différentes colonnes dans MS Access, l'opérateur plus (+) est utilisé, par exemple :

Run SQLSELECT Month + ' ' + Product AS NewField, Quantity  
FROM Sumproduct

Dans cet exemple, nous avons combiné les valeurs dans deux colonnes et affiché le résultat dans un nouveau champ NewField.

L'opérateur plus (+) n'est pas pris en charge dans le dialecte MySQL pour connecter (concaténer) le texte de plusieurs colonnes. Dans ce cas, utilisez la fonction CONCAT().