4.2.2+Ενημέρωση+εγγραφών+πίνακα+Σχεσιακής+ΒΔ

4.2.2 Ενημέρωση Εγγραφών Πίνακα Σχεσιακής ΒΔ
**Στόχοι / Προσδοκώμενα Αποτελέσματα** Ο μαθητής/τρια πρέπει να είναι ικανός/ή:
 * να γράφει και να εκτελεί εντολές UPDATE για την ενημέρωση εγγραφών σε Σχεσιακό Σύστημα Διαχείρισης Βάσεων Δεδομένων

Η ενημέρωση των εγγραφών που έχουν αποθηκευτεί σε πίνακα Σχεσιακής Βάσης Δεδομένων πραγματοποιείται στη γλώσσα SQL με την εντολή **UPDATE**. Στην εντολή αυτή καθορίζεται ο πίνακας στον οποίον θα γίνουν ενημερώσεις καθώς και ένα σύνολο προτάσεων που περιγράφουν τις ενημερώσεις των πεδίων του πίνακα. Η γενική μορφή της εντολής UPDATE είναι η εξής: code format="sql" UPDATE <πίνακας> SET <προτάσεις ενημέρωσης πεδίων του πίνακα> code

Έστω ότι στο παράδειγμά μας (Μαθητολόγιο) και συγκεκριμένα στον πίνακα Μάθημα θέλουμε να ενημερώσουμε την τιμή του πεδίου Ώρες έτσι ώστε όλα τα καταχωρημένα μαθήματα να έχουν 3 ώρες διδασκαλίας. Η ενημέρωση αυτή γίνεται με την εντολή UPDATE ως εξής: code format="sql" UPDATE Μάθημα SET Ώρες = 3 code

Στην παρακάτω εικόνα, βλέπουμε τα δεδομένα του πίνακα Μάθημα μετά την εκτέλεση της εντολής UPDATE για την ενημέρωση των ωρών των μαθημάτων: Εικόνα 4-8. Ο σχεσιακός πίνακας Μάθημα μετά την εκτέλεση της εντολής UPDATE
 * ~ Όνομα ||~ Ώρες||
 * Συστήματα Διαχείρισης Βάσεων Δεδομένων και εφαρμογές τους στο Web||3||

Η εντολή UPDATE μπορεί να χρησιμοποιηθεί και ως ενημέρωση με αναζήτηση των εγγραφών που θα ενημερωθούν, δηλαδή ενημέρωση υπό συνθήκη. Σε αυτή την περίπτωση, μπορούμε να χρησιμοποιήσουμε την έκφραση WHERE σε γενική μορφή ως εξής: code format="sql" UPDATE <πίνακας> SET <προτάσεις ενημέρωσης πεδίων του πίνακα> WHERE <συνθήκη αναζήτησης> code

Στο παράδειγμα του πίνακα «Μάθημα», η ενημέρωση όλων των μαθημάτων που έχουν καταχωρηθεί με 5 ώρες διδασκαλίας ώστε να γίνει αλλαγή των ωρών σε 3 γίνεται ως εξής: code format="sql" UPDATE Μάθημα SET Ώρες = 3 WHERE Ώρες = 5 code Με αυτή την εντολή δε θα ενημερωθούν όλες οι εγγραφές μαθημάτων, αλλά μόνο αυτές που ικανοποιούν τη συνθήκη που υπάρχει μετά τη λέξη WHERE.

**Ερωτήσεις / Δραστηριότητες** α) Ποια συνθήκη πρέπει να καθοριστεί για να ενημερωθεί η ημερομηνία γέννησης μόνο της συγκεκριμένης μαθήτριας; β) Γράψτε και εκτελέστε την εντολή SQL που θα ενημερώσει το πεδίο Ημερομηνία_Γέννησης για την συγκεκριμένη μαθήτρια. α) Η μαθήτρια Χανιωτάκη Αθηνά έχει πόλη καταγωγής τα Χανιά. β) Ο μαθητής Ρεθυμνιωτάκης Ορέστης έχει πόλη καταγωγής το Ρέθυμνο. Σημείωση: μπορείτε να χρησιμοποιήσετε είτε το κύριο κλειδί στη συνθήκη για την ενημέρωση των παραπάνω εγγραφών, είτε το ονοματεπώνυμό τους. Ποια είναι η διαφορά; Σε ποια περίπτωση εξασφαλίζεται η ορθότητα της ενημέρωσης;
 * 1)** Ανατρέξτε στην ενότητα 4.2.1 όπου έγινε εισαγωγή στον πίνακα Μαθητής της μαθήτριας Οδύσσειας Ομήρου χωρίς να καθοριστεί η ημερομηνία γέννησής της.
 * 2)** Γράψτε και εκτελέστε τις εντολές SQL για να ενημερώστε τα στοιχεία των μαθητών του πίνακα Μαθητής ως εξής: