Κεφάλαιο 11 Ενημέρωση Δεδομένων και Συνολική Επισκόπηση Ερωτημάτων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Κεφάλαιο 11 Ενημέρωση Δεδομένων και Συνολική Επισκόπηση Ερωτημάτων"

Transcript

1 Κεφάλαιο 11 Ενημέρωση Δεδομένων και Συνολική Επισκόπηση Ερωτημάτων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν οι εντολές UPDATE και DELETE για ενημέρωση και διαγραφή εγγραφών σε έναν ή περισσότερους πίνακες. Προαπαιτούμενη γνώση Προαπαιτούμενα για την κατανόηση των εννοιών αλλά και την εργαστηριακή άσκηση είναι τα ακόλουθα:. Η ύλη των Κεφ. 3, Εισαγωγικές Έννοιες Στη συνέχεια θα παρουσιαστεί η σύνταξη και χρήση των εντολών UPDATE και DELETE. Στα ερωτήματα-παραδείγματα που θα δοθούν θα χρησιμοποιηθούν οι πίνακες που χρησιμοποιήθηκαν και σε προηγούμενα κεφάλαια, οι οποίοι έχουν ως ακολούθως: Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Kostantinou Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Phones cid pnum Account accid balance dateofcreation Owns cid accid

2 Action accid actid amount type dateofaction Transfer accidsource actidsource acciddest actiddest Η εντολή UPDATE Η ενημέρωση εγγραφών, δηλ. η αλλαγή τιμών σε ένα ή περισσότερα πεδία τους, γίνεται με τη χρήση της εντολής UPDATE. Η βασική σύνταξη της εντολής έχει ως εξής: UPDATE πίνακες SET λίστα_αναθέσεων WHERE λογική_έκφραση Το όρισμα στο UPDATE (πίνακες) είναι ισοδύναμο με το όρισμα που παίρνει το FROM σε ένα SELECT-FROM-WHERE ερώτημα. Με άλλα λόγια μπορεί να περιλαμβάνει συνενώσεις πολλαπλών πινάκων, πίνακες που προκύπτουν από εμφωλευμένα ερωτήματα κλπ. Κατά την εκτέλεση, όλες οι εγγραφές που ανήκουν σε κάποιον από τους πίνακες που αναγράφονται στο όρισμα πίνακες του UPDATE και μπορεί να ενημερωθούν (δηλ. υπάρχουν τα αντίστοιχα δικαιώματα πχ., πρόκειται για βασικούς πίνακες στη ΒΔ και όχι για πίνακες που προκύπτουν από εμφωλευμένα ερωτήματα) ενημερώνονται εφόσον πληρούν τη λογική συνθήκη του WHERE. Οι αλλαγές στις οποίες υπόκεινται περιγράφονται στο SET. Ακολουθούν παραδείγματα. Η πλήρης σύνταξη της εντολής μπορεί να βρεθεί στο Κεφ του εγχειριδίου της MySQL 5.7. Ερώτημα 1: Τοκίστε με 1% όλους τους λογαριασμούς. Θα πρέπει στον πίνακα Account να αλλάξουμε το περιεχόμενο του balance. Query 1: UPDATE Account SET balance=balance+0.01*balance; Προσέξτε ότι παραλείποντας το WHERE υπονοείται WHERE TRUE και επομένως το SET εφαρμόζεται σε όλες τις εγγραφές του Account. Επίσης παρατηρήστε ότι ο τελεστής = στο SET παίζει το ρόλο της ανάθεσης και όχι της σύγκρισης. Το αποτέλεσμα θα είναι: Account accid balance dateofcreation

3 Ερώτημα 2: Εφαρμόστε έκτακτη εισφορά 500 ευρώ για τους λογαριασμούς με υπόλοιπο άνω των Query 2: UPDATE Account SET balance=balance-500 WHERE balance >30000; Ερώτημα 3: Αλλάξτε το ον/μο της: Maria Papantoniou σε Mary Papadoniou. Query 3: UPDATE Customer SET name='mary', sname='papadoniou' WHERE name='maria' AND sname='papantoniou'; Ερώτημα 4: Αλλάξτε το όνομα του: Kostas Kostantinou σε Costas Kostantinou και προσθέστε 1000 ευρώ σε κάθε λογαριασμό του. 1 ος Τρόπος Μπορούμε να δούμε το παραπάνω ερώτημα σαν δύο ξεχωριστά ερωτήματα ενημέρωσης ως εξής: UPDATE Customer SET name='costas' WHERE name='kostas' AND sname='kostantinou'; και στη συνέχεια χρησιμοποιώντας εμφωλευμένο ερώτημα: UPDATE Account SET balance=balance+1000 WHERE accid IN (SELECT accid FROM Owns INNER JOIN Customer ON Owns.cid=Customer.cid WHERE name='costas' AND sname='kostantinou'); 2 ος Τρόπος Μπορούμε να χρησιμοποιήσουμε ένα ερώτημα ενημέρωσης με πολλούς πίνακες όπως παρακάτω: UPDATE Customer, Owns, Account SET name='costas', balance=balance+1000 WHERE name='kostas' AND sname='kostantinou' AND Customer.cid=Owns.cid AND Owns.accid=Account.accid; ή ισοδύναμα με INNER JOIN: UPDATE Customer INNER JOIN Owns ON Customer.cid=Owns.cid INNER JOIN Account ON Owns.accid=Account.accid SET name='costas', balance=balance+1000 WHERE name='kostas' AND sname='kostantinou';

4 Το παραπάνω ερώτημα θα αλλάξει 4 εγγραφές, 3 στον πίνακα Account και 1 στον πίνακα Customer. Υποθέτοντας τους πίνακες του παραδείγματος με τις αρχικές εγγραφές, το τελικό αποτέλεσμα θα είναι (οι εγγραφές που αλλάζουν φαίνονται με italics): Customer cid afm address name sname dateofbirth Baltetsiou st. Costas Kostantinou Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Account accid balance dateofcreation Ο τρόπος με τον οποίο εκτελείται ένα ερώτημα ενημέρωσης πολλαπλών πινάκων είναι ο ακόλουθος. Πρώτα υπολογίζεται ο τελικός πίνακας στο UPDATE. Στο παράδειγμα το καρτεσιανό γινόμενο (ή inner join) των Customer, Owns και Account. Για κάθε μία εγγραφή του τελικού πίνακα του UPDATE που πληροί τη συνθήκη του WHERE γίνονται οι αλλαγές που περιγράφονται στο SET στις εγγραφές των αντίστοιχων πινάκων από τις οποίες προέκυψε η εγγραφή που εξετάζεται. Προσοχή: Σε ερώτημα ενημέρωσης πολλαπλών πινάκων κάθε εγγραφή ενημερώνεται μία και μόνο φορά και όχι κάθε φορά που βρίσκεται σε συνδυασμό που πληροί το WHERE. Για παράδειγμα, έστω το ακόλουθο ερώτημα ενημέρωσης: UPDATE Account a1, Account a2 SET a1.balance=a1.balance + 1; Υποθέτοντας το στιγμιότυπο του Account που προέκυψε από το προηγούμενο ερώτημα το αποτέλεσμα είναι: Account accid balance dateofcreation Με άλλα λόγια σε όλες τις εγγραφές έγινε η πρόσθεση 1 ευρώ στο υπόλοιπο μία φορά, παρότι όπως γίνεται αντιληπτό κάθε εγγραφή του Account εμφανίζεται 4 φορές στο καρτεσιανό γινόμενο. Τέλος όπως αναφέρθηκε και στην αρχή, αν και στο UPDATE μπορούμε να έχουμε πίνακες που προκύπτουν από εμφωλευμένα ερωτήματα, δεν μπορούμε να αλλάξουμε τις εγγραφές αυτών των πινάκων. Για παράδειγμα το ακόλουθο ερώτημα: UPDATE (SELECT * FROM Customer) C SET name='helen' WHERE name= 'Eleni'; θα επιστρέψει το ακόλουθο σφάλμα: ERROR 1288 (HY000): The target table C of the UPDATE is not updatable

5 Αντίθετα το ακόλουθο ερώτημα: UPDATE (SELECT * FROM Customer) C, Customer SET Customer.name='Helen' WHERE Customer.name= 'Eleni'; θα πραγματοποιήσει ορθά την αλλαγή ονόματος καθώς τα πεδία που αλλάζουν ανήκουν σε βασικό πίνακα της ΒΔ και όχι στον πίνακα C που προέκυψε από το εμφωλευμένο ερώτημα. Πριν προχωρήσουμε θα πρέπει να τονιστεί ότι η ενημέρωση πεδίου που είναι ξένο κλειδί απαγορεύεται σε περίπτωση που η τιμή στην οποία αλλάζει δεν υπάρχει στον πίνακα στον οποίο αναφέρεται. Για παράδειγμα η ακόλουθη εντολή: UPDATE Owns SET cid=100 WHERE cid=1; οδηγεί σε σφάλμα καθώς δεν υπάρχει στον πίνακα Customer πελάτης με cid=100, ενώ η ακόλουθη: UPDATE Owns SET cid=3 WHERE cid=1; θα εκτελεστεί κανονικά καθώς υπάρχει πελάτης στο Customer με cid=3. Ο πίνακας Customer προφανώς δε θα υποστεί αλλαγές ενώ ο Owns θα γίνει ως εξής: Owns cid accid Κατ αντιστοιχία αν επιχειρηθεί αλλαγή πεδίου σε έναν πίνακα που είναι πίνακας στον οποίο αναφέρεται ξένο κλειδί άλλου πίνακα θα ισχύσουν οι περιορισμοί αναφοράς που έχουν τεθεί (δες και Κεφ. 3). Για παράδειγμα για τους αρχικούς πίνακες του παραδείγματος: Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Kostantinou Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Owns cid accid υποθέτοντας ότι στον πίνακα Owns το ξένο κλειδί cid έχει οριστεί με την επιλογή ON UPDATE CASCADE η ακόλουθη εντολή:

6 UPDATE Customer SET cid=10 WHERE cid=1; θα πραγματοποιηθεί επιστρέφοντας μήνυμα της μορφής: Query OK, 1 row affected Rows matched: 1 Changed: 1 Warnings: 0 που αντιστοιχεί στην αλλαγή του Customer σε: Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Kostantinou Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Εμφανίζοντας τις εγγραφές του Owns όμως, παρατηρούμε ότι έγιναν και άλλες 3 αλλαγές εξαιτίας της επιλογής ON UPDATE CASCADE στη δήλωση του ξένου κλειδιού: Owns cid accid Η εντολή DELETE Η διαγραφή εγγραφών γίνεται με τη χρήση της εντολής DELETE της οποίας η βασική σύνταξη για έναν πίνακα έχει ως εξής: DELETE FROM πίνακας WHERE λογική_έκφραση Η εκτέλεση της εντολής γίνεται εκτιμώντας για κάθε εγγραφή του πίνακα στο DELETE FROM (πίνακας) τη λογική_έκφραση του WHERE. Αν είναι TRUE τότε η εγγραφή διαγράφεται. Για παράδειγμα η ακόλουθη εντολή: DELETE FROM Account; σβήνει όλες τις εγγραφές του πίνακα Account, καθώς σε περίπτωση που δεν υπάρχει WHERE υπονοείται WHERE TRUE, ενώ η εντολή: DELETE FROM Account WHERE balance > 20000; θα διαγράψει μόνο τις εγγραφές με υπόλοιπο άνω των Η DELETE μπορεί να χρησιμοποιηθεί για να διαγραφούν εγγραφές από περισσότερους του ενός πίνακες. Η βασική σύνταξη σε αυτήν την περίπτωση έχει ως εξής: DELETE λίστα FROM πίνακες WHERE λογική_έκφραση

7 όπου λίστα είναι ένας ή περισσότεροι πίνακες χωρισμένοι με κόμμα και το όρισμα του FROM (πίνακες) είναι όμοιο με το όρισμα του UPDATE στην εντολή UPDATE-SET-WHERE, δηλ. περιλαμβάνει έκφραση που ενέχει συνενώσεις πινάκων. Η εκτέλεση της εντολής έχει ως εξής: πρώτα υπολογίζεται το FROM, στη συνέχεια για κάθε μία από τις εγγραφές του πίνακα που παράγεται ελέγχεται αν πληρείται η λογική_έκφραση του WHERE. Για τις εγγραφές που πληρείται διαγράφονται οι αντίστοιχες εγγραφές των πινάκων από τις οποίες προέκυψαν μόνο για τους πίνακες που αναγράφονται στο όρισμα του DELETE (λίστα) και εφ όσον αυτό είναι επιτρεπτό πχ. δεν πρόκειται για πίνακες που προκύπτουν από υποερωτήματα. Ακολουθούν παραδείγματα. Περισσότερα για τη σύνταξη και χρήση της DELETE μπορεί να βρεθούν στο Κεφ του εγχειριδίου της MySQL 5.7. Παράδειγμα 1: Να διαγραφούν όλοι οι πελάτες από τον πίνακα Customer που δεν έχουν κάποιο λογαριασμό. DELETE Customer FROM Customer LEFT JOIN Owns ON Customer.cid=Owns.cid WHERE Owns.cid IS NULL; Παράδειγμα 2: Να διαγραφούν όλες οι εγγραφές των πινάκων Customer και Owns που αντιστοιχούν σε πελάτες που έχουν τουλάχιστον ένα λογαριασμό με υπόλοιπο μεγαλύτερο ή ίσο των Υποθέτοντας τους εξής πίνακες: Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Kostantinou Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Account accid balance dateofcreation Owns cid accid Το παρακάτω ερώτημα: DELETE Owns, Customer FROM Customer INNER JOIN Owns ON Customer.cid=Owns.cid INNER JOIN Account ON Owns.accid=Account.accid WHERE balance>=40000; πετυχαίνει τις επιθυμητές διαγραφές αφήνοντας τους πίνακες στην ακόλουθη μορφή:

8 Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Kostantinou Rodon st. Maria Papantoniou Account accid balance dateofcreation Owns cid accid Παρόλα αυτά το ερώτημα δεν είναι σωστό γενικά. Θεωρείστε την περίπτωση στην οποία ζητάμε να απαλειφθούν οι εγγραφές στον Customer και Owns που αντιστοιχούν σε πελάτες που έχουν κάποιο λογαριασμό με υπόλοιπο μικρότερο των Το παρακάτω ερώτημα: DELETE Owns, Customer FROM Customer INNER JOIN Owns ON Customer.cid=Owns.cid INNER JOIN Account ON Owns.accid=Account.accid WHERE balance<15000; δε θα εκτελεστεί επιστρέφοντας μήνυμα σχετικό με παραβίαση ξένου κλειδιού. Ο λόγος είναι o εξής. Η μόνη εγγραφή που πληροί το WHERE από τον πίνακα του FROM, είναι η σχετική με το accid=100. Κατά συνέπεια θα επιχειρηθεί η διαγραφή της εγγραφής <1, 100> από τον πίνακα Owns και η εγγραφή με cid=1 από τον πίνακα Customer. Η δεύτερη διαγραφή θα παραβιάσει την ύπαρξη ξένου κλειδιού όσον αφορά στις εγγραφές <1, 300> και <1, 400>. Ακόμα όμως και αν δεν υπήρχε περιορισμός ξένου κλειδιού το ερώτημα δε θα ήταν σωστό καθώς οι πίνακες Customer και Owns θα ήταν ως εξής: Customer cid afm address name sname dateofbirth Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Owns cid accid αντί του ορθού: Customer cid afm address name sname dateofbirth Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou

9 Owns cid accid Για να πετύχουμε να διαγραφούν και οι 3 εγγραφές με cid=1 από το Owns πιο σωστό θα ήταν να δίναμε: DELETE Owns, Customer FROM Customer INNER JOIN Owns ON Customer.cid=Owns.cid WHERE Owns.cid IN (SELECT OW.cid FROM Οwns OW INNER JOIN Account WHERE balance<15000); Το παραπάνω ερώτημα θα αποτύχει επιστρέφοντας το ακόλουθο μήνυμα λάθους: ERROR 1093 (HY000): You can't specify target table 'Owns' for update in FROM clause Στη MySQL 5.7 δεν επιτρέπεται η χρήση σε εμφωλευμένο ερώτημα του WHERE πίνακα που μετέχει στη λίστα του DELETE και ως εκ τούτου θα υποστεί αλλαγές. Μπορούμε όμως να γράψουμε την παρακάτω εντολή που χρησιμοποιεί εμφωλευμένο στο FROM και είναι και δίνει και την τελική απάντηση στο ερώτημα: Εντολή 1 DELETE Owns, Customer FROM (SELECT cid FROM Owns INNER JOIN Account ON Owns.accid=Account.accid WHERE balance<15000) T1, Owns, Customer WHERE Customer.cid=Owns.cid AND Owns.cid=T1.cid; Σε περίπτωση που το ξένο κλειδί cid έχει οριστεί με επιλογή ON DELETE RESTRICT η εντολή δε θα εκτελεστεί επιστρέφοντας σφάλμα ξένου κλειδιού. Ο λόγος είναι ότι η MySQL 5.7 δεν εξασφαλίζει ότι ο τρόπος εκτέλεσης μιας εντολής DELETE θα ακολουθεί τις εξαρτήσεις ξένου κλειδιού. Αντίθετα αν δεν υπάρχει περιορισμός ξένου κλειδιού ή ο περιορισμός είναι με ON DELETE CASCADE η εντολή θα εκτελεστεί κανονικά διαγράφοντας τις επιθυμητές 3 εγγραφές από τον πίνακα Owns και τη 1 εγγραφή από το Customer που έχουν cid=1. Να σημειωθεί ότι στην τελευταία περίπτωση δηλ. αυτή στην οποία το ξένο κλειδί έχει οριστεί με ON DELETE CASCADE θα μπορούσαμε να πετύχουμε το ίδιο αποτέλεσμα διαγράφοντας μόνο τις σχετικές εγγραφές από τον Customer και αφήνοντας την επιλογή ON DELETE CASCADE να κάνει τις αλλαγές στον πίνακα Owns: Εντολή 2 DELETE FROM Customer WHERE cid IN (SELECT cid FROM Owns INNER JOIN Account ON Owns.accid=Account.accid WHERE balance<15000); Να σημειωθεί ότι αν όλα τα ξένα κλειδιά σε όλους τους πίνακες της ΒΔ είναι ορισμένα με ON DELETE CASCADE τότε και με τις δύο παραπάνω εντολές θα γίνουν παραπλεύρως αλλαγές και στον πίνακα Phones όπου θα σβηστούν οι εγγραφές (δύο συνολικά) με cid=1 αφήνοντας μία μόνο εγγραφή στον πίνακα:

10 Phones cid pnum Παράδειγμα 3: Να διαγραφούν όλες οι εγγραφές των πινάκων Customer, Account και Owns που αντιστοιχούν σε πελάτες που έχουν τουλάχιστον ένα λογαριασμό με υπόλοιπο μικρότερο των Σύμφωνα και με το προηγούμενο παράδειγμα, αν δεν υπάρχουν ξένα κλειδιά δίνουμε: DELETE Owns, Customer, Account FROM (SELECT cid FROM Owns INNER JOIN Account ON Owns.accid=Account.accid WHERE balance<15000) T1, Owns, Customer, Account WHERE Customer.cid=Owns.cid AND Owns.cid=T1.cid AND Account.accid=Owns.accid; Αν υπάρχουν ξένα κλειδιά και είναι όλα ορισμένα με την επιλογή ON DELETE CASCADE σε όλους τους πίνακες, τότε θα γίνουν διαγραφές και στους πίνακες Phones, Action και Transfer. Στον πίνακα Phones θα σβηστούν οι εγγραφές με cid=1, στον Action οι εγγραφές με accid=100, 300 ή 400 (που αντιστοιχούν σε αυτές που διαγράφησαν από τον πίνακα Account), και στον πίνακα Transfer αυτές που έχουν είτε σαν accidsource ή σαν acciddest τις προαναφερθείσες τιμές accid. Η αρχική και τελική μορφή των πινάκων φαίνεται παρακάτω όπου έχουν διαγραμμιστεί οι εγγραφές που διαγράφονται: Customer cid afm address name sname dateofbirth Baltetsiou st. Kostas Kostantinou Diakou st. Eleni Kostantinou Rodon st. Maria Papantoniou Phones cid pnum Account accid balance dateofcreation Owns cid accid Action accid actid amount type dateofaction

11 Transfer accidsource actidsource acciddest actiddest

12 11.2 Παράδειγμα Εργαστηριακής Άσκησης Εκφώνηση: Στη Βάση Δεδομένων του ΑΕΙ/ΑΤΕΙ της εργαστηριακής άσκησης 4 θα πρέπει να εκτελέσετε τις ακόλουθες ενέργειες: 1. Αλλάξτε τους βαθμούς των εξετάσεων προσθέτοντας +1 βαθμό σε κάθε εγγραφή για όσες βαθμολογίες είναι μεταξύ 1 και Αλλάξτε την εγγραφή του φοιτητή Karpetas σε AM=5 και YearOfStudy= Αλλάξτε το έτος σπουδών σε 5 για τους φοιτητές που πέρασαν το μάθημα Domes Dedomenwn. 4. Σβήστε όλες τις εγγραφές του Requires. 5. Σβήστε όλα τα κινητά τηλέφωνα των φοιτητών. 6. Σβήστε από τον Exam τις εγγραφές που αντιστοιχούν στο μάθημα Baseis Dedomenwn. Προτού υλοποιήσετε τα ακόλουθα ερωτήματα, εξάγετε τη βάση δεδομένων university.sql ώστε οι αλλαγές που θα γίνουν να μην την επηρεάσουν. Ζητούμενα: Τροποποίηση και διαγραφή εγγραφών (UPDATE, DELETE). Ζητούμενο 1: Αλλάξτε τους βαθμούς των εξετάσεων προσθέτοντας +1 βαθμό σε κάθε εγγραφή για όσες βαθμολογίες είναι μεταξύ 1 και 9. Δίνουμε: UPDATE Exam as E SET E.Grade=E.Grade+1 WHERE E.Grade BETWEEN 1 AND 9; Παράδειγμα αποτελέσματος φαίνεται στην Εικόνα 11.1 όπου συμβαίνουν αλλαγές σε 5 εγγραφές. Εικόνα 11.1: Παράδειγμα ενημέρωσης σε ένα πεδίο.

13 Ζητούμενο 2: Αλλάξτε την εγγραφή του φοιτητή Karpetas σε AM=5 και YearOfStudy= 4. Δίνουμε: UPDATE Student SET AM=5, YearOfStudy= 4 WHERE Lastname= Karpetas ; Στην Εικόνα 11.2 φαίνεται το αποτέλεσμα. Επειδή δεν υπήρχε φοιτητής με το συγκεκριμένο επώνυμο καμία εγγραφή δεν επηρεάζεται. Εικόνα 11.2: Παράδειγμα ενημέρωσης σε δύο πεδία. Ζητούμενο 3: Αλλάξτε το έτος σπουδών σε 5 για τους φοιτητές που πέρασαν το μάθημα Domes Dedomenon. Σε αυτό το ερώτημα θα πρέπει να συνδυάσουμε τον πίνακα με τα στοιχεία των φοιτητών όπου εκεί θα γίνει η αλλαγή του έτους, τον πίνακα με τις βαθμολογίες για να γίνει έλεγχος βαθμού και τον πίνακα μαθημάτων για να ζητηθεί ο συγκεκριμένος τίτλος. Δίνουμε (βλέπε και Εικόνα 11.3): UPDATE Student as S, Exam as E, Course as C SET S.YearOfStudy= 5 WHERE S.AM=E.AM AND E.Cid=C.Cid AND E.Grade>5 AND C.Title= Domes Dedomenwn ; Εικόνα 11.3: Παράδειγμα ενημέρωσης με χρήση περισσοτέρων του ενός πινάκων. Τα αποτελέσματα φαίνονται στην Εικόνα 11.4 όπου άλλαξαν τα έτη σε δύο φοιτητές.

14 Εικόνα 11.4: Αποτελέσματα της ενημέρωσης στο Ζητούμενο 3. Ζητούμενο 4: Σβήστε όλες τις εγγραφές του Requires. Δίνουμε: DELETE FROM Requires; Το αποτέλεσμα φαίνεται στην Εικόνα Εικόνα 11.5: Παράδειγμα διαγραφής όλων των εγγραφών ενός πίνακα.

15 Ζητούμενο 5: Σβήστε όλα τα κινητά τηλέφωνα των φοιτητών. Δίνουμε (βλέπε Εικόνα 11.6): DELETE FROM Telephone WHERE TelephoneNumber LIKE 69% ; Το αποτέλεσμα φαίνεται στην Εικόνα 11.7 η οποία δείχνει ότι έχουν απομείνει μόνο τα σταθερά τηλέφωνα στον πίνακα. Εικόνα 11.6: Παράδειγμα διαγραφής εγγραφών βάσει συνθήκης. Εικόνα 11.7: Αποτελέσματα της διαγραφής στο Ζητούμενο 5.

16 Ζητούμενο 6: Σβήστε από τον Exam τις εγγραφές που αντιστοιχούν στο μάθημα Baseis Dedomenwn. Το ερώτημα εμπλέκει δύο πίνακες, τον πίνακα βαθμολογιών και τον πίνακα μαθημάτων. Μπορεί να γραφεί χρησιμοποιώντας εμφωλευμένο ερώτημα ως εξής (βλέπε και Εικόνα 11.8): DELETE FROM Exam WHERE Cid IN (SELECT Cid FROM Course WHERE Course.Title= Baseis Dedomenwn ); Εικόνα 11.8: Παράδειγμα διαγραφής με χρήση εμφωλευμένου ερωτήματος.

17 11.3 Άλυτες Εργαστηριακές Ασκήσεις Άσκηση 1 Χρησιμοποιώντας τη βάση δεδομένων που δημιουργήσατε στο κεφάλαιο 4 (άλυτη άσκηση 1), απαντήστε στα ακόλουθα ερωτήματα: 1. Προσθέστε ένα έτος εμπειρίας σε όλους τους διευθυντές. 2. Αλλάξτε την επωνυμία της εταιρίας Advance σε Computer Center. 3. Διαγράψτε τους εργαζόμενους που έχουν προϋπηρεσία μικρότερη από 10 χρόνια. 4. Διαγράψτε τις εταιρίες που ιδρύθηκαν πριν το Άσκηση 2 Χρησιμοποιώντας τη βάση δεδομένων που δημιουργήσατε στο κεφάλαιο 4 (άλυτη άσκηση 2), απαντήστε στα ακόλουθα ερωτήματα: 1. Αφαιρέστε ένα βαθμό από όλες τις ταινίες. 2. Διαγράψτε τους σκηνοθέτες που έχουν σκηνοθετήσει τρεις ή περισσότερες ταινίες. 3. Διαγράψτε τον πίνακα Krites. 4. Αλλάξτε τα ονόματα δύο ταινιών. Άσκηση 3 Χρησιμοποιώντας τη βάση δεδομένων που δημιουργήσατε στο κεφάλαιο 4 (άλυτη άσκηση 3), απαντήστε στα ακόλουθα ερωτήματα: 1. Διαγράψτε όλες τις εγγραφές του πίνακα Kritis. 2. Αλλάξτε τα ονόματα από δύο παίκτες. 3. Διαγράψτε όλα τα τουρνουά της Γαλλίας και Γερμανίας. 4. Προσθέστε ένα έτος(ηλικία) σε όλους τους παίκτες.

18 Βιβλιογραφία/Αναφορές R. Elmasri, S.B. Navathe "Θεμελιώδεις Αρχές Συστημάτων ΒΔ - 4η Έκδοση" Κεφάλαια 8 και 9. R. Ramakrishnan and J. Gehrke Database Management Systems (3 ed.). McGraw- Hill, Inc., New York, NY, USA. Κεφάλαια 5. UPDATE. DELETE.

Κεφάλαιο 9 Συναθροίσεις

Κεφάλαιο 9 Συναθροίσεις Κεφάλαιο 9 Συναθροίσεις Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστούν ερωτήματα συνάθροισης χρησιμοποιώντας τις βασικές συναρτήσεις MAX, MIN, AVG, SUM και COUNT. Θα παρουσιαστεί η χρήση της ομαδοποίησης εγγραφών

Διαβάστε περισσότερα

Κεφάλαιο 6 Βασικές Πράξεις Θεωρίας Συνόλων

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

Διαβάστε περισσότερα

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστεί η πράξη της διαίρεσης. Στο κομμάτι των ασκήσεων θα γίνει συνολική επισκόπηση ερωτημάτων που εμπλέκουν πράξεις συνόλων.

Διαβάστε περισσότερα

Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα

Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθεί η χρήση εμφωλευμένων ερωτημάτων ως πίνακες στο FROM και ως τιμές ή σύνολα εγγραφών στο WHERE. Προαπαιτούμενη γνώση Προαπαιτούμενα

Διαβάστε περισσότερα

Κεφάλαιο 7 Η Πράξη της Συνένωσης

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

Διαβάστε περισσότερα

Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL)

Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL) Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL) Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν βασικά στοιχεία του Data Definition Language (DDL). Πιο συγκεκριμένα θα παρουσιασθεί ο τρόπος δημιουργίας

Διαβάστε περισσότερα

Κεφάλαιο 5 Βασική Δομή SQL Ερωτήματος

Κεφάλαιο 5 Βασική Δομή SQL Ερωτήματος Κεφάλαιο 5 Βασική Δομή SQL Ερωτήματος Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθεί η βασική δομή SQL ερωτήματος: SELECT..FROM..WHERE. Θα παρουσιαστούν οι βασικοί τελεστές σύγκρισης και οι λογικές πράξεις

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers Triggers: Βασικές Έννοιες Ένας trigger είναι ένα κομμάτι κώδικα, μια ρουτίνα Συνδέεται με ένα συγκεκριμένο πίνακα Καλείται όταν συμβεί ένα γεγονός στον πίνακα Συχνές

Διαβάστε περισσότερα

Κεφάλαιο 4 Εισαγωγή Εγγραφών και Τροποποίηση Πινάκων

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

Διαβάστε περισσότερα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 85 Περιεχόμενα

Διαβάστε περισσότερα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

Διαβάστε περισσότερα

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Εντολές ορισμού δεδομένων (DDL) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT. Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 88 Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT

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

Διαβάστε περισσότερα

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55 Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Ενημέρωση βάσης δεδομένων με τις εντολές INSERT, DELETE, UPDATE Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες

Διαβάστε περισσότερα

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2) Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα - ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastnamevarchar(25)

Διαβάστε περισσότερα

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3)

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη MySQL (3) ER Σχεσιακό Create Tables 1/4 CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, AM INT(5)

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας

Διαβάστε περισσότερα

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

Διαβάστε περισσότερα

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

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Οι βαθμοί θα ανακοινωθούν αύριο μαζί με τους βαθμούς της προγραμματιστικής άσκησης Τα αστεράκια δείχνουν τον εκτιμώμενο βαθμό δυσκολίας (*) εύκολο (**) μέτριο (***) δύσκολο Βάσεις Δεδομένων

Διαβάστε περισσότερα

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

Τμήμα Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων «Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα» «Σημειώσεις για την SQL» ΕΞΑΜΗΝΟ: ΣΤ Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Πάτρα, Νοέμβριος 2010 SQL Create Table Η CREATE TABLE

Διαβάστε περισσότερα

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

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Ενημέρωση Βάσης Δεδομένων (INSERT, UPDATE, DELETE) SQL DCL (GRANT, DENY, REVOKE)

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση Βάσεις Δεδομένων 5η εργαστηριακή άσκηση SQL Δρ. Μαρία Ευθυμιοπούλου Εντολές sql Για να γράψετε ή να επικολλήσετε εντολές sql πηγαίνετε από το μενού SQL Workshop και επιλέγετε το SQL Commands 1. Δημιουργία

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ 2014-2015 Βάσεις Δεδομένων Εργαστήριο ΙV Τμήμα Πληροφορικής ΑΠΘ 2014-2015 2 Σκοπός του 4 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων σύνδεσης η μελέτη ερωτημάτων συνάθροισης 3 Εκφράσεις

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Όψεις (views) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων

Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν βασικά στοιχεία όσον αφορά τις stored procedures και τη χρήση ευρετηρίων. Προαπαιτούμενη γνώση H ύλη

Διαβάστε περισσότερα

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

Η SQL ως γλώσσα τροποποίησης Δεδομένων Η SQL ως γλώσσα τροποποίησης Δεδομένων Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης

Διαβάστε περισσότερα

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

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη My (1) Η (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομενων Είναι δομημένη σε βάσεις που περιέχουν πίνακες Οι πίνακες αποτελούνται από γραμμές

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής. ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2012 SQL Structured Query Language Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις της σχεσιακής άλγεβρας ΠΡΑΞΗ ΣΚΟΠΟΣ

Διαβάστε περισσότερα

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1) Ασάφεια και Πλήρη Ονόματα Βάσεις Δεδομένων Σύνθετα SQL queries Παύλος Εφραιμίδης Βάσεις Δεδομένων SQL - Μέρος Δεύτερο 1 Ονόματα Πεδίων: Στην SQL, τα ονόματα των πεδίων (γνωρισμάτων) σε κάθε σχέση είναι

Διαβάστε περισσότερα

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

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML. Κεφάλαιο 5 Η γλώσσα SQL 5.1 Εισαγωγή Η γλώσσα SQL (Structured Query Language) είναι η πιο διαδεδομένη διαλογική γλώσσα ερωταπαντήσεων που χρησιμοποιείται για την επικοινωνία του χρήστη με σχεσιακές ΒΔ.

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQL- Μέρος Β Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ 2013-2014 Βάσεις Δεδομένων Εργαστήριο V Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 5 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων τροποποίησης δομής / δεδομένων η μελέτη σύνθετων ερωτημάτων

Διαβάστε περισσότερα

Βάσεις Δεδομένων Σύνθετα SQL queries

Βάσεις Δεδομένων Σύνθετα SQL queries Βάσεις Δεδομένων Σύνθετα SQL queries Παύλος Εφραιμίδης Βάσεις Δεδομένων SQL - Μέρος Δεύτερο 1 Ασάφεια και Πλήρη Ονόματα Ονόματα Πεδίων: Στην SQL, τα ονόματα των πεδίων (γνωρισμάτων) σε κάθε σχέση είναι

Διαβάστε περισσότερα

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Παράδειγμα Σχέσης attributes

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων Μαρία Χαλκίδη Εισαγωγή Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση

Διαβάστε περισσότερα

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός

Διαβάστε περισσότερα

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

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σύνολα Ασκήσεων Βάσεις Δεδομένων 2018-2019 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Άσκηση 3 Οι λύσεις είναι ενδεικτικές υπάρχουν και άλλες σωστές SQL ερωτήσεις για τα ερωτήματα της άσκησης. 2 (γ)(i) Τους

Διαβάστε περισσότερα

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL Αντώνης Χρυσόπουλος Χριστίνα Αυδίκου Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL MySQL For Pros Διαλέχτε, καλέ κυρία, Διαλέχτε 1. Ταξινόμηση 2. Περιορισμοί 3. Τελεστές LIKE, IN, BETWEEN

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 7 Γλώσσα Ερωτημάτων SQL Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Σχεσιακή

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 6 Σχεσιακές Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Σχεσιακό Μοντέλο Το

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. 3. Η υλοποίηση απλών ερωτημάτων mysql

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008 Περιεχόμενα JOIN συνέχεια

Διαβάστε περισσότερα

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2) Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα -ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25)

Διαβάστε περισσότερα

Lecture 21: Functional Dependencies and Normalization

Lecture 21: Functional Dependencies and Normalization Department of Computer Science University of Cyprus EPL342 Databases Lecture 21: Functional Dependencies and Normalization Informal Design Guidelines (Chapter 14.1, Elmasri-Navathe 7ED) Demetris Zeinalipour

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δημιουργία Πεδίων Ορισμού Πεδίο Ορισμού είναι συστατικό του σχήματος για τον ορισμό των μακροεντολών

Διαβάστε περισσότερα

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υποερωτήματα στην SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 31 Η ανάγκη για υποερώτημα Ποιος υπάλληλος παίρνει το μεγαλύτερο μισθό; Αν ξέραμε το μεγαλύτερο μισθό, πχ 2000, θα γράφαμε:

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου

Διαβάστε περισσότερα

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης Εργαστήριο 8o Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων Ερωτήματα Τα Ερωτήματα μας επιτρέπουν να βλέπουμε τα δεδομένα που επιθυμούμε, με τη σειρά που επιθυμούμε. Μας δίνουν

Διαβάστε περισσότερα

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

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 10: Γλώσσα Ερωτημάτων SQL Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

databases linux - terminal (linux / windows terminal)

databases linux - terminal (linux / windows terminal) databases linux - terminal (linux / windows terminal) 1) ανοίγουμε την mysql -> $ mysql -u root -p (enter) password (enter) TIP: αν κατά την εντολή αυτή μας γράψει, ERROR 2002 (HY000): Can't connect to

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Περιεχόμενο Διάλεξης Κεφάλαιο 5: Το Σχεσιακό Μοντέλο Δεδομένων Περιορισμοί Σχεσιακού Μοντέλου

Διαβάστε περισσότερα

1 / 150

1 / 150 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 150 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο και θ σύζευξη 3 Φυσική σύζευξη

Διαβάστε περισσότερα

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

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε

Διαβάστε περισσότερα

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9;

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9; ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ 4.10 Επαναφέρετε πάλι το είδος 20 (όλο το στιγμιότυπο) στον πίνακα products με τις εντολές INSERT INTO. 4.11 Διαγράψτε το είδος 12 (όλο το στιγμιότυπο) στον πίνακα products και επαναφέρετε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙI Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 3 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων επιλογής, προβολής και απλών συνδέσεων σε δύο ή περισσότερες

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 3 ο (26/11/2008) Εισαγωγή στην Mysql SQL Η SQL (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομένων. Είναι δομημένη σε βάσεις που περιέχουν πίνακες.

Διαβάστε περισσότερα

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

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL) Βασικές Εντολές SQL Θεωρία & Εντολές SQL Γραμμή Εντολών MS-DOS (MySQL) Ο καλός σχεδιασμός μιας Β.Δ είναι σημαντικός για την ανάπτυξη μιας εφαρμογής με υψηλή απόδοση. Γι αυτό τον λόγο μια Β.Δ θα πρέπει

Διαβάστε περισσότερα

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke SQL: Αιτήματα Κεφάλαιο 5 Database Management Systems, R. Ramakrishnan and J. Gehrke Στιγμιότυπα Στιγμιότυπα των σχέσεων Sailors Reserves και Boats. Αν στο κλειδί της σχέσης Reserved δε συμμετείχε το γνώρισμα

Διαβάστε περισσότερα

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΛΙΛΙΤΣΗΣ ΠΡΟΔΡΟΜΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών Βάσεων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα) Η SQL ως γλώσσα ερωτημάτων Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα) Η γλώσσα SQL Η SQL αποτελείται από: DDL (Data Definition Language)

Διαβάστε περισσότερα

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter ) Department of Computer Science University of Cyprus EPL342 Databases Lecture 8: RM II Relational Model (Chapter 5.2-5.3) ιδάσκων: Παναγιώτης Ανδρέου http://www.cs.ucy.ac.cy/courses/epl342 8-1 Περιεχόμενο

Διαβάστε περισσότερα

Το σχεσιακό μοντέλο βάσεων δεδομένων

Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας Το σχεσιακό μοντέλο βάσεων δεδομένων Περιεχόμενα Περιεχόμενα - Βιβλιογραφία Ενότητας Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)

Διαβάστε περισσότερα

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED Χέρι χέρι με τον Καρατζαφέρη Τα μάθατε καλέ κυρία? 1. Ψευδώνυμα Πινάκων 2. Ένωση Πίνακα με τον εαυτό του 3. Ομαδοποίηση 4.

Διαβάστε περισσότερα

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών,

Διαβάστε περισσότερα

1 / 105

1 / 105 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 105 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers CREATE TRIGGER Δήλωση δημιουργίας Trigger: CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

Διαβάστε περισσότερα

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΓΙΑΝΝΗΣ ΑΓΑΘΑΓΓΕΛΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL SQL SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών

Διαβάστε περισσότερα

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

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα: ΘΕΜΑΤΑ Θέμα 1 ο Σε μία βάση δεδομένων χρηματιστηριακών συναλλαγών υπάρχουν οι παρακάτω πίνακες που αποτελούνται από τα εξής πεδία : : ΚΣ, ΗΜΝΙΑ, ΩΡΑ, ΚΜ, ΤΙΜΗ ΜΕΤΟΧΗ : ΚΜ, ΟΝΟΜΑ, ΕΤΟΣ_ΙΔΡΥΣΗΣ, ΚΚ, ΚΑΤΗΓΟΡΙΑ

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 3: Σχεσιακές Βάσεις Δεδομένων Σχεσιακή Άλγεβρα Σχεσιακή

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου

Διαβάστε περισσότερα

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΛΥΣΕΙΣ Ι. Βασιλείου -----------------------------------------------------------------------------------------------------

Διαβάστε περισσότερα

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

Σχεδίαση Βάσεων Δεδομένων Οδηγίες Μέρος 1: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 09: Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός (Relational Algebra/Calculus) Ι Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Σχεσιακή Πληρότητα Σχεσιακή Άλγεβρα

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 2 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: Η μελέτη ερωτημάτων σε μία μόνο σχέση. Εξετάζουμε τους τελεστές επιλογής

Διαβάστε περισσότερα

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

10 η Διάλεξη Python Βάσεις δεδομένων στη python 10 η Διάλεξη Python Βάσεις δεδομένων στη python ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Η standard διεπαφη της python για βάσεις δεδομένων βασίζεται στο DB-API Python Database API υποστηρίζει ένα ευρύ φάσμα βάσεων δεδομένων

Διαβάστε περισσότερα

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις Σχεδιασμός Πληροφοριακών Συστημάτων Σημειώσεις Συμπλήρωμα για τις Εκδόσεις 4 (4.1) και 4.2 των Σημειώσεων Έκδοση 19/2/2011 Μάριος Μάντακας mmantak@gmail.com Διαφορά από την προηγούμενη Έκδοση: Προσθήκη

Διαβάστε περισσότερα

Υποερωτήματα SQL Παραδείγματα και εφαρμογές από τη βάση δεδομένων company Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 55 Περιεχόμενα 1 Απλά υποερωτήματα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 4/2/2009 Δικαιώματα χρηστών - Προβολές (Views) ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ MYSQL queries results mysql host DB server queries results Client host Β Δ Ηχρήσητηςmysql βασίζεται

Διαβάστε περισσότερα

SQL Data Manipulation Language

SQL Data Manipulation Language SQL Data Manipulation Language Τελεστής union συνδυάζει subselects τα οποία παράγουν συμβατές σχέσεις γενική μορφή: subselect {union [all] subselect} περιορισμός: τα subselects δεν μπορούν να περιέχουν

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQLΜέρος Α Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos

Διαβάστε περισσότερα