DELETE, UPDATE, INSERT

Σχετικά έγγραφα
DELETE, UPDATE, INSERT.

Ηλεκτρονικοί Υπολογιστές II


Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.




Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II

1 / 105

1 / 150

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

Ηλεκτρονικοί Υπολογιστές II

1 / 87

1 / 97

Ηλεκτρονικοί Υπολογιστές II

1 / 106

Ερωτήματα επιλογής με σύζευξη πινάκων


Ηλεκτρονικοί Υπολογιστές II


Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου


Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Τμήμα Διοίκησης Επιχειρήσεων

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

ΕΠΛ 342 Βάσεις εδοµένων

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

Διαχείριση Πολιτισμικών Δεδομένων

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Βάσεις Δεδομένων (Databases)

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Σχεδίαση Βάσεων Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Τεχνολογία Πολιτισμικού Λογισμικού

Τμήμα Πληροφορικής ΑΠΘ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

. Εργαστήριο Βάσεων Δεδομένων. Triggers

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Τμήμα Πληροφορικής ΑΠΘ

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους


Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης


1 / 106

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Βάσεις Περιβαλλοντικών Δεδομένων

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Ηλεκτρονικοί Υπολογιστές II

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Τεχνολογία Πολιτισμικού Λογισμικού

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων (Databases)

Διαχείριση Πολιτισμικών Δεδομένων

Transcript:

Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 103

Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της βάσης δεδομένων 2 Διαγραφή δεδομένων με την εντολή DELETE 3 Τροποποίηση δεδομένων με την εντολή UPDATE 4 Εισαγωγή δεδομένων INSERT 5 Ανάλυση ενός προβλήματος 2 / 103

Σκοπός του μαθήματος 3 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. 4 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. Η γλώσσα SQL διαθέτει τρεις εντολές για το σκοπό αυτό: 5 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. Η γλώσσα SQL διαθέτει τρεις εντολές για το σκοπό αυτό: 1 DELETE για τη διαγραφή εγγραφών από πίνακες, 6 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. Η γλώσσα SQL διαθέτει τρεις εντολές για το σκοπό αυτό: 1 DELETE για τη διαγραφή εγγραφών από πίνακες, 2 UPDATE για την τροποποίηση εγγραφών σε πίνακες, 7 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. Η γλώσσα SQL διαθέτει τρεις εντολές για το σκοπό αυτό: 1 DELETE για τη διαγραφή εγγραφών από πίνακες, 2 UPDATE για την τροποποίηση εγγραφών σε πίνακες, 3 INSERT για την εισαγωγή εγγραφών σε πίνακες. 8 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. Η γλώσσα SQL διαθέτει τρεις εντολές για το σκοπό αυτό: 1 DELETE για τη διαγραφή εγγραφών από πίνακες, 2 UPDATE για την τροποποίηση εγγραφών σε πίνακες, 3 INSERT για την εισαγωγή εγγραφών σε πίνακες. 9 / 103

Σκοπός του μαθήματος Ενημέρωση είναι η τροποποίηση του περιεχομένου της βάσης δεδομένων. Η γλώσσα SQL διαθέτει τρεις εντολές για το σκοπό αυτό: 1 DELETE για τη διαγραφή εγγραφών από πίνακες, 2 UPDATE για την τροποποίηση εγγραφών σε πίνακες, 3 INSERT για την εισαγωγή εγγραφών σε πίνακες. Σκοπός του μαθήματος είναι να καταλάβετε τη λειτουργία ενημέρωσης μιας βάσης δεδομένων μέσα από τις εντολές DELETE, UPDATE, INSERT. 10 / 103

Διαρκής μεταβολή του περιεχομένου 11 / 103

Διαρκής μεταβολή του περιεχομένου Τι μεταβάλλεται Το πλήθος των εγγραφών ενός ή περισσότερων πινάκων. Οι τιμές ενός ή περισσότερων πεδίων σε έναν η περισσότερους πίνακες. 12 / 103

Διαρκής μεταβολή του περιεχομένου Τι μεταβάλλεται Το πλήθος των εγγραφών ενός ή περισσότερων πινάκων. Οι τιμές ενός ή περισσότερων πεδίων σε έναν η περισσότερους πίνακες. Τι δεν μεταβάλλεται Το πλήθος των πινάκων της βάσης δεδομένων (σχήμα). Η δομή των πινάκων της βάσης δεδομένων (σχήμα). 13 / 103

Σε μια απόδειξη πώλησης; Τι καταγράφεται κατά την πώληση ενός προϊόντος; Εικόνα από: http://en.wikipedia.org/wiki/receipt 14 / 103

Που καταγράφεται; Που καταγράφεται η πώληση ενός προϊόντος; 15 / 103

Συναλλαγές στο ΑΤΜ Τι καταγράφεται σε μια συναλλαγή σε ένα ΑΤΜ; Εικόνα από: http://en.wikipedia.org/wiki/automated_teller_machine 16 / 103

Καταγραφή τραπεζικών συναλλαγών. Που καταγράφονται οι τραπεζικές συναλλαγές; 17 / 103

Στο facebook; Τι καταγράφεται κατά την εγγραφή στο facebook; 18 / 103

Στο facebook; Που καταγράφονται τα μηνύματα του facebook; 19 / 103

Στο facebook; Που καταγράφονται τα μηνύματα του facebook; 20 / 103

Στο facebook; Που καταγράφονται τα μηνύματα του facebook; 21 / 103

Στο facebook; Που καταγράφονται τα μηνύματα του facebook; 1 Πόσο «ρεύμα» πληρώνει η εταιρεία facebook; 2 Πόση ενέργεια καταναλώνεται παγκοσμίως για τις ανάγκες του διαδικτύου; 3 Τι ξέρετε για τη Βόρεια Καρολίνα; 22 / 103

Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της βάσης δεδομένων 2 Διαγραφή δεδομένων με την εντολή DELETE 3 Τροποποίηση δεδομένων με την εντολή UPDATE 4 Εισαγωγή δεδομένων INSERT 5 Ανάλυση ενός προβλήματος 23 / 103

Διαγραφή εγγραφών με την εντολή DELETE DELETE FROM πίνακας WHERE παράσταση 24 / 103

Διαγραφή εγγραφών με την εντολή DELETE DELETE FROM πίνακας WHERE παράσταση Παρατηρήσεις για την εντολή DELETE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση DELETE. 25 / 103

Διαγραφή εγγραφών με την εντολή DELETE DELETE FROM πίνακας WHERE παράσταση Παρατηρήσεις για την εντολή DELETE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση DELETE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση WHERE. 26 / 103

Διαγραφή εγγραφών με την εντολή DELETE DELETE FROM πίνακας WHERE παράσταση Παρατηρήσεις για την εντολή DELETE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση DELETE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση WHERE. 3 Η διαγραφή γίνεται κατά πλειάδες (εγγραφές) και όχι μεμονωμένα. 27 / 103

Διαγραφή εγγραφών με την εντολή DELETE DELETE FROM πίνακας WHERE παράσταση Παρατηρήσεις για την εντολή DELETE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση DELETE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση WHERE. 3 Η διαγραφή γίνεται κατά πλειάδες (εγγραφές) και όχι μεμονωμένα. 4 Η φράση WHERE είναι προαιρετική, αλλά χωρίς αυτή θα γίνει διαγραφή όλων των εγγραφών. 28 / 103

Διαγραφή δεδομένων ενός πίνακα Διαγραφή όλων των δεδομένων ενός πίνακα 1 DELETE 2 FROM projects; 29 / 103

Διαγραφή δεδομένων ενός πίνακα Διαγραφή όλων των δεδομένων ενός πίνακα 1 DELETE 2 FROM projects; Προσοχή: Θα διαγραφούν όλες οι εγγραφές του πίνακα. Ολες. 30 / 103

Διαγραφή δεδομένων ενός πίνακα Διαγραφή όλων των δεδομένων ενός πίνακα 1 DELETE 2 FROM projects; Προσοχή: Θα διαγραφούν όλες οι εγγραφές του πίνακα. Ολες. Σφάλμα: 1 DELETE * 2 FROM projects; 31 / 103

Επιλεκτική διαγραφή δεδομένων 32 / 103

Επιλεκτική διαγραφή δεδομένων DELETE με WHERE για τη διαγραφή υποσυνόλου των δεδομένων 1 DELETE 2 FROM projects 3 WHERE proid = 43; 33 / 103

Επιλεκτική διαγραφή δεδομένων DELETE με WHERE για τη διαγραφή υποσυνόλου των δεδομένων 1 DELETE 2 FROM projects 3 WHERE proid = 43; 1 Τι θα συμβεί αν δεν υπάρχει εγγραφή στον πίνακα projects με proid=43; 2 Τι θα συμβεί στον πίνακα workson για την απασχόληση των υπαλλήλων στο έργο με proid=43; 34 / 103

Διαγραφή δεδομένων με υποερώτημα Να διαγραφεί η συμμετοχή υπαλλήλων στο έργο με κωδικό 43 για τους υπαλλήλους με μισθό άνω των 1400 35 / 103

Διαγραφή δεδομένων με υποερώτημα Να διαγραφεί η συμμετοχή υπαλλήλων στο έργο με κωδικό 43 για τους υπαλλήλους με μισθό άνω των 1400 1 DELETE 2 FROM workson 3 WHERE proid = 43 4 AND empid 36 / 103

Διαγραφή δεδομένων με υποερώτημα Να διαγραφεί η συμμετοχή υπαλλήλων στο έργο με κωδικό 43 για τους υπαλλήλους με μισθό άνω των 1400 1 DELETE 2 FROM workson 3 WHERE proid = 43 4 AND empid IN (SELECT empid 5 FROM employees 6 WHERE salary > 1400); 37 / 103

Διαγραφή δεδομένων με υποερώτημα σύζευξης Να διαγραφούν οι υπάλληλοι που δεν συμμετέχουν σε κανένα έργο 38 / 103

Διαγραφή δεδομένων με υποερώτημα σύζευξης Να διαγραφούν οι υπάλληλοι που δεν συμμετέχουν σε κανένα έργο 1 DELETE 2 FROM employees 3 WHERE empid IN 39 / 103

Διαγραφή δεδομένων με υποερώτημα σύζευξης Να διαγραφούν οι υπάλληλοι που δεν συμμετέχουν σε κανένα έργο 1 DELETE 2 FROM employees 3 WHERE empid IN 4 (SELECT e.empid 5 FROM employees e LEFT JOIN workson w 6 ON e.empid = w.empid 7 WHERE w.empid IS NULL); 40 / 103

Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της βάσης δεδομένων 2 Διαγραφή δεδομένων με την εντολή DELETE 3 Τροποποίηση δεδομένων με την εντολή UPDATE 4 Εισαγωγή δεδομένων INSERT 5 Ανάλυση ενός προβλήματος 41 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση 42 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση Παρατηρήσεις για την εντολή UPDATE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση UPDATE. 43 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση Παρατηρήσεις για την εντολή UPDATE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση UPDATE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση SET. 44 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση Παρατηρήσεις για την εντολή UPDATE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση UPDATE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση SET. 3 Τήρηση κανόνων ακεραιότητας. 45 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση Παρατηρήσεις για την εντολή UPDATE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση UPDATE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση SET. 3 Τήρηση κανόνων ακεραιότητας. 4 Ταυτόχρονη αλλαγή δύο ή περισσότερων πεδίων. 46 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση Παρατηρήσεις για την εντολή UPDATE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση UPDATE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση SET. 3 Τήρηση κανόνων ακεραιότητας. 4 Ταυτόχρονη αλλαγή δύο ή περισσότερων πεδίων. 5 Η ενημέρωση γίνεται κατά πλειάδες (εγγραφές) και όχι μεμονωμένα. 47 / 103

Ενημέρωση εγγραφών με την εντολή UPDATE UPDATE πίνακας SET πεδίο=τιμή WHERE παράσταση Παρατηρήσεις για την εντολή UPDATE 1 Χρειάζεται έγκυρο όνομα πίνακα που ακολουθεί φράση UPDATE. 2 Χρειάζεται έγκυρο όνομα πεδίου που ακολουθεί φράση SET. 3 Τήρηση κανόνων ακεραιότητας. 4 Ταυτόχρονη αλλαγή δύο ή περισσότερων πεδίων. 5 Η ενημέρωση γίνεται κατά πλειάδες (εγγραφές) και όχι μεμονωμένα. 6 Η φράση WHERE είναι προαιρετική, αλλά χωρίς αυτή θα γίνει τροποποίηση όλων των εγγραφών. 48 / 103

Παράδειγμα ενημέρωσης Αύξηση μισθού κατά 100 του υπαλλήλου με κωδικό 153 49 / 103

Παράδειγμα ενημέρωσης Αύξηση μισθού κατά 100 του υπαλλήλου με κωδικό 153 1 UPDATE employees 2 SET salary = salary + 100 3 WHERE empid = 153; 50 / 103

Παράδειγμα ενημέρωσης Αύξηση μισθού κατά 100 του υπαλλήλου με κωδικό 153 1 UPDATE employees 2 SET salary = salary + 100 3 WHERE empid = 153; Πριν την ενημέρωση 1 SELECT empid, salary 2 FROM employees 3 WHERE empid = 153; 4 5 empid salary 6 --------------- 7 153 1321.92 51 / 103

Παράδειγμα ενημέρωσης Αύξηση μισθού κατά 100 του υπαλλήλου με κωδικό 153 1 UPDATE employees 2 SET salary = salary + 100 3 WHERE empid = 153; Πριν την ενημέρωση 1 SELECT empid, salary 2 FROM employees 3 WHERE empid = 153; 4 5 empid salary 6 --------------- 7 153 1321.92 Μετά την ενημέρωση 1 SELECT empid, salary 2 FROM employees 3 WHERE empid = 153; 4 5 empid salary 6 --------------- 7 153 1421.92 52 / 103

Τροποποίηση δεδομένων με υποερώτημα Να δοθεί αύξηση 7% στους υπαλλήλους που απασχολούνται σε περισσότερα από 2 έργα 53 / 103

Τροποποίηση δεδομένων με υποερώτημα Να δοθεί αύξηση 7% στους υπαλλήλους που απασχολούνται σε περισσότερα από 2 έργα 1 UPDATE employees 2 SET salary = salary*1.07 3 WHERE empid IN 54 / 103

Τροποποίηση δεδομένων με υποερώτημα Να δοθεί αύξηση 7% στους υπαλλήλους που απασχολούνται σε περισσότερα από 2 έργα 1 UPDATE employees 2 SET salary = salary*1.07 3 WHERE empid IN (SELECT empid 4 FROM workson 5 GROUP BY empid 6 HAVING COUNT(*) > 2); 55 / 103

Τροποποίηση δεδομένων με υποερώτημα Να δοθεί αύξηση 7% στους υπαλλήλους που απασχολούνται σε περισσότερα από 2 έργα 1 UPDATE employees 2 SET salary = salary*1.07 3 WHERE empid IN (SELECT empid 4 FROM workson 5 GROUP BY empid 6 HAVING COUNT(*) > 2); 1 Θα εκτελεστεί πρώτα το υποερώτημα και θα επιστρέψει μια λίστα τιμών empid. 2 Θα εκτελεστεί ενημέρωση των εγγραφών του πίνακα employees για όλες τι τιμές της λίστας empid που επιστρέφονται από το υποερώτημα. 56 / 103

Ενημέρωση σύνθετου κλειδιού Μετάθεση υπαλλήλου 419 από το έργο 43 στο έργο 5 57 / 103

Ενημέρωση σύνθετου κλειδιού Μετάθεση υπαλλήλου 419 από το έργο 43 στο έργο 5 1 UPDATE workson 2 SET proid = 5 3 WHERE proid = 43 AND empid = 419; 58 / 103

Ενημέρωση σύνθετου κλειδιού Μετάθεση υπαλλήλου 419 από το έργο 43 στο έργο 5 1 UPDATE workson 2 SET proid = 5 3 WHERE proid = 43 AND empid = 419; Λάθος ενημέρωση της βάσης 1 UPDATE workson 2 SET proid = 5 3 WHERE empid = 419; Αν ο υπάλληλος με κωδικό 419, απασχολείται σε 2 έργα, τότε ο δεύτερος τρόπος θα παράξει διπλότυπες τιμές στο πρωτεύον κλειδί του πίνακα workson και η ενημέρωση θα αποτύχει. 59 / 103

Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της βάσης δεδομένων 2 Διαγραφή δεδομένων με την εντολή DELETE 3 Τροποποίηση δεδομένων με την εντολή UPDATE 4 Εισαγωγή δεδομένων INSERT 5 Ανάλυση ενός προβλήματος 60 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); 61 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); Γενικές παρατηρήσεις για την εντολή INSERT 1 Χρειάζεται έγκυρο όνομα πίνακα/πεδίων μετά τον όρο INSERT INTO. 62 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); Γενικές παρατηρήσεις για την εντολή INSERT 1 Χρειάζεται έγκυρο όνομα πίνακα/πεδίων μετά τον όρο INSERT INTO. 2 Δίνουμε το όνομα του πίνακα και μέσα σε παρενθέσεις τη λίστα πεδίων. 63 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); Γενικές παρατηρήσεις για την εντολή INSERT 1 Χρειάζεται έγκυρο όνομα πίνακα/πεδίων μετά τον όρο INSERT INTO. 2 Δίνουμε το όνομα του πίνακα και μέσα σε παρενθέσεις τη λίστα πεδίων. 3 Με τον όρο VALUES δίνουμε έγκυρες τιμές στα πεδία. 64 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); Γενικές παρατηρήσεις για την εντολή INSERT 1 Χρειάζεται έγκυρο όνομα πίνακα/πεδίων μετά τον όρο INSERT INTO. 2 Δίνουμε το όνομα του πίνακα και μέσα σε παρενθέσεις τη λίστα πεδίων. 3 Με τον όρο VALUES δίνουμε έγκυρες τιμές στα πεδία. 4 Το πλήθος πεδίων πρέπει να ταυτίζεται με το πλήθος τιμών. 65 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); Γενικές παρατηρήσεις για την εντολή INSERT 1 Χρειάζεται έγκυρο όνομα πίνακα/πεδίων μετά τον όρο INSERT INTO. 2 Δίνουμε το όνομα του πίνακα και μέσα σε παρενθέσεις τη λίστα πεδίων. 3 Με τον όρο VALUES δίνουμε έγκυρες τιμές στα πεδία. 4 Το πλήθος πεδίων πρέπει να ταυτίζεται με το πλήθος τιμών. 5 Μπορούμε να παραλείψουμε από τη λίστα πεδίων όσα πεδία μπορούν να πάρουν τιμή NULL. 66 / 103

Η εντολή INSERT για την εισαγωγή δεδομένων Γενική μορφή της εντολής INSERT 1 INSERT INTO tablename(column1, column2,..., columnn) 2 VALUES (value1, value2,..., valuen); Γενικές παρατηρήσεις για την εντολή INSERT 1 Χρειάζεται έγκυρο όνομα πίνακα/πεδίων μετά τον όρο INSERT INTO. 2 Δίνουμε το όνομα του πίνακα και μέσα σε παρενθέσεις τη λίστα πεδίων. 3 Με τον όρο VALUES δίνουμε έγκυρες τιμές στα πεδία. 4 Το πλήθος πεδίων πρέπει να ταυτίζεται με το πλήθος τιμών. 5 Μπορούμε να παραλείψουμε από τη λίστα πεδίων όσα πεδία μπορούν να πάρουν τιμή NULL. 6 Αν μια τιμή αντιστοιχεί σε πεδίο κειμένου ή ημερομηνίας χρειάζονται εισαγωγικά πχ Δημήτριος ή 2005-05-10. 67 / 103

Εισαγωγή δεδομένων με INSERT, 3 τρόποι 68 / 103

Εισαγωγή δεδομένων με INSERT, 3 τρόποι Τοποθέτηση του υπαλλήλου με κωδικό 811 στο έργο με κωδικό 5 1 INSERT INTO workson (empid, proid) 2 VALUES (811, 5); 69 / 103

Εισαγωγή δεδομένων με INSERT, 3 τρόποι Τοποθέτηση του υπαλλήλου με κωδικό 811 στο έργο με κωδικό 5 1 INSERT INTO workson (empid, proid) 2 VALUES (811, 5); Τοποθέτηση του υπαλλήλου με κωδικό 811 στο έργο με κωδικό 5 1 INSERT INTO workson (proid, empid) 2 VALUES (5, 811); 70 / 103

Εισαγωγή δεδομένων με INSERT, 3 τρόποι Τοποθέτηση του υπαλλήλου με κωδικό 811 στο έργο με κωδικό 5 1 INSERT INTO workson (empid, proid) 2 VALUES (811, 5); Τοποθέτηση του υπαλλήλου με κωδικό 811 στο έργο με κωδικό 5 1 INSERT INTO workson (proid, empid) 2 VALUES (5, 811); Τοποθέτηση του υπαλλήλου με κωδικό 811 στο έργο με κωδικό 5 1 INSERT INTO workson 2 VALUES (811, 5); 71 / 103

Τι ισχύει για την εντολή INSERT 72 / 103

Τι ισχύει για την εντολή INSERT 1 Το πλήθος πεδίων στη λίστα πεδίων πρέπει να είναι ακριβώς το ίδιο με το πλήθος της λίστας τιμών. 73 / 103

Τι ισχύει για την εντολή INSERT 1 Το πλήθος πεδίων στη λίστα πεδίων πρέπει να είναι ακριβώς το ίδιο με το πλήθος της λίστας τιμών. 2 Οι τιμές της λίστας τιμών αντιστοιχίζονται ένα-προς-ένα στα πεδία της λίστας πεδίων. 74 / 103

Τι ισχύει για την εντολή INSERT 1 Το πλήθος πεδίων στη λίστα πεδίων πρέπει να είναι ακριβώς το ίδιο με το πλήθος της λίστας τιμών. 2 Οι τιμές της λίστας τιμών αντιστοιχίζονται ένα-προς-ένα στα πεδία της λίστας πεδίων. 3 Η σειρά εμφάνισης στη λίστα πεδίων δεν παίζει ρόλο. 75 / 103

Τι ισχύει για την εντολή INSERT 1 Το πλήθος πεδίων στη λίστα πεδίων πρέπει να είναι ακριβώς το ίδιο με το πλήθος της λίστας τιμών. 2 Οι τιμές της λίστας τιμών αντιστοιχίζονται ένα-προς-ένα στα πεδία της λίστας πεδίων. 3 Η σειρά εμφάνισης στη λίστα πεδίων δεν παίζει ρόλο. 4 Στη λίστα πεδίων πρέπει να συμπεριλαμβάνονται όλα τα πεδία που, κατά τη δημιουργία του πίνακα δηλώθηκαν ως NOT NULL. 76 / 103

Τι ισχύει για την εντολή INSERT 1 Το πλήθος πεδίων στη λίστα πεδίων πρέπει να είναι ακριβώς το ίδιο με το πλήθος της λίστας τιμών. 2 Οι τιμές της λίστας τιμών αντιστοιχίζονται ένα-προς-ένα στα πεδία της λίστας πεδίων. 3 Η σειρά εμφάνισης στη λίστα πεδίων δεν παίζει ρόλο. 4 Στη λίστα πεδίων πρέπει να συμπεριλαμβάνονται όλα τα πεδία που, κατά τη δημιουργία του πίνακα δηλώθηκαν ως NOT NULL. 5 Ολες οι τιμές της λίστας τιμών θα πρέπει να είναι σύμφωνες με το πεδίου ορισμού όλων των των πεδίων του πίνακα. 77 / 103

Τι ισχύει για την εντολή INSERT - συνέχεια 1 Αν πρέπει να δηλωθεί η τιμή NULL κατά την εισαγωγή δεδομένων δίνεται ως NULL και όχι με εισαγωγικά NULL. 78 / 103

Τι ισχύει για την εντολή INSERT - συνέχεια 1 Αν πρέπει να δηλωθεί η τιμή NULL κατά την εισαγωγή δεδομένων δίνεται ως NULL και όχι με εισαγωγικά NULL. 2 Αν ένα πεδίο παραληφθεί από τη λίστα πεδίων, τότε εισάγεται η προκαθορισμένη (DEFAULT) τιμή. 79 / 103

Τι ισχύει για την εντολή INSERT - συνέχεια 1 Αν πρέπει να δηλωθεί η τιμή NULL κατά την εισαγωγή δεδομένων δίνεται ως NULL και όχι με εισαγωγικά NULL. 2 Αν ένα πεδίο παραληφθεί από τη λίστα πεδίων, τότε εισάγεται η προκαθορισμένη (DEFAULT) τιμή. 3 Σε συσχετιζόμενους πίνακες 80 / 103

Τι ισχύει για την εντολή INSERT - συνέχεια 1 Αν πρέπει να δηλωθεί η τιμή NULL κατά την εισαγωγή δεδομένων δίνεται ως NULL και όχι με εισαγωγικά NULL. 2 Αν ένα πεδίο παραληφθεί από τη λίστα πεδίων, τότε εισάγεται η προκαθορισμένη (DEFAULT) τιμή. 3 Σε συσχετιζόμενους πίνακες Η εισαγωγή δεδομένων στον πατρικό πίνακα δεν έχει καμία επίδραση στον θυγατρικό πίνακα. 81 / 103

Τι ισχύει για την εντολή INSERT - συνέχεια 1 Αν πρέπει να δηλωθεί η τιμή NULL κατά την εισαγωγή δεδομένων δίνεται ως NULL και όχι με εισαγωγικά NULL. 2 Αν ένα πεδίο παραληφθεί από τη λίστα πεδίων, τότε εισάγεται η προκαθορισμένη (DEFAULT) τιμή. 3 Σε συσχετιζόμενους πίνακες Η εισαγωγή δεδομένων στον πατρικό πίνακα δεν έχει καμία επίδραση στον θυγατρικό πίνακα. Η εισαγωγή δεδομένων στο θυγατρικό πίνακα, επηρεάζεται από την ακεραιότητα αναφορών. 82 / 103

Τι ισχύει για την εντολή INSERT - συνέχεια 1 Αν πρέπει να δηλωθεί η τιμή NULL κατά την εισαγωγή δεδομένων δίνεται ως NULL και όχι με εισαγωγικά NULL. 2 Αν ένα πεδίο παραληφθεί από τη λίστα πεδίων, τότε εισάγεται η προκαθορισμένη (DEFAULT) τιμή. 3 Σε συσχετιζόμενους πίνακες Η εισαγωγή δεδομένων στον πατρικό πίνακα δεν έχει καμία επίδραση στον θυγατρικό πίνακα. Η εισαγωγή δεδομένων στο θυγατρικό πίνακα, επηρεάζεται από την ακεραιότητα αναφορών. 4 Αν για οποιοδήποτε λόγο, αποτύχει η εκτέλεση μιας εντολής INSERT η αποτυχία ισχύει συνολικά για την εγγραφή και όχι μόνο για κάποια από τα πεδία. 83 / 103

Αποτυχία INSERT 84 / 103

Αποτυχία INSERT Λείπει το υποχρεωτικό πεδίο lastname 1 INSERT INTO employees (empid, depid, hiredate) 2 VALUES (199, 5, CURRENT_DATE()); 85 / 103

Αποτυχία INSERT Λείπει το υποχρεωτικό πεδίο lastname 1 INSERT INTO employees (empid, depid, hiredate) 2 VALUES (199, 5, CURRENT_DATE()); Λείπει η τιμή από το πεδίο lastname 1 INSERT INTO employees (empid, depid, lastname) 2 VALUES (199, 5) 86 / 103

Αποτυχία INSERT Λείπει το υποχρεωτικό πεδίο lastname 1 INSERT INTO employees (empid, depid, hiredate) 2 VALUES (199, 5, CURRENT_DATE()); Λείπει η τιμή από το πεδίο lastname 1 INSERT INTO employees (empid, depid, lastname) 2 VALUES (199, 5) Η τιμή του πρωτεύοντος κλειδιού υπάρχει ήδη 1 INSERT INTO employees (empid, depid, lastname) 2 VALUES (811, 4, Κάτου ) 87 / 103

Εναλλακτικός τρόπος για την εντολή INSERT Εισαγωγή νέας εγγραφής στον πίνακα employees 1 INSERT INTO employees 2 SET empid = 199, 3 lastname = Κάτου, 4 firstname = Αννα, 5 depid = 5, 6 salary = 1500, 7 hiredate = 2010-03-15 ; 88 / 103

Εναλλακτικός τρόπος για την εντολή INSERT Εισαγωγή νέας εγγραφής στον πίνακα employees 1 INSERT INTO employees 2 SET empid = 199, 3 lastname = Κάτου, 4 firstname = Αννα, 5 depid = 5, 6 salary = 1500, 7 hiredate = 2010-03-15 ; 1 Ο τρόπος αυτός μοιάζει με την εντολή UPDATE. 89 / 103

Εναλλακτικός τρόπος για την εντολή INSERT Εισαγωγή νέας εγγραφής στον πίνακα employees 1 INSERT INTO employees 2 SET empid = 199, 3 lastname = Κάτου, 4 firstname = Αννα, 5 depid = 5, 6 salary = 1500, 7 hiredate = 2010-03-15 ; 1 Ο τρόπος αυτός μοιάζει με την εντολή UPDATE. 2 Χρησιμοποιούμε τη γραφή SET column = value. 90 / 103

Εναλλακτικός τρόπος για την εντολή INSERT Εισαγωγή νέας εγγραφής στον πίνακα employees 1 INSERT INTO employees 2 SET empid = 199, 3 lastname = Κάτου, 4 firstname = Αννα, 5 depid = 5, 6 salary = 1500, 7 hiredate = 2010-03-15 ; 1 Ο τρόπος αυτός μοιάζει με την εντολή UPDATE. 2 Χρησιμοποιούμε τη γραφή SET column = value. 3 Χωρίζουμε τη λίστα πεδίων με κόμματα. 91 / 103

Εναλλακτικός τρόπος για την εντολή INSERT Εισαγωγή νέας εγγραφής στον πίνακα employees 1 INSERT INTO employees 2 SET empid = 199, 3 lastname = Κάτου, 4 firstname = Αννα, 5 depid = 5, 6 salary = 1500, 7 hiredate = 2010-03-15 ; 1 Ο τρόπος αυτός μοιάζει με την εντολή UPDATE. 2 Χρησιμοποιούμε τη γραφή SET column = value. 3 Χωρίζουμε τη λίστα πεδίων με κόμματα. 4 Η σειρά εμφάνισης των πεδίων δεν έχει σημασία. 92 / 103

Εναλλακτικός τρόπος για την εντολή INSERT Εισαγωγή νέας εγγραφής στον πίνακα employees 1 INSERT INTO employees 2 SET empid = 199, 3 lastname = Κάτου, 4 firstname = Αννα, 5 depid = 5, 6 salary = 1500, 7 hiredate = 2010-03-15 ; 1 Ο τρόπος αυτός μοιάζει με την εντολή UPDATE. 2 Χρησιμοποιούμε τη γραφή SET column = value. 3 Χωρίζουμε τη λίστα πεδίων με κόμματα. 4 Η σειρά εμφάνισης των πεδίων δεν έχει σημασία. 5 Ισχύουν όλοι οι περιορισμοί ακεραιότητας δεδομένων (κλειδιά, τιμές NULL, κτλ). 93 / 103

Εισαγωγή δεδομένων με υποερώτημα Να τοποθετηθεί στο έργο με 5 ο υπάλληλος του τμήματος 4 που παίρνει το μεγαλύτερο μισθό 1 INSERT INTO workson(proid, empid) 2 SELECT 5, empid 3 FROM employees 4 WHERE salary = ( SELECT MAX(salary) 5 FROM employees 6 WHERE depid = 4 ); 94 / 103

Εισαγωγή δεδομένων με υποερώτημα Να τοποθετηθεί στο έργο με 5 ο υπάλληλος του τμήματος 4 που παίρνει το μεγαλύτερο μισθό 1 INSERT INTO workson(proid, empid) 2 SELECT 5, empid 3 FROM employees 4 WHERE salary = ( SELECT MAX(salary) 5 FROM employees 6 WHERE depid = 4 ); 1 Δε χρειάζεται η φράση VALUES σε υποερωτήματα μετά το INSERT. 2 Προσοχή στην παράσταση SELECT 5, empid. 3 Τι θα συμβεί αν όλοι οι υπάλληλοι του τμήματος 4 έχουν τον ίδιο μισθό; 95 / 103

Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της βάσης δεδομένων 2 Διαγραφή δεδομένων με την εντολή DELETE 3 Τροποποίηση δεδομένων με την εντολή UPDATE 4 Εισαγωγή δεδομένων INSERT 5 Ανάλυση ενός προβλήματος 96 / 103

Διπλή εισαγωγή Εισαγωγή επιπλέον εγγραφής για τον ίδιο υπάλληλο 1 INSERT INTO employees(empid, lastname, depid) 2 VALUES (781, Μικράκη, 4); 97 / 103

Διπλή εισαγωγή Εισαγωγή επιπλέον εγγραφής για τον ίδιο υπάλληλο 1 INSERT INTO employees(empid, lastname, depid) 2 VALUES (781, Μικράκη, 4); Ωστόσο, η κ. Μικράκη υπάρχει ήδη στη βάση δεδομένων 1 SELECT empid, lastname, depid 2 FROM employees 3 WHERE lastname = Μικράκη ; 4 5 empid lastname depid 6 ---------------------- 7 780 Μικράκη 4 8 781 Μικράκη 4 98 / 103

Λανθασμένη διόρθωση του προβλήματος Διαγραφή της υπαλλήλου με επώνυμου ΜΙΚΡΑΚΗ 1 DELETE FROM employees 2 WHERE lastname = Μικράκη ; 3 4 Query OK, 2 rows affected (0.00 sec) 99 / 103

Λανθασμένη διόρθωση του προβλήματος Διαγραφή της υπαλλήλου με επώνυμου ΜΙΚΡΑΚΗ 1 DELETE FROM employees 2 WHERE lastname = Μικράκη ; 3 4 Query OK, 2 rows affected (0.00 sec) Τώρα η κ. ΜΙΚΡΑΚΗ δεν υπάρχει καθόλου στη βάση δεδομένων 1 SELECT empid, lastname, depid 2 FROM employees 3 WHERE lastname = Μικράκη ; 4 5 Empty set (0.01 sec) Διαγράφηκαν και οι δύο εγγραφές!! 100 / 103

Πιο προσεκτική διόρθωση του προβλήματος Διαγραφή της υπαλλήλου με κωδικό υπαλλήλου 781 1 DELETE FROM employees 2 WHERE empid=781; 3 4 Query OK, 1 row affected (0.00 sec) 101 / 103

Πιο προσεκτική διόρθωση του προβλήματος Διαγραφή της υπαλλήλου με κωδικό υπαλλήλου 781 1 DELETE FROM employees 2 WHERE empid=781; 3 4 Query OK, 1 row affected (0.00 sec) Τώρα η κ. Μικράκη υπάρχει μία φορά στη βάση δεδομένων 1 SELECT empid, lastname, depid 2 FROM employees 3 WHERE lastname = Μικράκη ; 4 5 empid lastname depid 6 ---------------------- 7 780 Μικράκη 4 102 / 103

Σχόλια και ερωτήσεις Σας ευχαριστώ για την προσοχή σας. Είμαι στη διάθεσή σας για σχόλια, απορίες και ερωτήσεις. 103 / 103