Différence entre where et having clause en SQL

Différence clé - où contre avoir une clause en SQL
 

Les données sont importantes pour chaque organisation. Par conséquent, il est nécessaire de stocker les données de manière organisée pour les récupérer. Les données sont stockées dans des tables. Une base de données consiste en une collection de tables. Les bases de données relationnelles constituent un type de base de données commun. Dans une base de données relationnelle, les tables sont liées les unes aux autres. Par exemple, la table client est connectée à la table des commandes. Un système de gestion de base de données relationnelle (SGBDR) est un système de gestion de base de données basé sur un modèle relationnel. Il est utilisé pour gérer les bases de données relationnelles. MySQL, MSSQL et Oracle sont quelques exemples de SGBDR. Le langage SQL (Structured Query Language) est le langage utilisé pour manipuler et récupérer des données dans une base de données relationnelle. Il existe différentes clauses dans SQL pour effectuer différentes tâches. Deux d'entre eux sont où et avoir. Cet article explique la différence entre les clauses where et having en SQL. le différence clé entre où et ayant la clause en SQL est que La clause where est utilisée pour filtrer les enregistrements avant un regroupement ou une agrégation, tandis que la clause having est utilisée pour filtrer les enregistrements après un regroupement ou une agrégation..

CONTENU

1. Vue d'ensemble et différence clé
2. Quelle est la clause where dans SQL
3. Qu'est-ce que la clause having en SQL?
4. Similarités entre where et having clause en SQL
5. Comparaison côte à côte - où vs ayant la clause SQL sous forme tabulaire
6. Résumé

Quelle est la clause where dans SQL?

Il est utile de récupérer, mettre à jour ou supprimer un ensemble particulier de données de la table en fonction de la condition donnée. Le programmeur peut utiliser la clause where pour restreindre et extraire uniquement les données requises. La requête s'exécute uniquement sur les enregistrements où la condition spécifiée par la clause where est vraie. Il peut être utilisé avec select, update et delete.

Référez-vous au tableau ci-dessous,

Pour sélectionner le nom et l'âge de l'étudiant dont student_id est égal à 3, vous pouvez utiliser la requête SQL suivante.

sélectionnez le nom, l'âge de l'étudiant où student_id = 3;

Il est également possible d’utiliser des opérateurs tels que non égal à (! =), Supérieur à (>), inférieur à (=), inférieur ou égal à (<=). To select the student_id and name whose age is not equal to 15, the following SQL query can be used.

Sélectionnez student_id, nom d'étudiant où age! = 15;

Pour changer l’âge de l’élève 2 à 13 ans, la requête suivante peut être utilisée.

mise à jour de l'étudiant défini age = 13 où id = 3;

Pour supprimer l'enregistrement dont le nom student_id est 4, vous pouvez utiliser la requête suivante.

supprimer de student où student_id = 4;

Les opérateurs et, ou peuvent être utilisés pour combiner plusieurs conditions.

sélectionnez le nom de l'étudiant où student_id = 1 et age = 15; requête va récupérer le nom Ann.

Voici quelques exemples de la clause where en SQL. S'il existe une clause Group By, la clause where apparaît avant celle-ci..

Qu'est-ce que la clause having en SQL??

Il existe des fonctions fournies par le langage SQL pour effectuer facilement des calculs. Ils sont appelés fonctions d'agrégation. Le min () est utilisé pour trouver la plus petite valeur de la colonne sélectionnée. La valeur max () permet de rechercher la valeur maximale de la colonne sélectionnée. Avg () est utilisé pour trouver la moyenne dans la colonne et sum () est utilisé pour trouver le total de la colonne. Ce sont quelques exemples de fonctions d'agrégation. Voir le tableau ci-dessous,

Le programmeur peut écrire la requête SQL comme suit pour récupérer les clients dont le solde est supérieur à 2000..

sélectionnez * dans le groupe de commandes par client ayant une somme (solde)> 2000.

Ceci imprimera les enregistrements des clients dont la somme du solde est supérieure à 2000. Il imprimera les enregistrements des clients Ann et Alex.

La clause having est utilisée pour extraire les valeurs des groupes qui remplissent certaines conditions. Par conséquent, le groupe qui tombe dans la condition donnée apparaîtra à la suite de cela. La clause having apparaît après la clause group-by. Si la clause group-by n’est pas présente, la clause having fonctionnera de la même manière que la clause where.

Quelles sont les similitudes entre where et having clause en SQL?

  • Les deux sont des clauses dans Langage de requête structuré.
  • Les deux peuvent être utilisés pour filtrer la récupération d'un ensemble de données.

Quelle est la différence entre une clause where et having dans SQL?

où vs ayant la clause en SQL

Where est une clause SQL utilisée pour spécifier une condition lors de l'extraction des données d'une seule table ou en les associant à plusieurs tables.. Having est une clause SQL spécifiant qu'une instruction de sélection SQL ne doit renvoyer que des lignes dans lesquelles les valeurs globales remplissent les conditions spécifiées..
 Objectif
La clause where est utilisée pour filtrer les lignes. La clause having est utilisée pour filtrer les groupes.
Agrégation 
La clause where ne peut pas être utilisée avec des fonctions d'agrégation sauf si elle se trouve dans une sous-requête contenue dans une clause having. Les fonctions d'agrégation peuvent être utilisées avec la clause having.
 Méthode de filtrage
La clause where se comporte comme un pré-filtre. La clause having se comporte comme un post-filtre.
Commande groupée par clause
La clause where est utilisée avant la clause Group By. La clause having est utilisée après la clause Group By.
Utilisé avec
La clause where peut être utilisée avec select, update et delete. La clause having est utilisée uniquement avec select.

Résumé -  contre avoir une clause en SQL

Le langage SQL (Structured Query Language) est le langage utilisé dans les bases de données relationnelles. Les where sont deux clauses en SQL. Cet article a discuté de la différence entre où et clause. La différence entre les clauses where et having en SQL réside dans le fait que where est utilisé pour filtrer les enregistrements avant qu'un regroupement ou une agrégation ne se produise, alors que having est utilisé pour filtrer les enregistrements après un regroupement ou qu'une agrégation se produise.

Référence:

1. «Utilisation de la clause WHERE SQL». Clause WHERE dans les instructions SQL | Studytonight. Disponible ici
Clause 2.Having avec des fonctions de groupe SQL | Tutoriel SGBD | Studytonight. Disponible ici 
3. "Avoir (SQL)." Wikipédia, Wikimedia Foundation, 3 mars 2018. Disponible ici 
4. "Avoir vs Où Clause?" GeeksforGeeks, 9 mai 2017. Disponible ici