ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα: 12Η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Δρ. ΠΑΝΤΕΛΗΣ ΑΓΓΕΛΙΔΗΣ Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα του Πανεπιστημίου Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2
Περιεχόμενα Σκοπός της άσκησης... 4 Άσκηση 1... 4 Ερώτημα 1... 4 Ερώτημα 2... 4 Ερώτημα 3... 5 Ερώτημα 4... 6 Ερώτημα 5... 6 Ερώτημα 6... 7 Υποερώτημα 1... 7 Υποερώτημα 2... 7 Υποερώτημα 3... 7 Ερώτημα 7... 8 Υποερώτημα 1... 8 Υποερώτημα 2... 9 3
Σκοπός της άσκησης Σκοπός της εργατηριακής άσκησης είναι η δημιουργία μίας βάσης δεδομένων σε γλώσσα SQL, δημιουργία φορμών, καθώς και ερωτημάτων. Άσκηση 1 Ερώτημα 1 Ανοίξτε τη Βάση Δεδομένων «Πανεπιστήμιο» και μετονομάστε την σε «Πανεπιστήμιο_SQL». Θα αναπτύξουμε την προηγούμενή μας Βάση, όπως φαίνεται στο διπλανό σχήμα, με εντολές ορισμού δεδομένων SQL αυτή τη φορά. Ερώτημα 2 Δημιουργήστε τους πίνακες 1.Πίνακας Μαθήματα CREATE TABLE Mαθήματα (ΚωδΜαθήματος CHAR (5), Μάθημα CHAR (30) NOT NULL, ΔιδακτικέςΜονάδες INTEGER, CONSTRAINT KleidiMathimatos PRIMARY KEY (ΚωδΜαθήματος)); 4
2. Πίνακας ΕγγραφέςΜαθημάτων CREATE TABLE ΕγγραφέςMαθημάτων (ΚωδΜαθήματος CHAR (5), (ΚωδΦοιτητή INTEGER, Βαθμός SHORT NOT NULL, Απουσίες INTEGER, CONSTRAINT KleidiEngrafis PRIMARY KEY (ΚωδΜαθήματος, ΚωδΦοιτητή)); ΕΝΤΟΛΗ ΓΙΑ Διαγραφή Πίνακα Προσθήκη πεδίου Διαγραφή πεδίου Αλλαγή τύπου δεδομένων πεδίου ΕΝΤΟΛΗ SQL DROP TABLE <όνομα πίνακα> ALTER TABLE <όνομα πίνακα> ADD COLUMN <όνομα πεδίου> τύπος δεδομένων ALTER TABLE <όνομα πίνακα> DROP COLUMN <όνομα πεδίου> ALTER TABLE <όνομα πίνακα> ALTER COLUMN <όνομα πεδίου> νέος τύπος δεδομένων Ερώτημα 3 Δημιουργήστε τις συσχετίσεις μεταξύ των πινάκων Στον πίνακα ΕγγραφέςΜαθημάτων ορίστε ο ΚωδΜαθήματος και ο ΚωδΦοιτητή να παίρνουν πεδίο τιμών από τους αντίστοιχους πίνακες, μ αυτό τον τρόπο θα δημιουργηθούν και οι συσχετίσεις των δύο πινάκων Άλλος τρόπος: δημιουργήστε τα παρακάτω ερωτήματα ορισμού δεδομένων SQL a. Σχέση Μαθήματα ΕγγραφέςΜαθημάτων: ALTER TABLE ΕγγραφέςΜαθημάτων ADD CONSTRAINT FititisEgrafeteMathima FOREIGN KEY (ΚωδΜαθήματος) REFERENCES Μαθήματα (ΚωδΜαθήματος); b. Σχέση Φοιτητές ΕγγραφέςΜαθημάτων: ALTER TABLE ΕγγραφέςΜαθημάτων 5
ADD CONSTRAINT MathimaEgrafeteMathima FOREIGN KEY (ΚωδΦοιτητή) Ερώτημα 4 Εισάγετε τιμές στον Πίνακα Μαθήματα μέσω μιας φόρμας καταγραφής Μαθημάτων Ή με χρήση SQL πχ INSERT INTO FOITHTES VALUES ( ΜΧ119, Εισαγωγή στους ΗΥ, 3 ); Ερώτημα 5 Δημιουργήστε μια φόρμα εγγραφής μαθημάτων ανα φοιτητή 6
Ερώτημα 6 Να δημιουργήσετε σε Προβολή SQL τα παρακάτω ερωτήματα: Υποερώτημα 1 a. Μαθήματα-3διδ: Ποια μαθήματα έχουν 3 διδακτικές μονάδες; SELECT ΚωδΜαθήματος, Μάθημα, ΔιδακτικέςΜονάδες FROM Μαθήματα WHERE (((ΔιδακτικέςΜονάδες)=3)); Υποερώτημα 2 b. Κατοχύρωση-Προγραμματισμού: Ποιοι φοιτητές έχουν περάσει το μάθημα Προγραμματισμός; SELECT Φοιτητές.ΚωδΦοιτητή, Φοιτητές.Όνομα, Φοιτητές.Επίθετο, Φοιτητές.Εξάμηνο,ΕγγραφέςΜαθημάτων.Βαθμός, ΕγγραφέςΜαθημάτων.Απουσίες FROM Φοιτητές INNER JOIN (Μαθήματα INNER JOIN ΕγγραφέςΜαθημάτων ΟΝ Μαθήματα.ΚωδΜαθήματος = ΕγγραφέςΜαθημάτων.ΚωδΜαθήματος) ΟΝ Φοιτητές.ΚωδΦοιτητή = ΕγγραφέςΜαθημάτων.ΚωδΦοιτητή WHERE (((ΕγγραφέςΜαθημάτων.Βαθμός)>=5 AND ((ΕγγραφέςΜαθημάτων.Απουσίες)< =2) AND ((Μαθήματα.Μάθημα)= «Προγραμματισμός»)); Υποερώτημα 3 c. ΜηΚατοχύρωσηΑγγλικά-Μαθηματικά: Ποιοι φοιτητές έχουν παρακολουθήσει αλλά δεν έχουν περάσει τα μαθήματα Αγγλικά ή Μαθηματικά SELECT Φοιτητές.ΚωδΦοιτητή, Φοιτητές.Όνομα, Φοιτητές.Επίθετο, Φοιτητές.Εξάμηνο, ΕγγραφέςΜαθημάτων.ΚωδΜαθήματος, ΕγγραφέςΜαθημάτων.Βαθμός, ΕγγραφέςΜαθημάτων.Απουσίες, Μαθήματα.Μάθημα FROM Φοιτητές INNER JOIN (Μαθήματα INNER JOIN ΕγγραφέςΜαθημάτων ΟΝ Μαθήματα.ΚωδΜαθήματος = ΕγγραφέςΜαθημάτων.ΚωδΜαθήματος) ΟΝ Φοιτητές.ΚωδΦοιτητή = ΕγγραφέςΜαθημάτων.ΚωδΦοιτητή 7
WHERE (((ΕγγραφέςΜαθημάτων.Βαθμός)<5) AND ((Μαθήματα.Μάθημα)= «Αγγλικά»)) OR (((ΕγγραφέςΜαθημάτων.Βαθμός)<5) AND ((Μαθήματα.Μάθημα)= «Μαθηματικά»)) OR (((ΕγγραφέςΜαθημάτων.Απουσίες)>2) AND ((Μαθήματα.Μάθημα)= «Αγγλικά»)) OR (((ΕγγραφέςΜαθημάτων.Απουσίες)>2) AND ((Μαθήματα.Μάθημα)= «Μαθηματικά»)); Ερώτημα 7 Δημιουργήστε με οδηγό, τις ακόλουθες εκθέσεις και να εισάγετε, όπου επιθυμείτε, πολύχρωμες μορφοποιήσεις προκειμένου να δημιουργήσετε καλύτερο αισθητικό αποτέλεσμα Υποερώτημα 1 a. Από το ερώτημα Κατοχύρωση-Προγραμματισμού με τίτλο Ποιοι πέρασαν Προγραμματισμό, με κατακόρυφο προσανατολισμό σελίδας 8
Υποερώτημα 2 b. Από το ερώτημα ΜηΚατοχύρωσηΑγγλικά-Μαθηματικά με τίτλο Ποιοι παρακολούθησαν ανεπιτυχώς Αγγλικά ή Μαθηματικά, με κατακόρυφο προσανατολισμό σελίδας 9