Παράδειγμα Εμφιαλωτήριο Διάγραμμα Οντοτήτων - Συσχετίσεων
Παράδειγμα Εμφιαλωτήριο Διάγραμμα σύμφωνα με το σχεσιακό μοντέλο
Παράδειγμα Εμφιαλωτήριο Δημιουργία πίνακα Paragogos Create table Paragogos ( kodikos int AUTO INCREMENT PRIMARY KEY, onoma varchar(30), poli varchar(15), tilefono varchar(10) ); Με την επιλογή auto increment, το πεδία κωδικός θα παίρνει τιμές αυτόματα από τη mysql (κάθε φορά θα επιλέγεται η αμέσως επόμενη προς τα πάνω ακέραια τιμή, ξεκινώντας από το 1). Έτσι, στο αρχείο με τα έτοιμα δεδομένα του πίνακα αυτού λείπει το πεδίο kodikos.
Παράδειγμα Εμφιαλωτήριο Δεδομένα πίνακα Paragogos Κωδικός Τηλέφωνο Ονοματεπώνυμο Πόλη 1 "1223445446" "Γιώργος Λαγογιάννης" "Κόρινθος" 2 "2354345678" "Κώστας Γιαλούρης" "Τρίπολη" 3 "4564534556" "Θοδωρής Τσιλιγκιρίδης" "Κόρινθος" 4 "2353464543" "Κώστας Ματσούκας" "Τρίπολη" 5 "5876727676" "Ελένη Παπαδοπούλου" "Νεμέα" 6 "8356554574" "Δήμητρα Αποστόλου" "Νεμέα" 7 "2456545678" "Βαγγέλης Αλεξίου" "Νεμέα" 8 "6578956343" "Ηλίας Δήμου" "Κόρινθος" 9 "2345454325" "Κώστας Δημόπουλος" "Λεβίδι" 10 "3234563455" "Δήμητρα Στασινοπούλου" "Τρίπολη" 11 "2345665467" "Αλέξης Αγγέλου" "Λεβίδι" 12 "2345367567" "Ηλιάνα Παράσχου" "Κόρινθος" 13 "2346456680" "Σωτήρης Γκιώκας" "Λεβίδι" 14 "4564665379" "Γιώργος Κόσσυβας" "Τρίπολη" 15 "3456435638" "Ειρήνη Δημητρίου" "Κόρινθος"
Παράδειγμα Εμφιαλωτήριο Create table Fortio ( kodikos int AUTO INCREMENT PRIMARY KEY, gefsi int, epigefsi int, aroma int, litra double eidos varchar(5), kod_par int, FOREIGN KEY (kod_par) REFERENCES Paragogos(kodikos) ); Δημιουργία πίνακα Fortio
Παράδειγμα Εμφιαλωτήριο Δημιουργία πίνακα Etiketa Create table Etiketa ( onoma varchar(30) PRIMARY KEY, litra double, bottle_capacity int, kod_fortioy int, FOREIGN KEY (kod_fortioy) REFERENCES Fortio (kodikos) );
Ερωτήματα πάνω σε ένα πίνακα Επιλογή στηλών Εμφάνισε για κάθε παραγωγό τον κωδικό του και το όνομά του SELECT P.kodikos, P.onoma FROM Paragogos P
Ερωτήματα πάνω σε ένα πίνακα Επιλογή γραμμών Εμφάνισε τα στοιχεία των παραγωγών από την πόλη 'Νεμέα' SELECT * from Paragogos P WHERE P.poli = 'Νεμέα'
Ερωτήματα πάνω σε ένα πίνακα Συνδυασμός επιλογής γραμμών και στηλών Εμφάνισε τον κωδικό, το όνομα και το τηλέφωνο όλων των παραγωγών από την πόλη 'Νεμέα'. SELECT P.kodikos, P.onoma, P.tilefono FROM Paragogos P WHERE P.poli = 'Νεμέα'
Ερωτήματα πάνω σε ένα πίνακα Συνδυασμός επιλογής γραμμών και στηλών SELECT P.kodikos, P.onoma, P.tilefono FROM Paragogos P WHERE P.poli = 'Νεμέα'
Παραγόμενα γνωρίσματα Τιμή φιάλης
Παραγόμενες στήλες Βρες για κάθε φορτίο την τιμή ανά λίτρο που προέκυψε από τους βαθμούς που πήρε το κρασί του φορτίου (βλέπε εκφώνηση) Αποτελέσματα SELECT F.kodikos, F.gefsi*0.4+F.epigefsi*0.3+F.aroma*0.3 as Timi_litroy FROM Fortiο F
Πράξη JOIN ή INNER JOIN Παραγωγοί Φορτία Κωδικός Όνομα Πόλη Κωδικός Γεύση Λίτρα Κωδ_παρ 1 Λαγογιάννης Αθήνα 1 7 1 1 2 Μαλιάππης Νεμέα 2 3 6 8 2 3 1 2 3 Γιαλούρης Νεμέα 4 9 4 3 Select * from Παραγωγοί INNER JOIN Φορτία ON Παραγωγοί.Κωδικός = Φορτία.Κωδ_παρ 1 Λαγογιάννης Αθήνα 1 Λαγογιάννης Αθήνα 2 Μαλιάππης Νεμέα 3 8 3 2 3 Γιαλούρης Νεμέα 4 9 4 3 1 2 Συσχετίζοντας τις στήλες Παραγωγοί(κωδικός) και Φορτία(κωδ_παρ),και κάνοντας την πράξη INNER JOIN υπό αυτή τη συσχέτιση, ο πίνακας που προκύπτει από την INNER JOIN περιέχει μία γραμμή για κάθε κόκκινο σύνδεσμο 7 6 1 2 1 1
Πράξη JOIN ή INNER JOIN Εμφάνισε για κάθε φορτίο τον κωδικό του και το όνομα του παραγωγού από τον οποίο προέρχεται το φορτίο SELECT P.onoma, F.kodikos FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par
Πράξη JOIN ή INNER JOIN SELECT P.onoma, F.kodikos FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par
Πράξη JOIN ή INNER JOIN Εμφανίστε όλα τα φορτία του παραγωγού με κωδικό 1. Για κάθε φορτίο να εμφανίζεται το όνομα του παραγωγού (που όπως είπαμε έχει κωδικό 1) καθώς και ο κωδικός του φορτίου SELECT P.onoma, F.kodikos FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par WHERE P.kodikos = 1 SELECT P.onoma, F.kodikos AS kodikos_fortioy FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par WHERE P.kodikos = 1
Πράξη JOIN ή INNER JOIN SELECT P.onoma, F.kodikos FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par WHERE P.kodikos = 1 SELECT P.onoma, F.kodikos AS kodikos_fortioy FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par WHERE P.kodikos = 1
Πράξη JOIN ή INNER JOIN Εμφανίστε για κάθε ετικέτα το όνομά της, τον κωδικό του φορτίου από το οποίο προέρχεται καθώς και το όνομα του παραγωγού στον οποίο ανήκει το φορτίο SELECT E.onoma, F.kodikos as kodikos_fortioy, P.kodikos as Kodikos_paragogoy FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par INNER JOIN etiketa E ON F.kodikos = E.kod_fortioy
Πράξη JOIN ή INNER JOIN SELECT E.onoma, F.kodikos as kodikos_fortioy, P.kodikos as Kodikos_paragogoy FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par INNER JOIN etiketa E ON F.kodikos = E.kod_fortioy
Αθροιστικά ερωτήματα Εμφανίστε τη συνολική ποσότητα κρασιού (σε λίτρα) που έφτασε στο εμφιαλωτήριο Select sum(f.litra) as synoliki_posotita_krasioy from Fortio F
Αθροιστικά ερωτήματα Εμφανίστε για κάθε είδος κρασιού, τη συνολική ποσότητα κρασιού που έφτασε στο εμφιαλωτήριο SELECT F.eidos, sum(f.litra) as posotita_eidoys FROM Fortio F GROUP BY eidos
Αθροιστικά ερωτήματα Εμφανίστε για κάθε πόλη, τη συνολική ποσότητα κρασιού που προήλθε από την πόλη αυτή SELECT P.poli, sum(f.litra) from Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par GROUP BY P.poli
Αθροιστικά ερωτήματα Εμφανίστε για κάθε παραγωγό, το όνομά του και το πλήθος των φορτίων που έφερε προς εμφιάλωση SELECT P.onoma, count(f.kodikos) as PLITHOS_FORTION FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par GROUP BY P.onoma
Αθροιστικά ερωτήματα Για κάθε παραγωγό να εμφανιστεί το όνομά του και το ποσό που εισέπραξε από το κρασί του CREATE VIEW Pargogos_fortio as SELECT P.onoma, F.gefsi*0.4+F.epigefsi*0.3+F.aroma*0.2 as timi_litroy, F.litra FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par CREATE VIEW paragogos_timi AS SELECT P.onoma, sum(p.timi_litroy*p.litra) as eispraksi_paragogoy FROM Pargogos_fortio P GROUP BY P.onoma
Αθροιστικά ερωτήματα Για κάθε παραγωγό που εισέπραξε πάνω από 1000 ευρώ, να εμφανιστεί το όνομά του και το ποσό που εισέπραξε από CREATE VIEW Pargogos_fortio as SELECT P.onoma, F.gefsi*0.4+F.epigefsi*0.3+F.aroma*0.2 as timi_litroy, F.litra FROM Paragogos P INNER JOIN Fortio F ON P.kodikos = F.kod_par CREATE VIEW paragogos_timi AS SELECT P.onoma, sum(p.timi_litroy*p.litra) as eispraksi_paragogoy FROM Pargogos_fortio P GROUP BY P.onoma HAVING P.eispraksi_paragogoy>1000