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

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

SQL Data Manipulation Language

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

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

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

Αρχεία και Βάσεις Δεδομένων

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

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

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


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

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

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

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

Διάλεξη 14: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) II. Διδάσκων: Παναγιώτης Ανδρέου


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

Βάσεις Δεδομένων. Ενότητα 7.1: Structured Query Language - 1 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

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

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

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

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

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

SQL: Συναρτήσεις Συνάθροισης

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

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

Lecture 16: SQL DML III

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

Αρχεία και Βάσεις Δεδομένων

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

SQL Data Manipulation Language

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

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

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10

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

DELETE, UPDATE, INSERT.

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

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

DELETE, UPDATE, INSERT

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

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

Κεφάλαιο 4. Η Γλώσσα SQL και Σχεσιακός Λογισµός. Ι.Β. Σχεσιακός Λογισµός και η Γλώσσα SQL Σελίδα 2.46

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

Εισαγωγή στη Σχεσιακή Άλγεβρα

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

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

Lecture 14: SQL DML I

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

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Σχεσιακός Ορισµός. Μαθ. #12

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

Εισαγωγή στις Βάσεις Δεδομζνων II

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

Query-by-Example (QBE)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

Η αναλυτική περιγραφή της γλώσσας SQL αποτελεί αντικείµενο των σελίδων που ακολουθούν. Η ΓΛΩΣΣΑ ΟΡΙΣΜΟΥ Ε ΟΜΕΝΩΝ

Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1

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

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

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

Εισαγωγή στην πληροφορική

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

Διάλεξη 10: Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός (Relational Algebra/Calculus) ΙI

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


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

Φροντιστήριο Σχεσιακή Άλγεβρα (μέρος 2 ο ) - Σχεσιακός Λογισμός Δημητράκη Κατερίνα

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

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

Σχεσιακός Λογισμός Πλειάδων

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ)

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

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

Lecture 21: Functional Dependencies and Normalization

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

1 / 97

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

ΗΥ360: Αρχεία και Βάσεις Δεδομένων Διδάσκων: Πλεξουσάκης Δημήτρης. Φροντιστήριο Σχεσιακή Άλγεβρα Δημητράκη Κατερίνα

1 / 87

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

Κλειδιά (keys) Λογικά, σκεφτόµαστε για «κλειδιά» σαν τα δεδοµένα (τα πεδία) εκείνα τα οποία µας επιτρέπουν να ξεχωρίσουµε τις διάφορες εγγραφές

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

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων

Αρχεία και Βάσεις Δεδομένων

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

Lecture 17: SQL DML IV

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

Βάσεις Δεδομένων Ι SQL Μέρος 2 ο. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Θέματα Τελικής Εξέτασης. ΠΡΟΣΟΧΗ: Οι απαντήσεις πάνω στα ΘΕΜΑΤΑ

Βάσεις Δεδομένων. Ενότητα 7.2: Structured Query Language - 2 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Διάλεξη 15: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) III. Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

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

SQL(DML) - Query Example 1 Query:1 Βρείτε τα ονόματα των έργων που δεν αφορούν το τμήμα research ή το τμήμα design. -SELECT pname FROM project WHERE deptno NOT IN( SELECT deptno FROM department WHERE deptname IN ( research, design ) ); -WHERE deptname IN ( design, research ) ή -WHERE deptname= research OR deptname = design 2

SQL(DML) - Query Example 1 Query:1 Βρείτε τα ονόματα των έργων που δεν αφορούν το τμήμα research ή το τμήμα design. -SELECT pname FROM project p, department d WHERE p.deptno = d.deptno AND d.deptname <> research AND d.deptname <> design ; -SELECT pname FROM project p, department d ή WHERE d.deptno=p.deptno AND NOT (d.deptname= research OR d.deptname = design ); 3

SQL(DML) - Query Example 2 Query:2 Βρείτε τα ονοματεπώνυμα των υπαλλήλων που εργάζονται τουλάχιστον σε ένα project. -SELECT name, fname FROM employee WHERE ssn = ANY( SELECT distinct ssn FROM works_on ); ή -SELECT name, fname FROM employee e WHERE e.ssn IN ( SELECT distinct ssn FROM works_on ); 4

SQL(DML) - Query Example 2 Query:2 Βρείτε τα ονοματεπώνυμα των υπαλλήλων που εργάζονται τουλάχιστον σε ένα project. SELECT distinct name, fname FROM employee e, works_on w WHERE w.ssn = e.ssn; 5

SQL(DML) - Query Example 3 Query:3 Βρείτε τα ονοματεπώνυμα των υπαλλήλων που έχουν μικρότερο μισθό από οποιονδήποτε υπάλληλο που εργάζεται στο τμήμα 3. -SELECT name, fname FROM employee WHERE salary < all (SELECT salary FROM employee WHERE deptno = 3); 6

SQL(DML) - Query Example 4 Query:4 Βρείτε τα ονοματεπώνυμα των υπαλλήλων που δεν εργάζονται σε project που ελέγχεται από το τμήμα 3. 7

SQL(DML) - Query Example 4 Query:4 Βρείτε τα ονοματεπώνυμα των υπαλλήλων που δεν εργάζονται σε project που ελέγχεται από το τμήμα 3. 8

SQL(DML) - Query Example 5 Query:5 Βρείτε τα ονοματεπώνυμα των υπαλλήλων που έχουν τουλάχιστον έναν εξαρτώμενο του ίδιου φύλου. 9

SQL(DML) Για τα επόμενα παραδείγματα θα χρησιμοποιηθεί το παρακάτω σχεσιακό σχήμα. 10

Query:6 SQL(DML) - Query Example 6 Βρείτε τις πόλεις στις οποίες μένουν πελάτες οι οποίοι δεν δίνουν παραγγελίες για προϊόντα που προμηθεύει ο «ΑΒ». 11

SQL(DML) - Query Example 6 Query:6 Βρείτε τις πόλεις στις οποίες μένουν πελάτες οι οποίοι δεν δίνουν παραγγελίες για προϊόντα που προμηθεύει ο «ΑΒ». 12

SQL(DML) - Query Example 7 Query:7 Βρείτε τους αριθμούς των παραγγελιών για τα προϊόντα που παραγγέλνονται σε ποσότητα από 50 μέχρι 100 τεμάχια και από πελάτες που βρίσκονται στην Αθήνα. 13

SQL(DML) - Query Example 8 Query:8 Βρείτε τα ονόματα και τις διευθύνσεις των πελατών οι οποίοι δίνουν παραγγελίες για προϊόντα για τα οποία δεν υπάρχει stock. 14

SQL(DML) Aggregate functions Παραδείγματα συναρτήσεων συνάθροισης : 15

SQL(DML) Aggregate functions Παραδείγματα συναρτήσεων συνάθροισης : 16

SQL(DML) Aggregate functions Παραδείγματα: Βρείτε το συνολικό αριθμό μαθητών που είναι κάτω από 18. SELECT count(*) FROM Student WHERE age < 18 Βρείτε τον μέγιστο μισθό, τον ελάχιστο μισθό και ο μέσο μισθό από όλους τους υπαλλήλους. SELECT max (salary), min (salary), avg (salary) FROM employee Βρείτε το συνολικό αριθμό των πελατών. SELECT count (*) FROM customers 17

SQL(DML) -Ομαδοποίηση πλειάδων (Group by) Ομαδοποίηση πλειάδων : Παρέχεται η δυνατότητα ομαδοποίησης των πλειάδων που αποτελούν την απάντηση σε μια ερώτηση σύμφωνα με τις κοινές τιμές κάποιων γνωρισμάτων (group by). Μπορούν επίσης να εφαρμοστούν συναρτήσεις συνάθροισης στις ομαδοποιημένες πλειάδες. Για παράδειγμα η ερώτηση : SELECT deptno, sum(salary) FROM employee group by deptno θα επιστρέψει τα διακεκριμένα deptno μαζί με το άθροισμα των μισθών του αντίστοιχου τμήματος 18

SQL(DML) -Ομαδοποίηση πλειάδων (Group by) Result deptno Sum 000 266643.00 100 155262.50 110 130442.81 115 13480000.00 121 110000.00 123 390500.00 19

SQL(DML) -Ομαδοποίηση πλειάδων (Group by) Ομαδοποίηση πλειάδων παράδειγμα : Έστω ότι έχουμε το παρακάτω πίνακα: Βρείτε το άθροισμα των αγορών για κάθε πελάτη SELECT customer, sum(orderprice) FROM Orders group by Customer Results: Customer SUM(OrderPrice) Hansen 2000 Nilsen 1700 Jensen 2000 Orders O_Id OrderDate OrderPrice Customer 1 2008/11/12 1000 Hansen 2 2008/10/23 1600 Nilsen 3 2008/09/02 700 Hansen 4 2008/09/03 300 Hansen 5 2008/08/30 2000 Jensen 6 2008/10/04 100 Nilsen 20

SQL(DML) -Ομαδοποίηση πλειάδων (Group by) Εάν στο προηγούμενο παράδειγμα δεν είχαμε βάλει το group by, δηλαδή είχαμε την επερώτηση SELECT customer, sum(orderprice) FROM Orders; Τα αποτελέσματα που θα παίρναμε θα ήταν : Customer SUM(OrderPrice) Hansen 5700 Nilsen 5700 Hansen 5700 Hansen 5700 Jensen 5700 Nilsen 5700 21

SQL (DML)-Ομαδοποίηση πλειάδων και περιορισμοί Οι περιορισμοί για κάθε ομάδα του αποτελέσματος, επιβάλλονται από το τμήμα HAVING της εντολής SELECT. Ο υπολογισμός αυτής της συνθήκης γίνεται μετά την ομαδοποίηση. Δομή σύνταξης : SELECT <λίστα πεδίων> FROM <λίστα πινάκων> [WHERE <σύνθετη συνθήκη>] [GROUP BY <λίστα πεδίων>] [HAVING <σύνθετη συνθήκη>] 22

SQL (DML)-Ομαδοποίηση πλειάδων και περιορισμοί Ομαδοποίηση πλειάδων και περιορισμοί παράδειγμα : Έστω ότι έχουμε το παρακάτω πίνακα: Βρείτε αν κάποιος πελάτης έχει άθροισμα αγορών κάτω από 2.000. SELECT Customer, sum(orderprice) FROM Orders group by Customer having sum(orderprice) < 2000; Results: Customer SUM(OrderPrice) Nilsen 1700 O_Id OrderDate OrderPrice Customer 1 2008/11/12 1000 Hansen 2 2008/10/23 1600 Nilsen 3 2008/09/02 700 Hansen 4 2008/09/03 300 Hansen 5 2008/08/30 2000 Jensen 6 2008/10/04 100 Nilsen 23

SQL (DML)-Ομαδοποίηση πλειάδων και περιορισμοί Ομαδοποίηση πλειάδων και περιορισμοί παράδειγμα : Έστω ότι έχουμε το παρακάτω πίνακα: Για κάθε τμήμα επέστρεψε τον αριθμό του τμήματος, τον αριθμό των υπαλλήλων του τμήματος και τον μέσο όρο των μισθών του κάθε τμήματος, για τα τμήματα που έχουν πάνω από 10 υπαλλήλους. SELECT dno, count(*), avg(salary) FROM employee group by dno having count(*) > 10; 24