Sous-questionnaires MySQL

Sous-questionnaires MySQL
Une sous-requête est une requête SQL dans une plus grande requête récursive, ou une sous-requête est considérée comme une requête interne. En revanche, une requête extérieure est appelée requête qui comprend la sous-requête. Une sous-requête MySQL peut être intégrée dans les requêtes, notamment sélectionner, insérer, mettre à jour ou supprimer. De plus, dans une autre sous-requête, une sous-requête peut être nichée. La sous-requête de la phrase doit être fermée entre parenthèses partout où elle est utilisée. Nous vous apprendrons comment et quand utiliser la sous-requête MySQL pour composer des requêtes compliquées et décrire l'idée de la sous-requête associée. Ouvrez le shell de ligne de commande depuis votre bureau et écrivez votre mot de passe pour commencer à l'utiliser. Appuyez sur Entrée et continuez.

Sous-requête dans les enregistrements de table unique:

Créez un tableau nommé «Animaux» dans la base de données »des données.'Ajoutez l'enregistrement ci-dessous suivant des différents animaux avec différentes propriétés comme affiché. Remplissez cet enregistrement à l'aide de la requête SELECT comme suit:

>> Sélectionner * à partir des données.animaux;

Exemple 01:

Récupérons les enregistrements limités de ce tableau à l'aide des sous-requêtes. En utilisant la requête ci-dessous, nous savons que la sous-requête sera exécutée en premier, et sa sortie sera utilisée dans la requête principale comme entrée. Une sous-requête est simplement récupérée de l'âge où le prix des animaux est de 2500. L'âge d'un animal dont le prix est de 2500 est de 4 dans la table. La requête principale sélectionnera tous les enregistrements du tableau où l'âge est supérieur à 4, et la sortie est donnée ci-dessous.

>> Sélectionner * à partir des données.Animaux où l'âge> (sélectionner l'âge des données.animaux où prix = "2500");

Exemple 02:

Utilisons le même tableau dans différentes situations. Dans cet exemple, nous utiliserons une fonction au lieu de la clause dans la sous-requête. Nous avons pris la moyenne de tous les prix donnés pour les animaux. Le prix moyen sera de 3189. La requête principale sélectionnera tous les enregistrements des animaux ayant un prix de plus de 3189. Vous obtiendrez la sortie ci-dessous.

>> Sélectionner * à partir des données.Animaux où le prix> (sélectionnez AVG (prix) à partir des données.animaux);

Exemple 03:

Utilisons la clause in dans la requête de sélection principale. Tout d'abord, la sous-requête réduira les prix supérieurs à 2500. Après cela, la requête principale sélectionnera tous les enregistrements des «animaux» de la table où le prix réside dans le résultat de la sous-requête.

>> Sélectionner * à partir des données.animaux où le prix dans (sélectionnez le prix des données.animaux où le prix> 2500);

Exemple 04:

Nous avons utilisé la sous-requête pour récupérer le nom de l'animal où le prix est de 7000. Comme cet animal est une vache, c'est pourquoi le nom «vache» sera retourné à la question principale. Dans la requête principale, tous les enregistrements seront récupérés de la table où le nom de l'animal est «Cow.`` Comme nous n'avons que deux enregistrements pour l'animal 'Cow', c'est pourquoi nous avons la sortie ci-dessous.

>> Sélectionner * à partir des données.Animaux où name = (sélectionnez Nom à partir de données.animaux où prix = "7000");

Sous-requête dans plusieurs enregistrements de table:

Supposons les deux tables ci-dessous, «étudiant» et «enseignant» dans votre base de données. Essayons quelques exemples de sous-requêtes en utilisant ces deux tables.

>> Sélectionner * à partir des données.étudiant;
>> Sélectionner * à partir des données.professeur;

Exemple 01:

Nous allons récupérer les données d'un tableau à l'aide de la sous-requête et l'utiliser comme entrée pour la requête principale. Cela signifie que ces deux tables peuvent être liées d'une manière ou d'une autre. Dans l'exemple ci-dessous, nous avons utilisé la sous-requête pour récupérer le nom de l'élève de la table «Élève» où le nom de l'enseignant est «Samina.`` Cette requête retournera 'Samina' au professeur de table de requête principale ''.«La requête principale sélectionnera alors tous les enregistrements liés au nom de l'enseignant» Samina.'Comme nous avons deux enregistrements pour ce nom, nous avons donc ce résultat.

>> Sélectionner * à partir des données.enseignant où TeachName = (sélectionnez TeachName à partir de données.Étudiant où TeachName = 'Samina');

Exemple 02:

Pour élaborer la sous-requête dans le cas de différentes tables, essayez cet exemple. Nous avons une sous-requête qui rapporte le nom de l'enseignant de l'élève de la table. Le nom doit avoir «i» à n'importe quelle position dans sa valeur. Cela signifie que tous les noms de la colonne TeachName ayant «i» dans leur valeur seront sélectionnés et renvoyés à la requête principale. La requête principale sélectionnera tous les dossiers du tableau «enseignant» où le nom de l'enseignant est dans la sortie renvoyée par la sous-requête. Au fur et à mesure que la sous-requête a rendu 4 noms d'enseignants, c'est pourquoi nous aurons un enregistrement de tous ces noms résidant dans le tableau ''.'

>> Sélectionner * à partir des données.enseignant où enseigner (sélectionnez TeachName à partir de données.étudiant où enseigner comme «% i%»);

Exemple 03:

Considérez les deux tables ci-dessous, «Ordre» et «Order1».

>> Sélectionner * à partir des données.commande;
>> Sélectionner * à partir des données.Ordre1;

Essayons une clause de tous les exemples pour élaborer la sous-requête. La sous-requête sélectionnera «Id» dans la table «Order1», où la colonne «Statut» a une valeur de «impayé.«Le« Id »peut être plus de 1. Cela signifie que plus d'une valeur serait renvoyée à la requête principale pour obtenir les résultats de la «commande» du tableau. Dans ce cas, n'importe quel «identifiant» pourrait être utilisé. Nous avons la sortie ci-dessous pour cette requête.

>> Sélectionnez l'article, les ventes, l'identifiant des données.Commandez où id = any (sélectionnez ID à partir des données.order1 où status = 'impayé');

Exemple 04:

Supposons que vous ayez les données ci-dessous dans le tableau «Order1» avant d'appliquer une requête.

>> Sélectionner * à partir des données.Ordre1;

Appliquons la requête dans une requête pour supprimer certains enregistrements du tableau «Order1». Premièrement, la sous-requête sélectionnera la valeur «statut» dans le tableau «Ordre» où l'article est «Livre.«Les rendements de la sous-requête« payés »comme valeur. Maintenant, la requête principale supprimera les lignes de la table «Order1» où la valeur de colonne «Status» est «payée.'

>> Supprimer des données.Order1 où status = (sélectionnez Status dans les données.commander où item = 'book');

Lors de la vérification, nous sommes maintenant que les enregistrements ci-dessous sont restés dans le tableau «Order1» après l'exécution de la requête.

>> Sélectionner * à partir des données.Ordre1;

Conclusion:

Vous avez efficacement travaillé avec beaucoup de sous-requêtes dans tous les exemples ci-dessus. Nous espérons que tout est clair et propre maintenant.