10 Sql conseils de récupération

La SQL SELECT

Sommaire

déclaration est votre outil pour déterrer des informations cachées dans une base de données. Même si vous avez une idée claire de ce que vous souhaitez récupérer, traduire cette idée dans SQL peut être un défi. Si votre formulation est un peu éteint, vous pouvez vous retrouver avec des résultats erronés. Pour réduire vos chances d'être induit en erreur, utilisez les dix principes suivants.

Vérifiez la structure de base de données

Si vous récupérez des données à partir d'une base de données et vos résultats ne semblent pas raisonnable, vérifiez la conception de base de données. Beaucoup de bases de données mal conçus sont en cours d'utilisation, et si vous travaillez avec un, fixent la conception avant d'essayer tout autre recours. Rappelez-vous - bon design est une condition préalable de l'intégrité des données.

Essayez des requêtes sur une base de données de test

Créer une base de données de test qui a la même structure que votre base de données de production, mais avec seulement quelques lignes représentatives dans les tableaux. Choisissez les données de sorte que vous savez à l'avance ce que les résultats de vos requêtes devraient être.

Exécutez chaque requête de test sur les données de test et de voir si les résultats correspondent à vos attentes. Si elles ne le font pas, vous devrez peut-être reformuler vos requêtes. Si une requête est correctement formulée, mais vous vous retrouvez avec de mauvais résultats tout de même, vous pouvez avoir besoin de restructurer votre base de données.

Construire plusieurs ensembles de données de test et être sûr d'inclure des cas bizarres, comme des tables vides et les valeurs extrêmes à la limite même de plages admissibles. Essayez de penser à des scénarios improbables et vérifier 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.

Double-vérifier les requêtes qui incluent rejoint

Les jointures sont notoirement contre-intuitif. Si votre requête contient un, assurez-vous qu'il a fait ce que vous attendez avant d'ajouter clauses ou d'autres facteurs de complication.

Triple-vérifier les requêtes avec les sous-requêtes

Les requêtes avec les sous-requêtes prennent données d'une table et, sur la base de ce qui est récupéré, prendre des données d'une autre table. Par conséquent, par définition, ces requêtes peuvent être vraiment dur pour obtenir le droit. Assurez-vous que les données que l'intérieure SELECT récupère les données est que l'extérieur SELECT doit produire le résultat désiré. Si vous avez deux ou plusieurs niveaux de sous-requêtes, vous avez besoin d'être encore plus prudent.

Résumer les données avec GROUP BY




Dire que vous avez une table (NATIONAL) qui contient le nom (Joueur), L'équipe (Équipe), Et le nombre de home runs frappé (Homers) Par tous les joueurs de baseball dans la Ligue nationale. Vous pouvez récupérer le total de homer d'équipe pour toutes les équipes avec une requête comme ceci:

Équipe SELECT, SUM (Homère) DE NATIONALGROUP par équipe -

Cette requête répertorie chaque équipe, suivi par le nombre total de home runs frappés par tous les joueurs de cette équipe.

Regardez GROUP BY restrictions de la clause

Supposons que vous voulez une liste des frappeurs de puissance de la Ligue nationale. Considérez la requête suivante:

SELECT joueur, équipe, HomersFROM NATIONALWHERE Homères> = 20GROUP par équipe -

Dans la plupart des implémentations, cette requête renvoie une erreur. Généralement, seuls les colonnes utilisées pour le regroupement ou colonnes utilisées dans une fonction de jeu peuvent apparaître dans la liste de sélection. Toutefois, si vous souhaitez afficher ces données, la formulation suivante fonctionne:

SELECT joueur, équipe, HomersFROM NATIONALWHERE Homères> = 20GROUP par équipe, joueur, Homère -

Parce que toutes les colonnes que vous souhaitez afficher apparaissent dans la PAR GROUPE clause, que la requête réussisse et délivre les résultats souhaités. Cette formulation trie la liste résultant d'abord par Équipe, puis par Joueur, et enfin par Homers.

Utilisez des parenthèses avec ET, OU, et NON

Parfois, quand vous mélangez ET et OU, SQL ne traite pas l'expression dans l'ordre que vous attendez. Utilisez des parenthèses dans les expressions complexes pour vous assurer que vous obtenez les résultats souhaités. Tapant quelques touches supplémentaires est un petit prix à payer pour de meilleurs résultats.

Parenthèses aussi aider à assurer que le PAS mot-clé est appliquée à l'expression ou l'expression que vous voulez qu'il applique à.

Privilèges de récupération de contrôle

Beaucoup de gens ne pas utiliser les fonctionnalités de sécurité disponibles dans leurs SGBD. Ils ne veulent pas vous embêter avec eux parce qu'ils pensent que l'utilisation abusive et de détournement de données sont des choses qui ne se produisent à d'autres personnes. Ne pas attendre de se brûler. Établir et maintenir la sécurité pour toutes les bases de données qui ont une valeur quelconque.

Sauvegardez vos bases de données régulièrement

Alerte euphémisme: les données sont difficiles à récupérer après une surtension, un incendie, un tremblement de terre, ou une autre catastrophe détruit votre disque dur. (Rappelez-vous, parfois juste des ordinateurs meurent sans raison valable.) Faire des sauvegardes fréquentes et de mettre le support de sauvegarde dans un endroit sûr.

Ce qui constitue un endroit sûr dépend de comment vos données sont essentielles. Il pourrait être un coffre ignifugé dans la même pièce que votre ordinateur. Il pourrait être dans un autre bâtiment. Il pourrait être dans le nuage. Il pourrait être dans un bunker en béton sous une montagne qui a été résister à une attaque nucléaire. Décidez de ce niveau de sécurité est approprié pour vos données.

Gérer les erreurs gracieusement

Que vous faites des requêtes ad hoc à partir d'un poste de travail ou l'intégration des requêtes dans une application, parfois SQL renvoie un message d'erreur plutôt que les résultats souhaités. A un poste de travail, vous pouvez décider quoi faire ensuite, sur la base du message retourné.

Dans une application, la situation est différente. L'utilisateur de l'application ne sait probablement pas ce que l'action est appropriée. Mettez vaste de gestion des erreurs dans vos applications pour couvrir toutes les erreurs imaginables qui peuvent se produire. Création d'un code d'erreur de manipulation prend beaucoup d'efforts, mais il vaut mieux que d'avoir l'utilisateur stare interrogateur à un écran figé.


» » » » 10 Sql conseils de récupération