Πίνακας περιεχομένων:
- Επαληθεύστε τη δομή βάσης δεδομένων
- Δοκιμάστε ερωτήματα σε μια βάση δεδομένων δοκιμής
- Διευθυντικά ερωτήματα που περιλαμβάνουν συνδέσμους
- Ερωτήματα τριπλής ελέγχου με υποεπιλέξεις
- Συγκεντρωτικά στοιχεία με GROUP BY
- Παρακολουθήστε τους περιορισμούς της ρήτρας GROUP BY
- Χρησιμοποιήστε παρενθέσεις με AND, OR και NOT
- Προνόμια ανάκτησης ελέγχου
- Δημιουργία αντιγράφων ασφαλείας των βάσεων δεδομένων σας τακτικά
- Χειρισμός των συνθηκών σφάλματος με χαρά
Βίντεο: Help for hacked sites: Request a review 2024
Η εντολή SQL SELECT είναι το εργαλείο σας για την εξόρυξη κρυφών πληροφοριών σε μια βάση δεδομένων. Ακόμα κι αν έχετε μια σαφή ιδέα για το τι θέλετε να ανακτήσετε, η μετάφραση αυτής της ιδέας σε SQL μπορεί να είναι μια πρόκληση. Εάν η διατύπωσή σας είναι λίγο απενεργοποιημένη, μπορεί να καταλήξετε σε λάθος αποτελέσματα. Για να μειώσετε τις πιθανότητες παραπλάνησης, χρησιμοποιήστε τις ακόλουθες δέκα αρχές.
Επαληθεύστε τη δομή βάσης δεδομένων
Αν ανακτήσετε δεδομένα από μια βάση δεδομένων και τα αποτελέσματά σας δεν φαίνονται λογικά, ελέγξτε τη σχεδίαση της βάσης δεδομένων. Πολλές κακώς σχεδιασμένες βάσεις δεδομένων είναι σε χρήση και αν εργάζεστε με ένα, επιδιορθώστε το σχέδιο πριν δοκιμάσετε οποιαδήποτε άλλη θεραπεία. Θυμηθείτε - ο καλός σχεδιασμός αποτελεί προϋπόθεση της ακεραιότητας των δεδομένων.
Δοκιμάστε ερωτήματα σε μια βάση δεδομένων δοκιμής
Δημιουργήστε μια βάση δεδομένων δοκιμών που έχει την ίδια δομή με τη βάση δεδομένων παραγωγής σας, αλλά με λίγες αντιπροσωπευτικές σειρές στους πίνακες. Επιλέξτε τα δεδομένα ώστε να γνωρίζετε εκ των προτέρων ποια θα είναι τα αποτελέσματα των ερωτημάτων σας.
Εκτελέστε κάθε ερώτημα δοκιμής στα δεδομένα δοκιμών και δείτε αν τα αποτελέσματα ταιριάζουν με τις προσδοκίες σας. Εάν δεν το κάνουν, ίσως χρειαστεί να αναδιατυπώσετε τα ερωτήματά σας. Αν ένα ερώτημα είναι σωστά διατυπωμένο αλλά καταλήγετε σε κακά αποτελέσματα, ίσως χρειαστεί να κάνετε αναδιάρθρωση της βάσης δεδομένων σας.
Κατασκευάστε πολλά σύνολα δεδομένων δοκιμών και βεβαιωθείτε ότι έχετε περιλάβει περιττές περιπτώσεις, όπως κενές κάρτες και ακραίες τιμές στο πολύ όριο επιτρεπτών περιοχών. Προσπαθήστε να σκεφτείτε απίθανο σενάρια και να ελέγξετε τη σωστή συμπεριφορά όταν εμφανιστούν. Κατά τη διάρκεια του ελέγχου για απίθανες περιπτώσεις, μπορείτε να αποκτήσετε γνώση προβλημάτων που είναι πιο πιθανό να συμβούν.
Διευθυντικά ερωτήματα που περιλαμβάνουν συνδέσμους
Οι συνδέσεις είναι γνωστά αντιληπτές. Εάν το ερώτημά σας περιέχει ένα, βεβαιωθείτε ότι κάνει ό, τι περιμένετε προτού προσθέσετε ρήτρες WHERE ή άλλους παράγοντες που περιπλέκουν.
Ερωτήματα τριπλής ελέγχου με υποεπιλέξεις
Τα ερωτήματα με υποεπιλέξεις λαμβάνουν δεδομένα από έναν πίνακα και με βάση τα ανακτηθέντα δεδομένα λαμβάνουν κάποια δεδομένα από έναν άλλο πίνακα. Ως εκ τούτου, εξ ορισμού, τέτοια ερωτήματα μπορεί πραγματικά να είναι δύσκολο να πάρει σωστά. Βεβαιωθείτε ότι τα δεδομένα που ανακτά το εσωτερικό SELECT είναι τα δεδομένα που χρειάζεται το εξωτερικό SELECT για να παράγει το επιθυμητό αποτέλεσμα. Εάν έχετε δύο ή περισσότερα επίπεδα επιμέρους επιλογών, πρέπει να είστε ακόμα πιο προσεκτικοί.
Συγκεντρωτικά στοιχεία με GROUP BY
Πείτε ότι έχετε έναν πίνακα (NATIONAL) που περιέχει το όνομα (Player), την ομάδα (Team). Μπορείτε να ανακτήσετε το σύνολο του ομίλου για όλες τις ομάδες με ένα ερώτημα όπως αυτό:
SELECT Team, SUM (Homers) ΑΠΟ ΤΗΝ ΕΘΝΙΚΗ ΟΜΑΔΑ ΜΕ ΤΗΝ ΟΜΑΔΑ.
Το ερώτημα αυτό απαριθμεί κάθε ομάδα, ακολουθούμενο από το συνολικό αριθμό των εγχώριων παιχνιδιών που έχουν πληγεί από όλους τους παίκτες της ομάδας.
Παρακολουθήστε τους περιορισμούς της ρήτρας GROUP BY
Ας υποθέσουμε ότι θέλετε μια λίστα των hitters της National League. Εξετάστε το ακόλουθο ερώτημα:
SELECT Player, Team, Homers ΑΠΟ ΤΟ ΕΘΝΙΚΟ ΠΟΥ ΧΟΡΗΓΕΙ> 20 GROUP BY Team;
Στις περισσότερες εφαρμογές, αυτό το ερώτημα επιστρέφει ένα σφάλμα. Γενικά, μόνο οι στήλες που χρησιμοποιούνται για ομαδοποίηση ή στήλες που χρησιμοποιούνται σε μια συνάρτηση μπορεί να εμφανιστούν στη λίστα επιλογών. Ωστόσο, αν θέλετε να δείτε αυτά τα δεδομένα, η ακόλουθη παραλλαγή λειτουργεί:
SELECT Player, Team, HOMERS ΑΠΟ ΤΟ ΕΘΝΙΚΟ ΠΟΥ ΧΟΡΗΓΕΙ> = 20 GROUP BY Team, Player, Homers;
Επειδή όλες οι στήλες που θέλετε να εμφανίζονται εμφανίζονται στη ρήτρα GROUP BY, το ερώτημα επιδέχεται και παρέχει τα επιθυμητά αποτελέσματα. Αυτή η διατύπωση ταξινομεί πρώτα τον κατάλογο που προκύπτει από την Ομάδα, στη συνέχεια από τον Παίκτη και τελικά από τον Homers.
Χρησιμοποιήστε παρενθέσεις με AND, OR και NOT
Μερικές φορές όταν αναμιγνύετε AND και OR, η SQL δεν επεξεργάζεται την έκφραση με τη σειρά που περιμένετε. Χρησιμοποιήστε παρενθέσεις σε σύνθετες εκφράσεις για να βεβαιωθείτε ότι έχετε τα επιθυμητά αποτελέσματα. Πληκτρολογώντας μερικές επιπλέον πληκτρολογήσεις είναι μια μικρή τιμή για να πληρώσετε για καλύτερα αποτελέσματα.
Οι παρενθέσεις βοηθούν επίσης να διασφαλίσετε ότι η λέξη κλειδί NOT εφαρμόζεται στον όρο ή την έκφραση στην οποία θέλετε να εφαρμοστεί.
Προνόμια ανάκτησης ελέγχου
Πολλοί άνθρωποι δεν χρησιμοποιούν τις λειτουργίες ασφαλείας που είναι διαθέσιμες στο ΣΔΒΔ. Δεν θέλουν να ενοχλούν μαζί τους επειδή πιστεύουν ότι η κατάχρηση και η υπεξαίρεση δεδομένων είναι πράγματα που συμβαίνουν μόνο σε άλλους ανθρώπους. Μην περιμένετε να καεί. Καθιέρωση και διατήρηση της ασφάλειας για όλες τις βάσεις δεδομένων που έχουν οποιαδήποτε αξία.
Δημιουργία αντιγράφων ασφαλείας των βάσεων δεδομένων σας τακτικά
Ειδοποίηση υποστροφής: Τα δεδομένα είναι δύσκολο να ανακτηθούν μετά από ένα κύμα εξουσίας, μια πυρκαγιά, ένας σεισμός ή κάποια άλλη καταστροφή καταστρέφει το σκληρό σας δίσκο. (Να θυμάστε ότι μερικές φορές οι υπολογιστές απλώς πεθαίνουν για μη βάσιμο λόγο). Κάντε συχνές αντιγραφές και τοποθετήστε τα μέσα δημιουργίας αντιγράφων ασφαλείας σε ασφαλές μέρος.
Το τι αποτελεί ασφαλές μέρος εξαρτάται από το πόσο κρίσιμα είναι τα δεδομένα σας. Μπορεί να είναι ασφαλές σε περίπτωση πυρκαγιάς στο ίδιο δωμάτιο με τον υπολογιστή σας. Μπορεί να βρίσκεται σε άλλο κτίριο. Μπορεί να βρίσκεται στο σύννεφο. Θα μπορούσε να είναι σε ένα συγκεκριμένο bunker κάτω από ένα βουνό που έχει σκληρυνθεί για να αντέξει μια πυρηνική επίθεση. Αποφασίστε τι επίπεδο ασφάλειας είναι κατάλληλο για τα δεδομένα σας.
Χειρισμός των συνθηκών σφάλματος με χαρά
Είτε κάνετε ερωτήματα ad hoc από ένα σταθμό εργασίας είτε ενσωματώνετε ερωτήματα σε μια εφαρμογή, περιστασιακά η SQL επιστρέφει ένα μήνυμα σφάλματος αντί για τα επιθυμητά αποτελέσματα. Σε ένα σταθμό εργασίας, μπορείτε να αποφασίσετε τι να κάνετε στη συνέχεια, με βάση το μήνυμα που επιστρέφεται.
Σε μια εφαρμογή, η κατάσταση είναι διαφορετική. Ο χρήστης της εφαρμογής πιθανότατα δεν γνωρίζει ποια ενέργεια είναι κατάλληλη. Τοποθετήστε εκτεταμένο χειρισμό σφαλμάτων στις εφαρμογές σας για να καλύψετε κάθε πιθανό σφάλμα που μπορεί να συμβεί. Η δημιουργία κώδικα αντιμετώπισης σφαλμάτων απαιτεί μεγάλη προσπάθεια, αλλά είναι καλύτερο από το να βλέπεις ο χρήστης να κοιτάζει κουζικά σε μια παγωμένη οθόνη.