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



Σχετικά έγγραφα
ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

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

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

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

Lecture 14: SQL DML I

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

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

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

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

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

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

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

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

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

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

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

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

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

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

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

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

Η Γλώσσα SQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

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

DELETE, UPDATE, INSERT.

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

DELETE, UPDATE, INSERT

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

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

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

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

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Lecture 12: SQL DDL I

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

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

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

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

Lecture 15: SQL DML II

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

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

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

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

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

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

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

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

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


Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

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

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

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Βάσεις Δεδομένων

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

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

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

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

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

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

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

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 5: SQL

Διάλεξη 12: SQL Data Definition Language. Διδάσκων: Παναγιώτης Ανδρέου

Lecture 16: SQL DML III

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ


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

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

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

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Transcript:

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

SQL-DDL Data Definition/Description Language (DDL): προσδιορίζουν τη δομή ή το σχήμα των δεδομένων. Στις Σχεσιακές Βάσεις Δεδομένων, οι λειτουργίες που μεταβάλλουν το σχήμα των δεδομένων (το σχήμα της βάσης) είναι οι πράξεις δημιουργίας / διαγραφής ενός πίνακα καθώς και της τροποποίησής του. 2

SQL-DDL Δημιουργία πίνακα : CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type,...); Παράδειγμα: CREATE TABLE Project (Pno integer, Pname varchar(75), Plocation varchar(20), DeptNo integer,); Project Pno Pname Plocation DeptNo 3

SQL-DDL DataTypes Αριθμητικοί INTEGER (or INT), SMALLINT: υποσύνολα των ακεραίων. REAL: κινητής υποδιαστολής FLOAT(N): κινητής υποδιαστολής με τουλάχιστον Ν ψηφία. DECIMAL(P,D): με P ψηφία, D από αυτά είναι δεξιά της υποδιαστολής. Χαρακτήρες Συμβολοσειρές CHAR(N) (or CHARACTER(N)) : σταθερού μεγέθους (Ν) συμβολοσειρά VARCHAR(N): μεταβλητού μεγέθους (Ν) συμβολοσειρά με το πολύ N χαρακτήρες. 4

SQL-DDL DataTypes Bits BitStrings BIT(N): σταθερού μεγέθους σειρά από bits VARBIT(N): μεταβλητού μεγέθους σειρά με το πολύ N bits. Χρόνος DATE: ημερομηνία με μορφή: YYYY-MM-DD (έτος μήνας μέρα) TIME: χρόνος ημέρας: HH-MM-SS (ώρα λεπτά δευτερόλεπτα) TIME-STAMP: ημερομηνία, χρόνος ημέρας : YYYY-MM-DD-HH-MM-SS INTERVAL: χρονική περίοδος, όπως 3 years, ή 90 days ή 5 minutes and 45 seconds. 5

SQL-DDL Για την τροποποίηση ενός πίνακα: ALTER TABLE table {DROP MODIFY ADD } (column_name datatype); Παραδείγματα Project Pno Pname Plocation DeptNo ALTER TABLE Project DROP COLUMN DeptNo; Pno Pname Plocation ΑLTER TABLE Project ADD Budget varchar(80); Pno Pname Plocation Budget ALTER TABLE Project MODIFY COLUMN Plocation varchar(100); Τροποποίηση του μέγιστου μεγέθους συμβολοσειράς. Για τη διαγραφή ενός πίνακα DROP TABLE table_name Παράδειγμα: DROP TABLE Project 6

SQL-DML Data Manipulation Language (DML) Το μέρος της SQL που παρέχει τη δυνατότητα χειρισμού των δεδομένων ενός σχεσιακού σχήματος Ορίζει το συντακτικό των προτάσεων για εισαγωγή δεδομένων, διαγραφή, ενημέρωση πλειάδων (εγγραφών), αλλά και εκτέλεση επερωτήσεων στις σχέσεις (πίνακες) του σχήματος. SELECT: ανάκτηση δεδομένων από πίνακες της βάση INSERT INTO: εισαγωγή νέων δεδομένων σε πίνακα UPDATE: ενημέρωση δεδομένων ενός πίνακα DELETE: διαγραφή δεδομένων από πίνακα 7

SQL (DML) - Examples Για τα επόμενα παραδείγματα θα χρησιμοποιήσουμε το παρακάτω σχήμα: 8

SQL (DML) Insert into Εισαγωγή στοιχείων INSERT INTO table_name VALUES (value1, value2,... ) Ή INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,... ) 9

SQL (DML) Insert into Εισαγωγή στοιχείων στον πίνακα των υπαλλήλων ενός νέου υπαλλήλου με κλειδί 1231. INSERT INTO employee VALUES(1231, john, m., smith, 1962/12/01, Edmonton 11, M, 1500.00, 1121,1); 10

SQL (DML) Insert into Εισαγωγή στοιχείων στον πίνακα των υπαλλήλων. INSERT INTO employee VALUES (1231, john, m., smith, 1962/12/01, Edmonton 11, M, 1500,1121,1); INSERT INTO employee (ssn, name, fname,bdate, address, sex, salary) VALUES (3244, michael, johnson, 1972/11/11, Juliad Av. 12, M, 2600.00); 11

SQL (DML) Update Ενημέρωση στοιχείων πίνακα, σύνταξη: UPDATE table_name SET column_name = new_value WHERE column_name = some_value Για παράδειγμα έστω ο παρακάτω πίνακας 12

SQL (DML) Update Ενημέρωση της πλειάδας με ssn=3424 του πίνακα των υπαλλήλων: UPDATE employee SET superssn = 3244 WHERE ssn = 3424 Η ενημέρωση θα μπορούσε να γίνει και με κάποια/κάποιες άλλες συνθήκες, π.χ ενημέρωση όλων όσοι εργάζονται στο τμήμα 1 UPDATE employee SET superssn = 3244 WHERE deptno = 1 13

SQL (DML) Delete Διαγραφή στοιχείων πίνακα, σύνταξη: DELETE FROM table_name WHERE column_name = some_value Για παράδειγμα έστω ο παρακάτω πίνακας: 14

SQL (DML) Delete Διαγραφή εγγραφής/πλειάδας με χαρακτηριστικό ssn = 1231 από τον πίνακα υπαλλήλων: DELETE FROM employee WHERE ssn = 1231 15

SQL (DML) Select Ανάκτηση δεδομένων Η συνηθέστερη εντολή είναι: Όπου: SELECT column_name(s) FROM table_name(s) WHERE condition(s) column_name(s): Λίστα με τα ονόματα των πεδίων που μας ενδιαφέρουν να προβληθούν. table_name(s): Λίστα με τα ονόματα των πινάκων από/με τα οποία θα εξάγουμε δεδομένα condition(s): Συνθήκη/ες που πρέπει να πληρούν οι πλειάδες της απάντησης. 16

SQL (DML) Query Example 1 Q1: Βρείτε τα στοιχεία όλων των υπαλλήλων. SELECT * FROM employee Επιστρέφει όλα τα στοιχεία (πεδία) από τον πίνακα των υπαλλήλων. Το wildcard * υποδηλώνει όλα τα πεδία. 17

SQL (DML) Query Example 2 Q2: Βρείτε την ημερομηνία γέννησης και τη διεύθυνση του υπαλλήλου Jonas Elias Simpson. SELECT bdate, address FROM employee WHERE name= jonas AND mid = elias AND fname = simpson ; Για τις συνθήκες χρησιμοποιούμε συγκριτικούς τελεστές ( =, <>, >, <=, <, >= ) και λογικούς τελεστές (AND, OR, NOT). 18

SQL (DML) Query Example 2 Q2: Βρείτε την ημερομηνία γέννησης και τη διεύθυνση του υπαλλήλου Jonas Elias Simpson. SELECT bdate, address FROM employee WHERE name= jonas AND mid = elias AND fname = simpson ; SELECT bdate as birthdate, address FROM employee WHERE name= jonas AND mid = elias AND fname = simpson ; Μετονομασία του πεδίου bdate στο αποτέλεσμα 19

SQL (DML) Query Example 3 Q3: Τα ονοματεπώνυμα των υπαλλήλων και το όνομα του τμήματος στο οποίο δουλεύουν. SELECT name, mid, fname, deptname FROM employee E, department D WHERE E.DEPTNO = D.DEPTNO; 20

SQL (DML) Query Example 3 Q3: Τα ονοματεπώνυμα των υπαλλήλων και το όνομα του τμήματος στο οποίο δουλεύουν. SELECT name, mid, fname, deptname FROM employee E, department D WHERE E.DEPTNO = D.DEPTNO; Natural join 21

SQL (DML) Query Example 4 Q4: Τα ονοματεπώνυμα και τις διευθύνσεις όλων των υπαλλήλων που εργάζονται στο τμήμα «marketing». SELECT name, mid, fname, address FROM employee E, department D WHERE D.DEPTNAME = marketing AND E.DEPTNO = D.DEPTNO; 22

SQL (DML) Query Example 4 Q4: Τα ονοματεπώνυμα και τις διευθύνσεις όλων των υπαλλήλων που εργάζονται στο τμήμα «marketing». SELECT name, mid, fname, address FROM employee E, department D WHERE D.DEPTNAME = marketing AND E.DEPTNO = D.DEPTNO; 23

SQL (DML) Query Example 5 Q5: Βρείτε για κάθε υπάλληλο το ονοματεπώνυμο του και το επίθετο του διευθυντή του. SELECT E.name, E.mid, E.fname, S.fname FROM employee E, employee S WHERE E.SUPERSSN = S.SSN; Απαραίτητη μετονομασία πινάκων,αφού χρησιμοποιούμε τον ίδιο πίνακα. 24

SQL (DML) Query Example 6 Q6: Ανακτήστε τα ονοματεπώνυμα και το μισθό όλων των υπαλλήλων και το bonus που θα πάρει καθένας. (Το bonus είναι 10% του μισθού). SELECT name, fname, salary, (salary*0.10) as bonus FROM employee E 25

SQL (DML) Query Example 7 Q7: Βρείτε τα ονοματεπώνυμα όλων των υπαλλήλων που έχουν εξαρτώμενα άτομα. SELECT DISTINCT E.name, E.fname FROM employee E, dependent D WHERE E.SSN = D.ESSN; DISTINCT: Απομακρύνει διπλότυπα στις πλειάδες του αποτελέσματος ALL: Επιστρέφει όλες τις πλειάδες (προεπιλογή). DEPENDENT EMPLOYEE ESSN DEPENDNAME BDATE SEX RELATIONSHIP SSN NAM E MI D FNAME BDATE ADDRESS SEX SALARY SUPERSSN DEPTNO 26

SQL (DML) Query Example 7 Q7: Βρείτε τα ονοματεπώνυμα όλων των υπαλλήλων που έχουν εξαρτώμενα άτομα. SELECT E.name, E.fname FROM employee WHERE ssn IN (SELECT DISTINCT ESSN FROM dependent); ΙN, NOT IN : Συμμετοχή ή μη-συμμετοχή σε σύνολο Εμφωλευμένα Υποερωτήματα (Nested Sub queries) EMPLOYEE DEPENDENT ESSN DEPENDNAME BDATE SEX RELATIONSHIP SSN NAM E MI D FNAME BDATE ADDRESS SEX SALARY SUPERSSN DEPTNO 27

SQL (DML) Query Example 8 Q8: Βρείτε τα ονόματα των έργων στα οποία δουλεύει κάποιος υπάλληλος με το επίθετο Smith. 28

SQL (DML) Query Example 8 Q8: Βρείτε τα ονόματα των έργων στα οποία δουλεύει κάποιος υπάλληλος με το επίθετο Smith. 29

SQL (DML) Query Example 8 Q8: Βρείτε τα ονόματα των έργων στα οποία δουλεύει κάποιος υπάλληλος με το επίθετο Smith. SELECT pname FROM employee E, works_on W, project P WHERE P.pno = W.pno AND W.ssn = E.ssn AND E.fname = smith ; 30

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

SQL (DML) Query Example 9 Q9: Βρείτε τα ονοματεπώνυμα όλων των υπαλλήλων που εργάζονται σε project που δεν ελέγχεται από το τμήμα 3 SELECT name, fname FROM employee E, works_on W, project P WHERE W.ssn = E.ssn AND P.pno = W.pno AND P.DeptNo <> 3); 32

SQL (DML) Query Example 9 Q9: Βρείτε τα ονοματεπώνυμα όλων των υπαλλήλων που εργάζονται σε project που δεν ελέγχεται από το τμήμα 3 SELECT name, fname FROM employee E, works_on W WHERE E.ssn = W.ssn AND W.pno NOT IN (SELECT pno FROM project WHERE deptno = 3 ); ** 33

SQL (DML) Query Example 9 Q9: Βρείτε τα ονοματεπώνυμα όλων των υπαλλήλων που εργάζονται σε project που δεν ελέγχεται από το τμήμα 3 Το πρόβλημα που αναφέρεται στο προηγούμενο slide (**) λύνεται με την τροποποίηση του ερωτήματος ως εξής: SELECT name, fname FROM employee E WHERE E.ssn NOT IN ( SELECT W.ssn FROM works_on W, project P WHERE W.ssn = E.ssn AND P.pno = W.pno AND P.DeptNo = 3); 34