Table des matières:
- Vérifiez la structure de la base de données
- Essayez les requêtes sur une base de données de test
- Revérifiez les requêtes qui incluent des jointures
- Effectuer une triple vérification des requêtes avec des sous-sélections
- Résumez les données avec GROUP BY
- Voir les restrictions de la clause GROUP BY
- Utilisez des parenthèses avec AND, OR et NOT
- Privilèges de récupération de contrôle
- Sauvegardez vos bases de données régulièrement
- Gérer les conditions d'erreur avec élégance
Vidéo: Quelques astuces pour SQL Server Management Studio 2025
L'instruction SQL SELECT est votre outil pour extraire des informations cachées dans une base de données. Même si vous avez une idée claire de ce que vous voulez récupérer, traduire cette idée en SQL peut être un défi. Si votre formulation est juste un peu éteinte, vous pouvez vous retrouver avec les mauvais résultats. Pour réduire vos risques d'être induit en erreur, utilisez les dix principes suivants.
Vérifiez la structure de la base de données
Si vous récupérez des données d'une base de données et que vos résultats ne vous semblent pas raisonnables, vérifiez la conception de la base de données. De nombreuses bases de données mal conçues sont utilisées, et si vous en utilisez une, corrigez la conception avant d'essayer d'autres solutions. Rappelez-vous qu'une bonne conception est une condition préalable de l'intégrité des données.
Essayez les requêtes sur une base de données de test
Créez une base de données de test ayant la même structure que votre base de données de production, mais avec seulement quelques lignes représentatives dans les tables. Choisissez les données afin que vous sachiez à l'avance quels devraient être les résultats de vos requêtes.
Exécutez chaque requête de test sur les données de test et vérifiez si les résultats correspondent à vos attentes. Si ce n'est pas le cas, vous devrez peut-être reformuler vos requêtes. Si une requête est correctement formulée mais que vous obtenez des résultats incorrects, vous devrez peut-être restructurer votre base de données.
Créez plusieurs ensembles de données de test et assurez-vous d'inclure les cas impairs, tels que les tables vides et les valeurs extrêmes, à la limite des plages admissibles. Essayez de penser à des scénarios improbables et vérifiez le bon comportement quand ils se produisent. Au cours de la vérification des cas improbables, vous pouvez avoir un aperçu des problèmes qui sont plus susceptibles de se produire.
Revérifiez les requêtes qui incluent des jointures
Les jointures sont notoirement contre-intuitives. Si votre requête contient un, assurez-vous qu'il fait ce que vous attendez avant d'ajouter des clauses WHERE ou d'autres facteurs de complication.
Effectuer une triple vérification des requêtes avec des sous-sélections
Les requêtes avec sous-sélection prennent des données d'une table et, en fonction de ce qui est récupéré, prennent des données d'une autre table. Par conséquent, par définition, de telles requêtes peuvent vraiment être difficiles à obtenir correctement. Assurez-vous que les données que le SELECT interne récupère sont les données dont le SELECT externe a besoin pour produire le résultat souhaité. Si vous avez deux ou plusieurs niveaux de sous-sélection, vous devez être encore plus prudent.
Résumez les données avec GROUP BY
Dites que vous avez une table (NATIONAL) qui contient le nom (Player), l'équipe (Team) et le nombre de coups de circuit (Homers) par chaque joueur de baseball de la National League. Vous pouvez récupérer le total du circuit de l'équipe pour toutes les équipes avec une requête comme celle-ci:
SELECT Team, SUM (Homers) DU GROUPE NATIONAL PAR Équipe;
Cette requête répertorie chaque équipe, suivie du nombre total de coups de circuit touchés par tous les joueurs de cette équipe.
Voir les restrictions de la clause GROUP BY
Supposons que vous vouliez une liste des frappeurs de puissance de la Ligue nationale. Considérons la requête suivante:
SELECT Player, Team, Homers FROM NATIONAL OERE Homers> = 20 GROUP BY Team;
Dans la plupart des implémentations, cette requête renvoie une erreur. Généralement, seules les colonnes utilisées pour le regroupement ou les colonnes utilisées dans une fonction set peuvent apparaître dans la liste de sélection. Cependant, si vous voulez voir ces données, la formulation suivante fonctionne:
SELECT Joueur, Equipe, Homers FROM NATIONAL OERE Homers> = 20 GROUP BY Equipe, Joueur, Homers;
Toutes les colonnes que vous souhaitez afficher apparaissent dans la clause GROUP BY. La requête réussit et fournit les résultats souhaités. Cette formulation trie la liste résultante d'abord par équipe, puis par joueur, et enfin par Homers.
Utilisez des parenthèses avec AND, OR et NOT
Parfois, lorsque vous mélangez AND et OR, SQL ne traite pas l'expression dans l'ordre attendu. Utilisez des parenthèses dans des expressions complexes pour vous assurer que vous obtenez les résultats souhaités. Taper quelques touches supplémentaires est un petit prix à payer pour de meilleurs résultats.
Les parenthèses permettent également de s'assurer que le mot clé NOT est appliqué au terme ou à l'expression que vous souhaitez appliquer.
Privilèges de récupération de contrôle
De nombreuses personnes n'utilisent pas les fonctions de sécurité disponibles dans leur SGBD. Ils ne veulent pas s'en préoccuper parce qu'ils pensent que l'abus et l'appropriation illicite des données sont des choses qui n'arrivent qu'aux autres. N'attendez pas de vous brûler. Établissez et maintenez la sécurité pour toutes les bases de données qui ont n'importe quelle valeur.
Sauvegardez vos bases de données régulièrement
Alerte relative aux données confidentielles: Les données sont difficiles à récupérer après une surtension, un incendie, un tremblement de terre ou une autre catastrophe qui détruit votre disque dur. (Rappelez-vous, parfois les ordinateurs meurent sans raison valable.) Faites des sauvegardes fréquentes et placez le support de sauvegarde dans un endroit sûr.
Ce qui constitue un lieu sûr dépend de la gravité de vos données. Ce pourrait être un coffre-fort ignifuge dans la même pièce que votre ordinateur. Ce pourrait être dans un autre bâtiment. Ce pourrait être dans le nuage. Il pourrait être dans un bunker en béton sous une montagne qui a été durci pour résister à une attaque nucléaire. Décidez quel niveau de sécurité est approprié pour vos données.
Gérer les conditions d'erreur avec élégance
Que vous fassiez des requêtes ad hoc à partir d'un poste de travail ou intégrez des requêtes dans une application, SQL renvoie parfois un message d'erreur plutôt que les résultats souhaités. Sur un poste de travail, vous pouvez décider quoi faire ensuite, en fonction du message renvoyé.
Dans une application, la situation est différente. L'utilisateur de l'application ne sait probablement pas quelle action est appropriée. Placez une gestion des erreurs étendue dans vos applications pour couvrir toutes les erreurs imaginables qui peuvent survenir. La création d'un code de gestion des erreurs demande beaucoup d'efforts, mais c'est mieux que de demander à l'utilisateur de regarder d'un air interrogateur sur un écran figé.
