Βάσεις Δεδομένων Ι 8η διάλεξη

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΑΘΗΜΑ 6. SELECTSELECT SELECT * FROM όνομα_πίνακα ; • Με τη εντολή SELECT ανασύρουμε δεδομένα από την βάση δεδομένων. • Το αστεράκι.
Advertisements

ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 2 ΜΑΘΗΜΑ 4.
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
1 Copyright © 2006 Quality & Reliability SQL 1-2.
Δρ. Παναγιώτης Συμεωνίδης
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
1 Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Επεξεργασία και βελτιστοποίηση ερωτήσεων Πάνος Βασιλειάδης Σεπτέμβρης.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Επεξεργασία και βελτιστοποίηση ερωτήσεων Πάνος Βασιλειάδης Σεπτέμβρης 2005.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis SQL: Ερωτήματα, προγραμματισμός και εναύσματα ΕΣΔ232 – Οργάνωση Δεδομένων.
9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)
Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας Διατύπωση Ερωτημάτων σε XML τεκμήρια με τη γλώσσα XQuery Εργασία για το μάθημα Ηλεκτρονική Δημοσίευση Υπεύθυνος.
Βάσεις Δεδομένων Ι Ενότητα 7: H γλώσσα SQL Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
Βάσεις Δεδομένων Εργαστήριο ΙΙI Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 SQL.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ 2 ΜΑΘΗΜΑ 8. ΑΠΑΛΟΙΦΗ ΔΙΠΛΟΕΓΓΡΑΦΩΝ DISTINCT Μπορούμε να απαλείψουμε τις διπλοεγγραφές που μας επιστρέφονται και που οφείλονται στην.
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων  Χειρισμός Δεδομένων.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων (data definition)  Χειρισμός Δεδομένων (data manipulation)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
ΕΠΛ 342 – Βάσεις Δεδομένων Εργαστήριο 4 ο SQL - Queries Ιωάννα Συρίμη
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Σχεσιακή Άλγεβρα.
Library Μπαλάφα Κάσσυ Πλασταρά Κατερίνα. Εφαρμογή Χρήση του RDF schema για τη μοντελοποίηση της βιβλιοθήκης ενός πανεπιστημίου Εφαρμογή της RQL για την.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Ενότητα # 4: SQL - Structured Query Language Μέρος 1ο: Η Γλώσσα SQL
MYSQL 2. Στόχος της ώρας Περισσότερα θέματα MySQL Ταξινόμηση Περιορισμοί Παράδειγμα δημιουργίας σχήματος Τελεστές LIKE, IN, BETWEEN Κωδικοποίηση Ψευδώνυμα.
PHP 3. Στόχος της ώρας Λίγα ακόμη για MySQL Ένωση πίνακα με τον εαυτό του Ομαδοποίηση Συναρτήσεις σύνοψης Παράδειγμα σε PHP/MySQL Μικρή εφαρμογή τύπου.
Βάσεις Δεδομένων Ενότητα 7.1: Structured Query Language - 1 ο Μέρος Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό.
Βάσεις Δεδομένων I (Θ) Ενότητα 8: Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Βάσεις Δεδομένων I (Θ) Ενότητα 9: Yλοποίηση σχεσιακών βάσεων δεδομένων - Σύνθετες εντολές SQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
Βάσεις Δεδομένων I Ενότητα 9: Yλοποίηση σχεσιακών βάσεων δεδομένων - Σύνθετες εντολές SQL Χ. Σκουρλάς Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 SQL.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ « Advanced MySQL » Σμυρνάκη Ουρανία, Πανεπιστήμιο Κρήτης Σεμινάριο: 2ο Σχολείο Κώδικα Ημερομηνία: 10/07/2015 Με.
Η Εντολή Select Select Πεδίο1, Πεδίο2, … Πεδίοn From Πίνακας1, Πίνακας2, …, Πίνακαςm Where συνθήκη;
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Βάσεις Δεδομένων Ι 4η διάλεξη
Περιγραφή Ενότητας Σκοπός του μαθήματος αυτού και κεντρικός σκοπός του μαθήματος των Βάσεων Δεδομένων Ι είναι η παρουσίαση των απαραίτητων εννοιών ώστε.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Η Γλώσσα SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων ΙΙ 1η διάλεξη
Βάσεις Δεδομένων Ι Επανάληψη
Βάσεις Δεδομένων Ενότητα 3: Σχεσιακή Άλγεβρα Βασίλης Βουτσινάς
Κωδικός Διαφανειών: MKT119
Εισαγωγή στις βάσεις δεδομένων ISBN
Τεχνικές Ηλεκτρονικής Απάτης και Δικτυοπειρατείας
Η Γλώσσα SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να κατανοήσουμε την έννοια της όψης της γλώσσας SQL. Χ. Σκουρλάς.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση των απαραίτητων εννοιών αλλά και των δηλώσεων SQL ώστε οι φοιτητές να κατανοήσουν σε κάποιο.
Οι Συναρτήσεις Ομαδοποίησης
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Βάσεις Δεδομένων και web-based Εφαρμογές
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Σχεσιακεσ βασεισ δεδομενων
Εισαγωγή στη Σχεσιακή Άλγεβρα
Ερωτήματα Επιλογής σε ACCESS
Ερωτήματα Επιλογής Δεδομένων
Ερωτήματα Επιλογής σε ACCESS
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL.
Διαχείριση και Εξόρυξη Γνώσης Knowledge Management and Data Mining
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Μεταγράφημα παρουσίασης:

Βάσεις Δεδομένων Ι 8η διάλεξη

1 SQL

student(id, name, surname, age) department(id, name, perioxi) Παραδείγματα student(id, name, surname, age) department(id, name, perioxi) student2department(studentid, departmentid, since)

SELECT name FROM student SELECT student.name FROM student Επιλογή SELECT * FROM student SELECT name FROM student SELECT student.name FROM student SELECT s.name FROM student s SELECT s.name FROM student AS s

SELECT s.name, s.surname FROM student AS s Επιλογή SELECT s.name, s.surname FROM student AS s

SELECT DISTINCT s.name FROM student AS s Επιλογή SELECT DISTINCT s.name FROM student AS s

JOIN student2department AS sd ON s.id=sd.studentid Επιλογή SELECT s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid

SELECT DISTINCT s.id, s.name, s.surname FROM student AS s Επιλογή SELECT DISTINCT s.id, s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid

JOIN student2department AS sd ON s.id=sd.studentid Επιλογή SELECT s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid JOIN department AS d ON d.id=sd.departmentid WHERE d.name = “Mixanikwn Ypologistwn”;

SELECT s.name, s.surname, s.age, s1.name, s1.surname, s1.age Πράξεις SELECT s.name, s.surname, s.age, s1.name, s1.surname, s1.age FROM student AS s, student AS s1 WHERE s.age = s1.age+2;

Επιλογή Εμφάνισε τους φοιτητές που έχουν γραφτεί σε διαφορετικό τμήμα την ίδια χρονιά SELECT DISTINCT s.id, s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid JOIN student2department AS sd1 ON s.id=sd1.studentid WHERE sd.since=sd1.since AND sd.departmentid<>sd1.departmentid

Επιλογή Εμφάνισε το όνομα και το επώνυμο των φοιτητών που φοιτούν σε τμήμα με ονομασία που ξεκινάει τη φράση “Trof” SELECT s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid JOIN department AS d ON d.id=sd.departmentid WHERE d.name LIKE “Trof%”;

JOIN student2department AS sd ON s.id=sd.studentid Επιλογή SELECT s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid JOIN department AS d ON d.id=sd.departmentid WHERE d.perioxi = “Kalamata” OR d.perioxi = “Sparti”;

JOIN student2department AS sd ON s.id=sd.studentid Επιλογή SELECT s.name, s.surname FROM student AS s JOIN student2department AS sd ON s.id=sd.studentid JOIN department AS d ON d.id=sd.departmentid JOIN department AS d1 ON d1.id=sd.departmentid WHERE d.perioxi = “Kalamata” AND d1.perioxi = “Sparti”;

2 Πράξεις συνόλων

Ένωση δύο διαφορετικών πινάκων αποτελεσμάτων Επιλογή Ένωση δύο διαφορετικών πινάκων αποτελεσμάτων SELECT name, surname FROM student WHERE age = 20 UNION WHERE age = 21

3 Εμφώλευση

Επιλογή των φοιτητών που έχουν φοιτήσει στο τμήμα με κωδικό 1 SELECT * FROM student WHERE id IN (SELECT studentid FROM student2department WHERE departmentid = 1);

Επιλογή Επιλογή των φοιτητών που έχουν φοιτήσει στο τμήμα με ονομασία Mixanikwn Ypologistwn SELECT * FROM student WHERE id IN (SELECT studentid FROM student2department WHERE departmentid IN (SELECT id FROM department WHERE name=“Mixanikwn Ypologistwn” ));

Παντού μπορεί να ισχύει ο αρνητικός παράγοντας NOT Επιλογή Παντού μπορεί να ισχύει ο αρνητικός παράγοντας NOT SELECT * FROM student WHERE id NOT IN (SELECT studentid FROM student2department WHERE departmentid = 1);

4 Τελεστές συνάθροισης Και οργάνωσης…

GROUP BY (δημιουργεί ομάδες) ORDER BY (τοποθέτηση σε σειρά) Πράξεις COUNT: πλήθος SUM: άθροισμα AVG: μέσος όρος MAX: μέγιστη τιμή ΜΙΝ: ελάχιστη τιμή GROUP BY (δημιουργεί ομάδες) ORDER BY (τοποθέτηση σε σειρά)

Να βρεθεί η μέση ηλικία των φοιτητών Επιλογή Να βρεθεί η μέση ηλικία των φοιτητών SELECT AVG(age) FROM student

Επιλογή Να βρεθεί η μέση ηλικία των φοιτητών που φοιτούν σε τουλάχιστον ένα τμήμα SELECT AVG(s.age) FROM student AS s JOIN student2department as sd ON s.id=sd.studentid

Να βρεθεί η μέση ηλικία των φοιτητών που φοιτούν στο τμήμα 1 Επιλογή Να βρεθεί η μέση ηλικία των φοιτητών που φοιτούν στο τμήμα 1 SELECT AVG(s.age) FROM student AS s JOIN student2department as sd ON s.id=sd.studentid WHERE sd.departmentid=1

Να βρεθεί η μέγιστη ηλικία Επιλογή Να βρεθεί η μέγιστη ηλικία SELECT MAX(s.age) FROM student AS s

Να βρεθεί η μέγιστη ηλικία του φοιτητή που φοιτά στο τμήμα 1 Επιλογή Να βρεθεί η μέγιστη ηλικία του φοιτητή που φοιτά στο τμήμα 1 SELECT MAX(s.age) FROM student AS s JOIN student2department as sd ON s.id=sd.studentid WHERE sd.departmentid=1

Να βρεθεί η μέγιστη ηλικία του φοιτητή που φοιτά στο τμήμα 1 Επιλογή Να βρεθεί η μέγιστη ηλικία του φοιτητή που φοιτά στο τμήμα 1 SELECT MAX(s.age) AS maxage FROM student AS s JOIN student2department as sd ON s.id=sd.studentid WHERE sd.departmentid=1

Να βρεθούν οι μέγιστες ηλικίες ανά τμήμα Επιλογή Να βρεθούν οι μέγιστες ηλικίες ανά τμήμα SELECT MAX(s.age) AS maxage FROM student AS s JOIN student2department as sd ON s.id=sd.studentid GROUP BY sd.departmentid

Επιλογή Να βρεθούν οι μέγιστες ηλικίες ανά τμήμα που έχει περισσότερους από 5 μαθητές SELECT MAX(s.age) AS maxage FROM student AS s JOIN student2department as sd ON s.id=sd.studentid GROUP BY sd.departmentid HAVING COUNT(*) > 5

Μέτρησε πόσοι μαθητές υπάρχουν στο τμήμα 1 Επιλογή Μέτρησε πόσοι μαθητές υπάρχουν στο τμήμα 1 SELECT COUNT(*) AS totalStudent FROM student AS s JOIN student2department as sd ON s.id=sd.studentid WHERE sd.departmentid=1

Μέτρησε πόσοι μαθητές υπάρχουν ανά τμήμα Επιλογή Μέτρησε πόσοι μαθητές υπάρχουν ανά τμήμα SELECT COUNT(*) AS totalStudent FROM student AS s JOIN student2department as sd ON s.id=sd.studentid GROUP BY sd.departmentid

Εμφάνισε όλους τους φοιτητές με αλφαβητική σειρά ονόματος Επιλογή Εμφάνισε όλους τους φοιτητές με αλφαβητική σειρά ονόματος SELECT s.name, s.surname FROM student AS s ORDER BY s.name ASC

Εμφάνισε όλους τους φοιτητές με αντίστροφη αλφαβητική σειρά ονόματος Επιλογή Εμφάνισε όλους τους φοιτητές με αντίστροφη αλφαβητική σειρά ονόματος SELECT s.name, s.surname FROM student AS s ORDER BY s.name DESC

Εμφάνισε όλους τους φοιτητές με αλφαβητική σειρά επιθέτου Επιλογή Εμφάνισε όλους τους φοιτητές με αλφαβητική σειρά επιθέτου SELECT s.name, s.surname FROM student AS s ORDER BY s.surname ASC

5 JOIN

Επιλογή Id Name Surname age 1 V P 35 2 N S 37 Studentid Departmentid since 1 2010

INNER JOIN (simple JOIN) Id Name Surname age 1 V P 35 2 N S 37 INNER JOIN (simple JOIN) Studentid Departmentid since 1 2010 SELECT * FROM student AS s INNER JOIN student2department AS sd ON s.id = sd.studentid Id Name Surname age Studentid Departmentid since 1 V P 35 2010

LEFT JOIN student2department AS sd ON s.id = sd.studentid Name Surname age 1 V P 35 2 N S 37 LEFT JOIN Studentid Departmentid since 1 2010 SELECT * FROM student AS s LEFT JOIN student2department AS sd ON s.id = sd.studentid Id Name Surname age Studentid Departmentid since 1 V P 35 2010 2 N S 37 null