Oracle Ενημέρωση πολλαπλών στηλών

Oracle Enemerose Pollaplon Stelon



Αυτό το σεμινάριο θα σας διδάξει πώς να ενημερώσετε πολλές στήλες σε έναν πίνακα βάσης δεδομένων χρησιμοποιώντας την εντολή UPDATE.

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

Ας μάθουμε πώς μπορούμε να χρησιμοποιήσουμε την ρήτρα UPDATE στο Oracle για να ορίσουμε τις νέες τιμές για τις στήλες του πίνακα.







Δήλωση Oracle UPDATE

Για να ενημερώσουμε την τιμή σε έναν υπάρχοντα πίνακα, χρησιμοποιούμε τη δήλωση UPDATE όπως φαίνεται στην ακόλουθη σύνταξη:



ΕΝΗΜΕΡΩΣΗ ονόματος πίνακα_
SET στήλη1 = new_value1,
στήλη2 = new_value2,
...
στήληN = new_valueN
Όπου κατάσταση?

Που:



  1. Το Table_name αντιπροσωπεύει το όνομα του πίνακα που θέλετε να ενημερώσετε.
  2. Column_1, column_2,…,columnN ορίζουν τα ονόματα των στηλών που θέλετε να ενημερώσετε.
  3. New_value1, new_value2,…new_valueN σας επιτρέπουν να ορίσετε τη νέα τιμή για κάθε στήλη.
  4. Η συνθήκη είναι μια προαιρετική ρήτρα που σας επιτρέπει να περιορίσετε τις ενημερωμένες σειρές. Εάν παραλείψετε τον όρο υπό όρους, η πρόταση ενημερώνει όλες τις σειρές στον πίνακα.

Παράδειγμα ενημέρωσης Oracle

Ας δούμε ένα πραγματικό παράδειγμα για το πώς μπορούμε να χρησιμοποιήσουμε τη δήλωση UPDATE στην Oracle:





ΔΗΜΙΟΥΡΓΗΣΤΕ βάσεις δεδομένων ΠΙΝΑΚΑ (
όνομα VARCHAR2 ( πενήντα ) ΟΧΙ ΚΕΝΟ,
default_port NUMBER,
τελευταία_έκδοση VARCHAR2 ( είκοσι ) ΟΧΙ ΚΕΝΟ,
τύπος ΒΑΡΧΑΡ2 ( είκοσι ) ΟΧΙ ΚΕΝΟ,
γλώσσα VARCHAR2 ( είκοσι ) ΟΧΙ ΚΕΝΟ
) ;

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

Μπορούμε να εισαγάγουμε μερικά δείγματα εγγραφών όπως φαίνεται στα παρακάτω:



ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'Μαντείο' , 1521 , '19c' , 'σχετικός' , 'SQL' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'MySQL' , 3306 , '8,0' , 'σχετικός' , 'SQL' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'PostgreSQL' , 5432 , '13' , 'σχετικός' , 'SQL' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'MongoDB' , 27017 , '4,4' , «μη σχετιζόμενη» , 'JavaScript' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'Microsoft SQL Server' , 1433 , '2017' , 'σχετικός' , 'T-SQL' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'Apache Cassandra' , 9042 , '4,0' , «μη σχετιζόμενη» , 'Ιάβα' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'Redis' , 6379 , '6,0' , «μη σχετιζόμενη» , 'C++' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
VAUES ( 'MariaDB' , 3306 , '10,5' , 'σχετικός' , 'SQL' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'SQLite' , μηδενικό, '3,34' , 'σχετικός' , 'ΝΤΟ' ) ;
ΕΙΣΑΓΩΓΗ ΣΤΙΣ βάσεις δεδομένων ( όνομα, προεπιλεγμένη_θύρα, τελευταία_έκδοση, τύπος , Γλώσσα )
ΑΞΙΕΣ ( 'neo4j' , 7474 , '4.1' , «μη σχετιζόμενη» , 'Ιάβα' ) ;

ΣΗΜΕΙΩΣΗ: Η default_port για τη βάση δεδομένων SQLite έχει οριστεί σε NULL, καθώς το SQLite δεν έχει προεπιλεγμένο αριθμό θύρας.

Πίνακας αποτελεσμάτων:

Πίνακας ενημέρωσης Oracle

Ας υποθέσουμε ότι θέλουμε να ενημερώσουμε το latest_version, το όνομα και την προεπιλεγμένη θύρα για τον Microsoft SQL Server. Μπορούμε να εκτελέσουμε ένα ερώτημα ενημέρωσης όπως φαίνεται παρακάτω:

ενημέρωση βάσεων δεδομένων
σειρά όνομα = 'MS SQL Server' ,
default_port = 1400 ,
τελευταία_έκδοση = '2022'
όπου όνομα όπως 'Microsoft SQL Server' ;

Το ερώτημα πρέπει να εντοπίσει τη σειρά όπου το όνομα είναι ΣΑΝ 'Microsoft SQL Server' και να αλλάξει το όνομα, το default_port και το last_version στις νέες τιμές.

ΣΗΜΕΙΩΣΗ: Τα προηγούμενα δεδομένα προορίζονται για σκοπούς επίδειξης. Μπορεί να μην αντικατοπτρίζει με ακρίβεια μια ενημερωμένη πληροφορία σχετικά με τις βάσεις δεδομένων.

Μόλις ενημερωθεί, μπορούμε να προβάλουμε τον νέο πίνακα για αλλαγές δεδομένων ως εξής:

Όπως μπορούμε να δούμε, ο πίνακας αντικατοπτρίζει τις ενημερωμένες αλλαγές.

συμπέρασμα

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

Ωστόσο, όπως οι περισσότερες πρακτικές βάσης δεδομένων, έχει πιθανά μειονεκτήματα. Για παράδειγμα:

  1. Απόδοση – Η εκτέλεση μιας ενημέρωσης σε πολλές στήλες είναι πιο χρονοβόρα και εντατική σε πόρους από την ενημέρωση μιας στήλης. Αυτό γίνεται πιο σημαντικό, ειδικά όταν πολλαπλασιάζουμε μεγάλο αριθμό σειρών με πολύπλοκα δεδομένα.
  2. Ακεραιότητα δεδομένων – Μια άλλη ανησυχία κατά την ενημέρωση πολλών στηλών είναι η ακεραιότητα των δεδομένων. Εάν χρησιμοποιηθεί εσφαλμένα, η ενημέρωση πολλών στηλών μπορεί να οδηγήσει σε καταστροφή ή απώλεια δεδομένων. Μπορείτε να βουτήξετε σε διάφορες τεχνικές κανονικοποίησης δεδομένων για να το μετριαστείτε, αλλά είναι πάντα καλό να είστε προσεκτικοί. Μπορείτε επίσης να δοκιμάσετε τα ερωτήματα ενημέρωσης σε εξέλιξη πριν τα μεταφέρετε στην παραγωγή.
  3. Πολυπλοκότητα ερωτημάτων – Παρομοίως, η εκτέλεση των δηλώσεων ενημέρωσης μπορεί να αυξήσει την πολυπλοκότητα των ερωτημάτων σας, καθιστώντας πιο δύσκολη την ανάγνωση, τη συντήρηση ή τον εντοπισμό σφαλμάτων.

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