mysql update statement tutorial update query syntax examples
Αυτό το σεμινάριο εξηγεί τη δήλωση ενημέρωσης MySQL μαζί με τη σύνταξη ερωτήματος και τα παραδείγματα. Θα μάθετε επίσης διαφορετικές παραλλαγές της εντολής πίνακα ενημέρωσης MySQL:
Όπως και με οποιαδήποτε άλλη βάση δεδομένων, έχουμε πάντα την ανάγκη να ενημερώσουμε ή να τροποποιήσουμε ή να αλλάξουμε υπάρχοντα δεδομένα στους πίνακες. Στη MySQL, έχουμε τη δήλωση ΕΝΗΜΕΡΩΣΗ που θα μπορούσε να χρησιμοποιηθεί για την ενημέρωση ή την τροποποίηση των δεδομένων στον πίνακα.
Χρησιμοποιώντας αυτήν την εντολή, μπορούμε να ενημερώσουμε ένα ή πολλά πεδία. Μπορούμε να ενημερώσουμε τις τιμές ενός συγκεκριμένου πίνακα κάθε φορά. Χρησιμοποιώντας τον όρο WHERE μπορούμε να καθορίσουμε τις συνθήκες που χρησιμοποιούνται ειδικά όταν υπάρχει ανάγκη ενημέρωσης συγκεκριμένων σειρών από έναν πίνακα.
Πριν προχωρήσουμε, σημειώστε ότι χρησιμοποιούμε την έκδοση 8.0 της MySQL. Μπορείτε να το κατεβάσετε από εδώ.
Τι θα μάθετε:
- Σύνταξη πίνακα MySQL UPDATE
- Εντολή πίνακα ενημέρωσης MySQL
- # 1) Ενημέρωση μίας στήλης MySQL
- # 2) MySQL Ενημέρωση πολλαπλών στηλών
- # 3) Ενημέρωση MySQL με λειτουργία REPLACE
- # 4) Ενημέρωση MySQL Χρησιμοποιώντας SELECT Statement
- # 5) Ενημέρωση πολλαπλών σειρών MySQL
- # 6) Ενημέρωση MySQL με χρήση λέξης κλειδιού INNER JOIN
- # 7) Ενημέρωση MySQL χρησιμοποιώντας ΑΡΙΣΤΕΡΑ ΕΓΓΡΑΦΗ λέξη-κλειδί
- Συχνές Ερωτήσεις και Απαντήσεις
- συμπέρασμα
Σύνταξη πίνακα MySQL UPDATE
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
Επεξήγηση σύνταξης:
- Η σύνταξη ξεκινά με τη λέξη-κλειδί «ΕΝΗΜΕΡΩΣΗ», ενημερώνοντας έτσι τον MySQL Server σχετικά με τον τύπο δραστηριότητας που θα εκτελεστεί. Αυτή είναι μια υποχρεωτική λέξη-κλειδί και δεν μπορεί να παραλειφθεί.
- Στη συνέχεια έρχεται το όνομα του πίνακα στον οποίο πρέπει να εκτελεστεί η ενέργεια ενημέρωσης. Αυτό είναι υποχρεωτικό και δεν μπορεί να παραλειφθεί.
- Τρίτον, είναι και πάλι μια λέξη-κλειδί - SET. Αυτή η λέξη-κλειδί ενημερώνει τον MySQL Server για τις τιμές που πρέπει να ενημερωθούν για τα ονόματα των στηλών. Αυτή είναι μια υποχρεωτική λέξη-κλειδί και δεν μπορεί να παραλειφθεί.
- Στη συνέχεια, θα είναι τα ονόματα των στηλών που θα ενημερωθούν μαζί με τις αντίστοιχες τιμές τους. Αυτό είναι επίσης υποχρεωτικό και δεν μπορεί να παραλειφθεί.
- Στη συνέχεια έρχεται η συνθήκη WHERE, η οποία περιορίζει ή φιλτράρει τον αριθμό των σειρών στόχου στις οποίες πρέπει να εφαρμοστεί η ενέργεια ΕΝΗΜΕΡΩΣΗ. ΠΟΥ είναι επίσης μια λέξη-κλειδί, αλλά προαιρετική.
Ωστόσο, η ρήτρα WHERE είναι σημαντική. Εάν δεν αναφέρεται, ή εάν η συνθήκη δεν έχει ρυθμιστεί σωστά, τότε ούτε ο πίνακας ούτε οι μη απαιτούμενες σειρές θα ενημερωθούν.
Τροποποιητές σε μια κατάσταση πίνακα ενημέρωσης
Παρατίθενται παρακάτω οι τροποποιητές σε μια δήλωση ΕΝΗΜΕΡΩΣΗΣ.
ΧΑΜΗΛΗ ΠΡΟΤΕΡΑΙΟΤΗΤΑ: Αυτός ο τροποποιητής ενημερώνει το MySQL Engine να καθυστερήσει την ενημέρωση έως ότου δεν υπάρχει ανάγνωση σύνδεσης από τον πίνακα.
ΑΓΝΟΩ: Αυτός ο τροποποιητής ενημερώνει το MySQL Engine για να συνεχίσει τη λειτουργία ΕΝΗΜΕΡΩΣΗ ακόμα και αν υπάρχουν σφάλματα. Δεν εκτελείται καμία ενέργεια ενημέρωσης στις σειρές που προκάλεσαν σφάλματα.
Παράδειγμα ενημέρωσης MySQL
Παρακάτω δίνεται ένα δείγμα πίνακα που δημιουργήθηκε στη MySQL.
Όνομα σχήματος: ειρηνικός
Όνομα πίνακα: υπαλλήλους
Ονόματα στηλών:
- empNum - Διατηρεί ακέραιες τιμές για τον αριθμό υπαλλήλου.
- lastName - Διατηρεί τις τιμές varchar για το επώνυμο του υπαλλήλου.
- firstName - Διατηρεί τις τιμές varchar για το όνομα του υπαλλήλου.
- email - Διατηρεί τιμές varchar για το αναγνωριστικό email του υπαλλήλου.
- deptNum - Διατηρεί το varchar για το αναγνωριστικό τμήματος στο οποίο ανήκει ένας υπάλληλος.
- μισθός - Διατηρεί τις δεκαδικές αξίες του μισθού για κάθε εργαζόμενο.
Όνομα σχήματος: ειρηνικός
Όνομα πίνακα: τμήματα
Ονόματα στηλών:
- deptNum - Διατηρεί το varchar για αναγνωριστικό τμήματος σε έναν οργανισμό.
- city - Κρατά το όνομα της πόλης από την οποία λειτουργούν τα τμήματα.
- country - Διατηρεί το όνομα της χώρας που αντιστοιχεί στην πόλη.
- bonus - Διατηρεί την ποσοστιαία αξία του μπόνους.
Εντολή πίνακα ενημέρωσης MySQL
# 1) Ενημέρωση μίας στήλης MySQL
Τώρα, ας βρούμε ένα δίσκο που θα θέλαμε να ενημερώσουμε. Πρώτον, θα ρίξουμε μια ματιά σε ένα σενάριο όπου πρέπει να ενημερώσουμε μία μόνο στήλη χρησιμοποιώντας τη λέξη-κλειδί ΕΝΗΜΕΡΩΣΗ.
Εδώ είναι ένας υπάλληλος με αριθμό εργαζομένου ως 1008.
Το ερώτημα και τα αντίστοιχα αποτελέσματά του έχουν ως εξής:
Ας ενημερώσουμε το αναγνωριστικό email αυτού του υπαλλήλου από το ob@gmail.com στο oliver.bailey@gmail.com, χρησιμοποιώντας τη λέξη-κλειδί ΕΝΗΜΕΡΩΣΗ.
ΕΚΣΥΓΧΡΟΝΙΖΩ: Η λέξη-κλειδί ενημερώνει τη μηχανή MySQL ότι η δήλωση αφορά την ενημέρωση πίνακα.
ΣΕΙΡΑ: Αυτή η ρήτρα ορίζει την τιμή του ονόματος στήλης που αναφέρεται μετά από αυτήν τη λέξη-κλειδί σε μια νέα τιμή.
ΠΟΥ: Αυτή η ρήτρα καθορίζει τη συγκεκριμένη σειρά που πρέπει να ενημερωθεί.
Μετά την εκτέλεση της δήλωσης ΕΝΗΜΕΡΩΣΗΣ, η έξοδος θα εμφανίσει τα στατιστικά στοιχεία που σχετίζονται με την εκτέλεση της δήλωσης.
Ακολουθούν οι λεπτομέρειες που εμφανίζονται:
- Μια δήλωση που εκτελέστηκε.
- Μηνύματα που δείχνουν τον αριθμό των σειρών που ενημερώθηκαν και αν υπήρχαν προειδοποιήσεις.
Για να επαληθεύσουμε την έξοδο της δήλωσης ΕΝΗΜΕΡΩΣΗΣ, ας εκτελέσουμε ξανά τη δήλωση SELECT για να δείτε την αλλαγή στο αναγνωριστικό email.
Στιγμιότυπο πίνακα πριν:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
7 | Ρώμη | Ιταλία | ||
1008 | Όλιβερ | Μπέιλι | ob@gmail.com | 3 |
Ερώτηση:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ;
Στιγμιότυπο πίνακα μετά:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
1008 | Όλιβερ | Μπέιλι | oliver.bailey@gmail.com | 3 |
# 2) MySQL Ενημέρωση πολλαπλών στηλών
Η σύνταξη για ενημέρωση περισσότερων από μία στηλών χρησιμοποιώντας τη δήλωση ΕΝΗΜΕΡΩΣΗ είναι ίδια με εκείνη της ενημέρωσης μίας στήλης. Μια μεμονωμένη δήλωση SET θα έχει πολλά ονόματα στηλών μαζί με τη νέα τιμή που πρέπει να οριστεί, διαχωρισμένη με κόμμα.
Ας ρίξουμε μια ματιά στη σειρά που πρέπει να ενημερώσουμε. Σειρά με τον αριθμό υπαλλήλου ως 1003.
Εδώ, θα προσπαθήσουμε να ενημερώσουμε το επώνυμο από το 'Mary' σε 'Margaret' και στη συνέχεια το αναγνωριστικό email από το ml@gmail.com στο margaret.langaley@gmail.com.
Το παρακάτω είναι το ερώτημα ΕΝΗΜΕΡΩΣΗ. Παρατηρήστε τα ονόματα των στηλών διαχωρισμένα με κόμμα.
Η έξοδος της παραπάνω εκτέλεσης εμφανίζει τα ίδια στατιστικά στοιχεία με την προηγούμενη περίπτωση.
Ακολουθεί η έξοδος για την ίδια εγγραφή μετά την εκτέλεση της δήλωσης ΕΝΗΜΕΡΩΣΗΣ.
Στιγμιότυπο πίνακα πριν:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
1003 | Μαρία | Λάνγκλεϊ | ml@gmail.com | δύο |
Ερώτηση:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;
Στιγμιότυπο πίνακα μετά:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
1003 | Μαργαρίτα | Λάνγκλεϊ | margaret.langley@gmail.com | 3 |
# 3) Ενημέρωση MySQL με λειτουργία REPLACE
Ας δούμε περισσότερα σχετικά με τη χρήση της συνάρτησης ΑΝΤΙΚΑΤΑΣΤΑΣΗ για ΕΝΗΜΕΡΩΣΗ μιας σειράς στον πίνακα. Εδώ είναι το αρχείο-στόχο μας που θέλουμε να ενημερώσουμε.
Η παρακάτω εγγραφή αφορά τον αριθμό υπαλλήλου 1010. Θα στοχεύσουμε να ενημερώσουμε το αναγνωριστικό email από ja@gmail.com σε jacob.armstrong@gmail.com.
Ας χρησιμοποιήσουμε το ακόλουθο ερώτημα ΕΝΗΜΕΡΩΣΗΣ με τη συνάρτηση REPLACE που θα ενημερώσει το αναγνωριστικό email.
Ακολουθούν οι παράμετροι που περνούν στη συνάρτηση REPLACE. Και οι 3 παράμετροι είναι στη φύση, δηλαδή η σειρά των παραμέτρων δεν μπορεί να αλλάξει.
έναςαγΠαράμετρος - Περιέχει το όνομα του αναγνωριστικού email.
δύοαρΠαράμετρος - Περιέχει το αναγνωριστικό FROM email που πρόκειται να αλλάξει.
3rdΠαράμετρος - Περιέχει το αναγνωριστικό TO email που είναι η νέα τιμή.
Ακολουθεί το στιγμιότυπο του πίνακα μετά την εκτέλεση της δήλωσης ΕΝΗΜΕΡΩΣΗ:
Στιγμιότυπο πίνακα πριν:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
1010 | Ιάκωβος | Άρμστρονγκ | ja@gmail.com | 4 |
Ερώτηση:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;
Στιγμιότυπο πίνακα μετά:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
1010 | Ιάκωβος | Άρμστρονγκ | jacob.armstrong@gmail.com | 4 |
# 4) Ενημέρωση MySQL Χρησιμοποιώντας SELECT Statement
Σε αυτόν τον τύπο ΕΝΗΜΕΡΩΣΗΣ, η νέα τιμή για τη στήλη που θα ενημερωθεί ανακτάται από μια δήλωση SELECT σε ένα δευτερεύον ερώτημα. Ας πάρουμε ένα παράδειγμα εδώ από τον πίνακα «υπαλλήλων» μας. Εδώ είναι το αρχείο-στόχο μας που θέλουμε να ενημερώσουμε.
Σε αυτήν την περίπτωση, θα ενημερώσουμε τον αριθμό τμήματος, δηλαδή τη στήλη deptNum, χρησιμοποιώντας τους πίνακες τμημάτων. Αν κοιτάξουμε τον πίνακα τμημάτων, το deptNum = 5 αντιστοιχεί στο Βερολίνο. Ας μετακινήσουμε αυτόν τον υπάλληλο στο Σαρλότ στο deptNum = 2.
Για την επίτευξη αυτής της εργασίας, χρησιμοποιείται η ακόλουθη δήλωση ΕΝΗΜΕΡΩΣΗΣ:
Για να επαληθεύσουμε την έξοδο της δήλωσης ΕΝΗΜΕΡΩΣΗΣ, ας εκτελέσουμε το ΕΠΙΛΕΓΩ δήλωση.
Όπως φαίνεται παραπάνω, η τιμή για τη στήλη deptNum έχει ενημερωθεί σε '2'.
Στιγμιότυπο πίνακα πριν:
empNum | όνομα | επίθετο | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | deptNum |
---|---|---|---|---|
1005 | Πέτρος | ανάγνωση | pl@gmail.com | 5 |
deptNum | Πόλη | Χώρα |
---|---|---|
ένας | Νέα Υόρκη | Ηνωμένες Πολιτείες |
δύο | Σαρλότ | Ηνωμένες Πολιτείες |
3 | Σικάγο | Ηνωμένες Πολιτείες |
4 | Λονδίνο | Αγγλία |
5 | Βερολίνο | Γερμανία |
6 | Μουμπάι | Ινδία |
Ερώτηση:
Στιγμιότυπο πίνακα μετά:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum 7 Ρώμη Ιταλία ΜΗΔΕΝΙΚΟ 1005 Πέτρος ανάγνωση pl@gmail.com δύο
# 5) Ενημέρωση πολλαπλών σειρών MySQL
Μερικές φορές, ενδέχεται να αντιμετωπίσουμε μια απαίτηση όπου πρέπει να ενημερώσουμε μία ή περισσότερες στήλες για πολλές σειρές με διαφορετικές τιμές.
Για παράδειγμα, θέλουμε να δώσουμε ένα συγκεκριμένο ποσό μπόνους, δηλαδή όλοι οι υπάλληλοι σε ένα τμήμα θα πρέπει να λάβουν ένα συγκεκριμένο ποσό μπόνους.
μετατρέψτε το youtube σε mp3 περισσότερο από 20 λεπτά
Η γενική σύνταξη έχει ως εξής:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;
Για να το εξηγήσετε με ένα παράδειγμα ας προσθέσουμε μια ακόμη στήλη στους πίνακες τμημάτων. Θα προσθέσουμε τη στήλη «μπόνους» στον πίνακα τμημάτων. Η ιδέα είναι να εκχωρήσετε ένα ποσοστό μπόνους σε κάθε τμήμα και να αυξήσετε τον μισθό των υπαλλήλων κατά το ποσοστό που αντιστοιχεί σε κάθε τμήμα.
Για να το επιτύχουμε αυτό, θα εκτελέσουμε τις ακόλουθες δηλώσεις ALTER για να προσθέσουμε μια στήλη:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);
Τα ακόλουθα θα ήταν η δομή του πίνακα μετά τις παραπάνω αλλαγές. Οι νέες στήλες θα προστεθούν με ΜΗΔΕΝΙΚΟ ως αξία.

Στη συνέχεια, ας γράψουμε το ερώτημα ΕΝΗΜΕΡΩΣΗ που θα ενημερώσει το ποσοστό μπόνους για κάθε τμήμα.

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

Στιγμιότυπο πίνακα πριν:
deptNum Πόλη Χώρα Δώρο ένας Νέα Υόρκη Ηνωμένες Πολιτείες ΜΗΔΕΝΙΚΟ δύο Σαρλότ Ηνωμένες Πολιτείες ΜΗΔΕΝΙΚΟ 3 Σικάγο Ηνωμένες Πολιτείες ΜΗΔΕΝΙΚΟ 4 Λονδίνο Αγγλία ΜΗΔΕΝΙΚΟ 5 Βερολίνο Γερμανία ΜΗΔΕΝΙΚΟ 6 Μουμπάι Ινδία ΜΗΔΕΝΙΚΟ
Ερώτηση:
UPDATE departments SET bonus = CASE WHEN deptNum = 1 THEN 3.00 WHEN deptNum= 2 THEN 5.00 WHEN deptNum= 3 THEN 8.00 WHEN deptNum= 4 THEN 10.00 WHEN deptNum= 5 THEN 13.00 WHEN deptNum= 6 THEN 15.00 WHEN deptNum= 7 THEN 18.00 END;
Στιγμιότυπο πίνακα μετά:
deptNum Πόλη Χώρα Δώρο 7 Ρώμη Ιταλία 18 ένας Νέα Υόρκη Ηνωμένες Πολιτείες 3 δύο Σαρλότ Ηνωμένες Πολιτείες 5 3 Σικάγο Ηνωμένες Πολιτείες 8 4 Λονδίνο Αγγλία 10 5 Βερολίνο Γερμανία 13 6 Μουμπάι Ινδία δεκαπέντε
# 6) Ενημέρωση MySQL με χρήση λέξης κλειδιού INNER JOIN
ΣΥΜΜΕΤΟΧΗ είναι μια από τις πιο σημαντικές λέξεις-κλειδιά στις δηλώσεις SQL. Συνήθως, ίσως το έχετε χρησιμοποιήσει στη δήλωση SELECT.
Υπάρχουν βασικά τέσσερις τύποι δηλώσεων JOIN:
- ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ: Ανακτά τις εγγραφές που είναι κοινές και στους δύο πίνακες.
- ΑΡΙΣΤΕΡΑ ΕΓΓΡΑΦΗ: Ανακτά όλες τις εγγραφές από τον πίνακα στην αριστερή πλευρά της λέξης-κλειδιού και τις αντίστοιχες εγγραφές από τον πίνακα στη δεξιά πλευρά της λέξης-κλειδιού.
- ΔΕΞΙΑ ΕΓΓΡΑΦΗ: Ανακτά όλες τις εγγραφές από τον πίνακα στη δεξιά πλευρά της λέξης-κλειδιού και τις αντίστοιχες εγγραφές από τον πίνακα στην αριστερή πλευρά της λέξης-κλειδιού.
- ΕΞΩ ΕΓΓΡΑΦΗ: Ανακτά όλες τις εγγραφές και από τους δύο πίνακες, με τις αντίστοιχες αναντιστοιχίες εγγραφές να εμφανίζονται ως NULL.
Η MySQL δίνει μια μοναδική ευκαιρία να χρησιμοποιήσετε το JOIN ακόμη και σε δηλώσεις ΕΝΗΜΕΡΩΣΗΣ για την εκτέλεση ενημερώσεων μεταξύ τραπεζών. Ωστόσο, περιορίζεται μόνο στο INNER JOIN και LEFT JOIN.
Η γενική σύνταξη της δήλωσης ΕΝΗΜΕΡΩΣΗΣ χρησιμοποιώντας τη λέξη-κλειδί JOIN έχει ως εξής:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition
- Εδώ, η δήλωση ΕΝΗΜΕΡΩΣΗ αναμένει τρία στοιχεία δεδομένων.
- Τα ονόματα των πινάκων, TAB1 και TAB2, στα οποία εκτελείται η ένωση.
- Τύπος ΣΥΝΔΕΣΗΣ που σκοπεύουμε να εκτελέσουμε, ΕΣΩΤΕΡΙΚΟΣ ή ΑΡΙΣΤΕΡΑ.
- Στη συνέχεια ακολουθεί την εντολή SET χρησιμοποιώντας την οποία μπορούμε να ενημερώσουμε τις τιμές της στήλης είτε σε TAB1 και TAB2.
- Τέλος, μια ρήτρα WHERE για ενημέρωση μόνο των σειρών που ταιριάζουν στα κριτήριά μας.
Για να το εξηγήσετε με ένα παράδειγμα ας προσθέσουμε μια ακόμη στήλη στον πίνακα 'Υπάλληλοι'. Θα προσθέσουμε τη στήλη «μισθός» στον πίνακα «Υπάλληλοι». Η ιδέα είναι να αυξήσετε τον μισθό των υπαλλήλων κατά μια ποσοστιαία αξία μπόνους που υπάρχει στη στήλη μπόνους του πίνακα τμημάτων.
Για να το επιτύχουμε αυτό, θα εκτελέσουμε τις ακόλουθες δηλώσεις ALTER για να προσθέσουμε μια στήλη:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);
Στη συνέχεια, θα συμπληρώσουμε τα δύο νέα πεδία που έχουμε προσθέσει. Μετά τη συμπλήρωση των τιμών, το ακόλουθο είναι το περιεχόμενο του πίνακα.
Πίνακας εργαζομένων:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum Μισθός 1007 Σμιτ Τζέιμς js@gmail.com 4 18000 1001 Άντριου Γρύλος ja@gmail.com ένας 3000 1002 Σβάτς Μικρόφωνο ms@gmail.com ένας 5000 1003 Λάνγκλεϊ Μαργαρίτα margaret.langley@gmail.com δύο 8000 1004 Χαρέρα Σάντρα sh@gmail.com ένας 10.000 1005 ανάγνωση Πέτρος pl@gmail.com δύο 13000 1006 Κιθ Κλωστική μηχανή jk@gmail.com δύο 15000 1008 Μπέιλι Όλιβερ oliver.bailey@gmail.com 3 21000 1009 Φλιτζάνι Βασανίζω hb@gmail.com 5 24000 1010 Άρμστρονγκ Ιάκωβος jacob.armstrong@gmail.com 4 27000
Τώρα, ας χρησιμοποιήσουμε τη λέξη-κλειδί JOIN και ενημερώστε τον μισθό όλων των υπαλλήλων με ποσοστό μπόνους στον πίνακα των τμημάτων. Εδώ, το deptNum είναι το κλειδί στο οποίο θα ταιριάζουν τα δύο τραπέζια.
φά Το ollowing είναι το στιγμιότυπο των μισθών των υπαλλήλων από τώρα:

Το στιγμιότυπο από τον πίνακα Τμημάτων έχει ως εξής:

Ακολουθεί το ερώτημα ΕΝΗΜΕΡΩΣΗ που θα ενημερώσει τον μισθό των υπαλλήλων με βάση το ποσοστό μπόνους στους πίνακες των τμημάτων με βάση τη στήλη κλειδιού deptNum.

Τώρα, ας επαληθεύσουμε τον μισθό κάθε υπαλλήλου μετά την αύξηση.

Εάν το συγκρίνετε με το προηγούμενο στιγμιότυπο, τότε μπορείτε εύκολα να καταλάβετε το ποσοστό μπόνους που προστέθηκε στο μισθό.
Όλοι οι υπάλληλοι πρέπει να πανηγυρίζουν!
Στιγμιότυπο πίνακα πριν:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum Μισθός 1007 Σμιτ Τζέιμς js@gmail.com 4 18000 1001 Άντριου Γρύλος ja@gmail.com ένας 3000 1002 Σβάτς Μικρόφωνο ms@gmail.com ένας 5000 1003 Λάνγκλεϊ Μαργαρίτα margaret.langley@gmail.com δύο 8000 1004 Χαρέρα Σάντρα sh@gmail.com ένας 10.000 1005 ανάγνωση Πέτρος pl@gmail.com δύο 13000 1006 Κιθ Κλωστική μηχανή jk@gmail.com δύο 15000 1008 Μπέιλι Όλιβερ oliver.bailey@gmail.com 3 21000 1009 Φλιτζάνι Βασανίζω hb@gmail.com 5 24000 1010 Άρμστρονγκ Ιάκωβος jacob.armstrong@gmail.com 4 27000
deptNum Πόλη Χώρα Δώρο 7 Ρώμη Ιταλία 18 ένας Νέα Υόρκη Ηνωμένες Πολιτείες 3 δύο Σαρλότ Ηνωμένες Πολιτείες 5 3 Σικάγο Ηνωμένες Πολιτείες 8 4 Λονδίνο Αγγλία 10 5 Βερολίνο Γερμανία 13 6 Μουμπάι Ινδία δεκαπέντε
Ερώτηση:
UPDATE employees INNER JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * bonus)/100) ;
Στιγμιότυπο πίνακα μετά:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum Μισθός 1007 Σμιτ Τζέιμς js@gmail.com 4 21780 1001 Άντριου Γρύλος ja@gmail.com ένας 3182.7 1002 Σβάτς Μικρόφωνο ms@gmail.com ένας 5304.5 1003 Λάνγκλεϊ Μαργαρίτα margaret.langley@gmail.com δύο 8820 1004 Χαρέρα Σάντρα sh@gmail.com ένας 10609 1005 ανάγνωση Πέτρος pl@gmail.com δύο 14332.5 1006 Κιθ Κλωστική μηχανή jk@gmail.com δύο 16537.5 1008 Μπέιλι Όλιβερ oliver.bailey@gmail.com 3 24494.4 1009 Φλιτζάνι Βασανίζω hb@gmail.com 5 30645.6 1010 Άρμστρονγκ Ιάκωβος jacob.armstrong@gmail.com 4 32670
# 7) Ενημέρωση MySQL χρησιμοποιώντας ΑΡΙΣΤΕΡΑ ΕΓΓΡΑΦΗ λέξη-κλειδί
Όπως εξηγήθηκε στην προηγούμενη ενότητα, υπάρχουν δύο τύποι JOIN που επιτρέπονται στο MySQL UPDATE. Έχουμε ήδη δει ΕΝΗΜΕΡΩΣΗ χρησιμοποιώντας το INNER JOIN.
Ας ξεκινήσουμε με την ΕΝΗΜΕΡΩΣΗ χρησιμοποιώντας το LEFT JOIN.
Παράδειγμα:
Έχουμε μια νέα μίσθωση που δεν έχει ακόμη ανατεθεί σε οποιοδήποτε τμήμα. Αλλά πρέπει να δώσουμε σε όλες τις νέες προσλήψεις ένα μπόνους 1%. Τώρα, καθώς η νέα πρόσληψη δεν έχει ανατεθεί σε κανένα τμήμα, δεν θα μπορέσουμε να λάβουμε πληροφορίες ποσοστού μπόνους από αυτόν τον πίνακα. Σε μια τέτοια περίπτωση, θα ενημερώσουμε τον μισθό για τις νέες προσλήψεις χρησιμοποιώντας LEFT JOIN.
Για να το επιτύχουμε, ας προσθέσουμε έναν νέο υπάλληλο στη βάση δεδομένων των εργαζομένων.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00);
Ακολουθεί ο νέος δίσκος που έχουμε προσθέσει:

Πίνακας εργαζομένων:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum Μισθός 1007 Σμιτ Τζέιμς js@gmail.com 4 21780 1001 Άντριου Γρύλος ja@gmail.com ένας 3183 1002 Σβάτς Μικρόφωνο ms@gmail.com ένας 5305 1003 Λάνγκλεϊ Μαργαρίτα margaret.langley@gmail.com δύο 8820 1004 Χαρέρα Σάντρα sh@gmail.com ένας 10609 1005 ανάγνωση Πέτρος pl@gmail.com δύο 14333 1006 Κιθ Κλωστική μηχανή jk@gmail.com δύο 16538 1008 Μπέιλι Όλιβερ oliver.bailey@gmail.com 3 24494 1009 Φλιτζάνι Βασανίζω hb@gmail.com 5 30646 1010 Άρμστρονγκ Ιάκωβος jacob.armstrong@gmail.com 4 32670 1011 Χανκς Κάποιος th@gmail.com ΜΗΔΕΝΙΚΟ 10.000
Στη συνέχεια, θα δώσουμε στον Tom ένα μπόνους 1% πάνω από τον μισθό του χρησιμοποιώντας τη δήλωση ΕΝΗΜΕΡΩΣΗ με τη ρήτρα ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ:

Παρακάτω δίνεται ο μισθός του TOM μετά την αύξηση.

Εάν το συγκρίνετε με το προηγούμενο στιγμιότυπο, μπορείτε εύκολα να καταλάβετε το μπόνους% που προστέθηκε στο μισθό.
Στιγμιότυπο πίνακα πριν:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum Μισθός 1011 Κάποιος Χανκς th@gmail.com ΜΗΔΕΝΙΚΟ 10.000
Ερώτηση:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ;
Στιγμιότυπο πίνακα μετά:
empNum όνομα επίθετο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ deptNum Μισθός 1011 Κάποιος Χανκς th@gmail.com ΜΗΔΕΝΙΚΟ 10100
Συνιστώμενη ανάγνωση = >> Η MySQL συμμετέχει
Συχνές Ερωτήσεις και Απαντήσεις
Ε # 1) Πώς μπορώ να ενημερώσω τα χαρακτηριστικά στη MySQL;
Απάντηση: Μπορούμε να ενημερώσουμε τα χαρακτηριστικά χρησιμοποιώντας τη δήλωση MySQL UPDATE, με τη δήλωση να ξεκινά με τη λέξη-κλειδί UPDATE ακολουθούμενη από το όνομα του πίνακα. Στη συνέχεια είναι ο όρος SET ακολουθούμενος από ένα όνομα στήλης και ένας όρος WHERE.
Ε # 2) Πώς ενημερώνετε πολλές εγγραφές στη MySQL;
Απάντηση: Όπως απεικονίζεται παραπάνω, κάτω από το 'Ενημέρωση πολλαπλών σειρών' ενότητα, μπορούμε να ενημερώσουμε πολλές σειρές για μία ή περισσότερες στήλες με τις ίδιες ή διαφορετικές τιμές χρησιμοποιώντας τη δήλωση CASE.
Q # 3) Μπορούμε να χρησιμοποιήσουμε το JOIN στο ερώτημα ενημέρωσης στη MySQL;
Απάντηση: Ναι, η MySQL επιτρέπει τη χρήση του JOIN σε αναφορές UPDATE. Ωστόσο, περιορίζεται μόνο στο INNER και το LEFT JOIN.
Q # 4) Από πού να κατεβάσετε το MySQL;
Απάντηση: Μπορείτε να κάνετε λήψη της έκδοσης 8.0 της MySQL από εδώ: MySQL .
Ε # 5) Ποια είναι η σημασία της ρήτρας WHERE στη δήλωση ενημέρωσης;
Απάντηση: ΟΤΙ η ρήτρα περιορίζει τον αριθμό των σειρών που πρέπει να ταιριάζουν στα κριτήρια της ρήτρας ΕΝΗΜΕΡΩΣΗΣ.
Προτεινόμενη ανάγνωση = >> Πώς να χρησιμοποιήσετε το MySQL If Δήλωση
συμπέρασμα
Έτσι, σε αυτό το σεμινάριο, μάθαμε για 7 διαφορετικούς τρόπους εκτέλεσης των δηλώσεων MySQL UPDATE.
- Ενημέρωση μίας στήλης
- Ενημέρωση πολλών στηλών
- Ενημέρωση χρησιμοποιώντας το REPLACE
- Ενημέρωση χρησιμοποιώντας SELECT
- Ενημέρωση πολλών σειρών
- Ενημέρωση χρησιμοποιώντας INNER JOIN
- Ενημέρωση χρησιμοποιώντας LEFT JOIN
Μπορούμε να χρησιμοποιήσουμε οποιοδήποτε από αυτά, με βάση τις απαιτήσεις μας.
Καλή ανάγνωση !!
Συνιστώμενη ανάγνωση
- Διαφορά μεταξύ SQL Vs MySQL Vs SQL Server (με παραδείγματα)
- Κορυφαίες 40 καλύτερες ερωτήσεις και απαντήσεις συνέντευξης MySQL (2021 ερωτήσεις)
- MongoDB Ενημέρωση και Διαγραφή εγγράφου με παραδείγματα
- C # Χρήση της δήλωσης και C # Εικονική μέθοδος μαθημάτων με παραδείγματα
- Tutorial On C # Δηλώσεις υπό όρους
- Εκμάθηση Java Reflection με παραδείγματα
- Εκμάθηση Python DateTime με παραδείγματα
- Tutorial Bugzilla: Εγχειρίδιο Εργαλείου Διαχείρισης Ατελειών