λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> SQL Server

Όταν υπάρχουν διπλά ονόματα στηλών σε μια βάση δεδομένων και πρέπει να αναφέρετε τα οποία αναφέρονται;

Όταν υπάρχουν διπλά ονόματα στηλών σε μια βάση δεδομένων (συχνά σε διαφορετικούς πίνακες, αλλά ενδεχομένως ακόμη και μέσα σε έναν μόνο πίνακα εάν χρησιμοποιείτε μερικές λιγότερο συνηθισμένες λειτουργίες βάσης δεδομένων), πρέπει να πληρούν τις προϋποθέσεις για το όνομα της στήλης για να αποφύγετε την ασάφεια. Αυτό γίνεται με τον προσδιορισμό του πίνακα (ή άλλου πεδίου εφαρμογής) στην οποία ανήκει η στήλη. Η σύνταξη ποικίλλει ελαφρώς ανάλογα με το συγκεκριμένο σύστημα βάσης δεδομένων (διάλεκτο SQL), αλλά η γενική αρχή παραμένει η ίδια.

Δείτε πώς θα το κάνατε σε διάφορα κοινά συστήματα βάσεων δεδομένων:

1. Χρησιμοποιώντας ψευδώνυμα πίνακα (πιο συνηθισμένη και συνιστώμενη προσέγγιση):

Αυτή είναι γενικά η καθαρότερη και αποτελεσματικότερη μέθοδος. Δίνετε σε κάθε πίνακα ένα μικρότερο ψευδώνυμο και στη συνέχεια χρησιμοποιήστε το ψευδώνυμο για να αναφέρετε τις στήλες.

`` sql

- Παράδειγμα:Υποθέστε ότι έχετε παραγγελίες "και" πελάτες "και" πελάτες "και με μια στήλη που ονομάζεται 'ID'

Επιλέξτε O.ID AS order_id, C.ID ως πελάτης_ID

Από παραγγελίες o

Εγγραφείτε στους πελάτες C σε O.Customer_id =C.Id;

`` `

Σε αυτό το παράδειγμα, το `o.id` αναφέρεται στη στήλη` id 'στον πίνακα `rolls` και` c.id` αναφέρεται στη στήλη' id 'στον πίνακα' πελάτες '. Η λέξη -κλειδί `as` δημιουργεί πιο περιγραφικά ονόματα στηλών στο σύνολο αποτελεσμάτων.

2. Χρησιμοποιώντας πλήρως εξειδικευμένα ονόματα πίνακα:

Αυτό είναι λιγότερο συνοπτικό, αλλά λειτουργεί αξιόπιστα. Χρησιμοποιείτε το πλήρες σχήμα και το όνομα του πίνακα για να προκριθείτε στη στήλη. Το μέρος του σχήματος είναι συχνά προαιρετικό εάν εργάζεστε μέσα στο προεπιλεγμένο σχήμα.

`` sql

- Παράδειγμα (υποθέτοντας ότι το σχήμα είναι «mydb»):

Επιλέξτε mydb.orders.id as order_id, mydb.customers.id ως customer_id

Από το mydb.orders

Γίνετε μέλος του MyDB.Customers στο MyDB.orders.customer_id =mydb.customers.id;

`` `

3. Χρήση ονομάτων αντικειμένων βάσης δεδομένων (για πολύ περίπλοκα σενάρια):

Σε εξαιρετικά περίπλοκες καταστάσεις με πολλαπλές βάσεις δεδομένων ή σχήματα που εμπλέκονται, ίσως χρειαστεί να πληρούν πλήρως τη στήλη με βάση δεδομένων, σχήμα και όνομα πίνακα.

Σημαντικές εκτιμήσεις:

* Σύστημα βάσης δεδομένων: Η ακριβής σύνταξη (π.χ., αναφέροντας συμβάσεις για ονόματα πίνακα και στήλης) μπορεί να διαφέρει ελαφρώς μεταξύ των βάσεων δεδομένων (MySQL, PostgreSQL, SQL Server, Oracle κ.λπ.). Συμβουλευτείτε την τεκμηρίωση του συστήματος βάσης δεδομένων για τους ακριβείς κανόνες.

* Χειρισμός σφαλμάτων: Τα περισσότερα συστήματα βάσης δεδομένων θα προκαλέσουν σφάλμα εάν ένα όνομα στήλης είναι διφορούμενο χωρίς πιστοποίηση * εκτός εάν το πλαίσιο καθιστά απολύτως σαφές ποια στήλη προορίζεται (π.χ. σε μια ρήτρα που αναφέρεται μόνο σε έναν πίνακα). Είναι η καλύτερη πρακτική να πληρούν πάντα τα ονόματα των στηλών όταν υπάρχει πιθανότητα ασάφειας.

* Αναγνωσιμότητα: Η χρήση ψευδώνυμων βελτιώνει σημαντικά την αναγνωσιμότητα των ερωτημάτων σας SQL, καθιστώντας τους ευκολότερο να κατανοήσουν και να διατηρηθούν.

Συνοπτικά, η χρήση ψευδώνυμων πίνακα είναι η προτιμώμενη μέθοδος για την επίλυση διφορούμενων ονομάτων στηλών, επειδή είναι σαφές, συνοπτικό και αποτελεσματικό. Πάντα να πληρούν τις ονομασίες των στηλών σας όταν ασχολείστε με πιθανή ασάφεια για να αποτρέψετε σφάλματα και να βελτιώσετε τη δυνατότητα συντήρησης του κώδικα της βάσης δεδομένων σας.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα