Lecture 14: SQL DML I

Σχετικά έγγραφα
Lecture 14: SQL DML I

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

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

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

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

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

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

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

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

Lecture 16: SQL DML III

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

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Βάρειπ Δεδξμέμωμ. Εξγαζηήξην ΙΙI. Τκήκα Πιεξνθνξηθήο ΑΠΘ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

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

Lecture 15: SQL DML II

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

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

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

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

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

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

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Lecture 15: SQL DML II

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

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

Η αξρή ζύλδεζεο Client-Server

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΘΔΜΑ 1 ο Μονάδες 5,10,10

Database Design. Καλνληθνπνηήζε θαη πξώηε θαλνληθή κνξθή. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

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

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

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

x x x x tan(2 x) x 2 2x x 1

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Εξγαζηήξην Πιεξνθνξηθήο

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

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

γηα ηνλ Άξε Κσλζηαληηλίδε

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

MySQL Εργαστήριο #3 Structured Query Language - SQL

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Αιγόξηζκνη Δνκή επηινγήο. Απιή Επηινγή ύλζεηε Επηινγή. Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Τ. introcsprinciples.wordpress.

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

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

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

Βάσεις Δεδομέμωμ. Δξγαζηήξην Ι. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΕΞΙΣΩΣΕΙΣ. (iv) (ii) (ii) (ii) 5. Γηα ηηο δηάθνξεο ηηκέο ηνπ ι λα ιπζνύλ νη εμηζώζεηο : x 6 3 9x

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

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

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

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

Άσκηση 1 - Μοπυοποίηση Κειμένου

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Λεκηική έκθραζη, κριηική, οικειόηηηα και ηύπος δεζμού ζηις ζηενές διαπροζωπικές ζτέζεις

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 9: RA IΙ. Relational Algebra. (Chapter Elmasri-Navathe 5ED)

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 10: RA IΙ. RA Advanced + Examples

Transcript:

Department of Computer Science University of Cyprus EPL342 Databases Lecture 14: SQL DML I SQL Structured Query Language (Chapter 8.4, Elmasri-Navathe 5ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 14-1

Πεξηερφκελν Δηάιεμεο Κεθάιαην 8.4: SQL DML I Δηζαγσγή ζηελ SQL-DML (Δηαθνξέο SQL-DML κε Σρεζηαθφ Μνληέιν / Άιγεβξα). Άπιεο Δθθξάζεηο ζε SQL (SELECT-FROM- WHERE) Απιέο Σπλελώζεηο ζε SQL Γηθνξνύκελα Ολόκαηα Γλσξηζκάησλ θαη ην Γλψξηζκα * Πεξίπησζε Με-πξνζδηνξηζκέλνπ WHERE Χξήζε DISTINCT ζε γλσξίζκαηα. Πξάμεηο Σπλόισλ κε SQL 14-2

Εηζαγσγή ζηε SQL Σηηο πξνεγνχκελεο δπν δηαιέμεηο μεθηλήζακε ηελ κειέηε κηαο πξαγκαηηθή γιψζζα βάζεσλ δεδνκέλσλ ηελ SQL (Structured Query Language). Γλώζζα Οριζμού Δεδομένων (Data Definition Language, SQL-DDL) Γιψζζα Επεμεξγαζίαο Δεδομένων (Data Manipulation Language, SQL-DML) Εάλ θαη ζα αλαθεξφκαζηε ζηo πξφηππν SQL:99-DML, απηφ πινπνηείηαη ζε κεγάιν βαζκό απφ ηνπο θαηαζθεπαζηέο βάζεσλ δεδνκέλσλ (π.ρ., ζηελ TSQL) Απηφ είλαη ζε αληίζεζε κε ηελ SQL-DDL ε νπνία έρεη αξθεηά πξνβιήκαηα ζπκβαηφηεηαο. Σε επεξσηήζεηο SQL ζπληζηάηαη ε ζπκβαηφηεηα κε ην πξφηππν ANSI/ISO SQL:99 Παξφιν πνπ πνιιέο θνξέο ζα ζαο δεκηνπξγείηαη έλα δίιιεκα κεηαμχ Δπίδνζεο (Performance) θαη Μεηαθεξζηκόηεηαο (Portability) ηνπ θώδηθα. 14-3

Δηαθνξέο ηεο SQL θαη ηνπ Σρεζηαθνχ Μνληέινπ/Άιγεβξαο: Γηαθνξέο SQL θαη Σρεζηαθνύ Μνληέινπ / Άιγεβξαο A) H SQL ζηεξίδεηαη ζε Σύλνια-κε-Γηαθξηηώλ-Τηκώλ ή αιιηψο Πνιπζύλνια (Μulti-set), ελψ ην Σρεζηαθφ Μνληέιν / Άιγεβξα ζε Απιά Σύλνια (δηαθξηηώλ-ηηκώλ). Σπλεπψο, ε SQL επηηξέπεη ηα δηπιόηππα (duplicates) ζε ζρέζεηο θαη απνηειέζκαηα επεξσηήζεσλ ελψ ην Σρεζηαθφ Μνληέιν / Άιγεβξα φρη. Σεκεηψζηε φηη νη ζρέζεηο SQL κπνξνχλ λα πεξηνξηζηνύλ έηζη ψζηε λα ζπκπεξηθέξνληαη σο καζεκαηηθά ζύλνια θάλνληαο ρξήζε πεξηνξηζκψλ PRIMARY KEY, UNIQUE, ή κε ρξήζε ηνπ DISTINCT ην νπνίν ζα δνχκε ζε ιίγν Β) Σρέζεηο SQL θαη απνηειέζκαηα έρνπλ δηάηαμε (order) ελψ ζην Σρεζηαθφ Μνληέιν / Άιγεβξα δελ έρνπλ, δει., Δπίπεδν Σρέζεο: Σεηξά απνζήθεπζεο ζηνηρείσλ ζηνλ δίζθν Δπίπεδν Δπεξώηεζεο: Αχμνπζα Σεηξά / Φζίλνπζα Σεηξά 14-4

Δηαθνξέο ηεο SQL θαη ηνπ Σρεζηαθνχ Μνληέινπ/Άιγεβξαο: Έλα πνιπζύλνιν (multi-set or bag) είλαη έλα κεδηαηεηαγκέλν ζχλνιν ζηνηρείσλ, φπνπ έλα ζηνηρείν κπνξεί λα εκθαλίδεηαη πεξηζζόηεξν από κηα θνξά. Παξάδεηγκα: {A, B, C, A} είλαη έλα πνιπζύλνιν, ελψ ην {A, B, C} είλαη πνιπζύλνιν θαη απιό ζύλνιν. Η SQL παξάγεη πνιπζχλνια ζηα νπνία ππάξρεη δηάηαμε (θάπνηα ζεηξά) ζηα απνηειέζκαηα (νπζηαζηηθά ιίζηεο). Παξάδεηγκα: {A, B} = {B, A, A} σο Σχλνια {A, B, A} = {B, A, A} σο Πνιπζχλνια 14-5 [A, B, A] [B, A, A] σο Λίζηεο (πνπ παξάγνληαη ζηελ SQL)

Απιέο Επεξσηήζεηο ζε SQL H βαζηθή έθθξαζε SQL γηα δηαηχπσζε επεξσηήζεσλ νλνκάδεηαη SELECT-FROM-WHERE κπινθ (ή mapping) SELECT <attribute list> FROM <table list> [WHERE <condition>] <attribute list> Είλαη κηα ιίζηα γλσξηζκάησλ ησλ νπνίσλ ε ηηκή πξέπεη λα αλαθηεζεί απφ κηα επεξψηεζε. Αληίζηνηρν ηνπ ηειεζηή πξνβνιήο π. <table list> είλαη κηα ιίζηα από νλόκαηα ζρέζεσλ απφ ηα νπνία ζα γίλεη ε αλάθηεζε ησλ απνηειεζκάησλ. Αληίζηνηρν ηεο ζρέζεο πνπ ζπκκεηέρεη ζε έλα Σρεζηαθφ Τειεζηή. <condition> είλαη κηα ινγηθή έθθξαζε (Boolean) ή νπνία πξέπεη λα απνηηκεζεί γηα λα επηζηξαθνχλ ηα απνηειέζκαηα Αληίζηνηρν ηνπ ηειεζηή επηινγήο ζ. Τα απνηειέζκαηα επηζηξέθνληαη θάπνηε ζε αχμνπζα ζεηξά ηνπ attribute list (φρη ζε SQL Server). Θα κηιήζνπκε πεξηζζφηεξν γηα ην Ordering ζηελ επφκελε δηάιεμεepl342: Databases - Demetris Zeinalipour (University of Cyprus) 14-6

Άπιεο Επεξσηήζεηο SQL (Simple SQL Queries) Η SQL κπνξεί λα ρξεζηκνπνηεζεί γηα λα δεισζνχλ πνιχ ζύλζεηεο θαη πεξίπινθεο επεξσηήζεηο. Σήκεξα ζα επηθεληξσζνχκε κφλν ζηα bold κέξε: SELECT attribute list FROM table list WHERE selection-condition GROUP BY grouping attribute(s) HAVING grouping condition ORDER BY ASC DESC Τν απιφ SELECT-FROM-WHERE κπινθ ζα επεθηαζεί αξγφηεξα κε έλλνηεο νκαδνπνίεζεο, ζπλαζξνηζηηθώλ ζπλαξηήζεσλ, εκθσιεπκέλσλ επεξσηήζεσλ, θ.α. TSQL SELECT-FROM-WHERE Reference: http://msdn.microsoft.com/en-us/library/ms189499.aspx 14-7

Απιέο Επεξσηήζεηο (Επεξψηεζε ζε 1 Σρέζε) Query 0: Αλάθηεζε ην birthdate θαη address ησλ employee ησλ νπνίσλ ην name είλαη 'John B. Smith'. Q0: SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME='John' AND MINIT='B AND LNAME='Smith Αληίζηνηρν κε ηελ έθθξαζε ζρεζηαθήο άιγεβξαο Τ1 ζ (FNAME='John' AND MINIT='B AND LNAME='Smith ) (EMPLOYEE) T2 π BDATE, ADDRESS (Τ1) Η πξνβνιε (π) παξνπζηάδεηαη κε Μπιε ελψ νη επηινγή (ζ) κε Κφθθηλν. Σεκεηψζηε φηη ζην Q0 κπνξεί λα εκπεξηέρνληαη δηπιόηππα ελψ ζηελ αληίζηνηρε έθθξαζε Σρεζηαθήο Άιγεβξαο δελ ππάξρνπλ 14-8

Απιέο Επεξσηήζεηο (Επεξψηεζε ζε 2 Σρέζεηο) Query 1: Αλάθηεζε ηα names θαη addresses φισλ ησλ ππαιιήισλ πνπ δνπιεχνπλ γηα ην 'Research' department. Q1:SELECT FNAME, LNAME, ADDRESS FROM WHERE EMPLOYEE, DEPARTMENT DNAME='Research' AND DNUMBER=DNO Αληίζηνηρν κε ηελ έθθξαζε ζρεζηαθήο άιγεβξαο Τ1 EMPLOYEE DNO=Dnumber (ζ DNAME='Research' Department)) T2 π FNAME, LNAME, ADDRESS (Τ1) DNAME='Research': Σπλζήθε Επηινγήο (ζ) DNUMBER=DNO: Σπλζήθεο Σπλέλσζεο ( ) FNAME,LNAME,ADDRESS: Γλσξίζκαηα Πξνβνιήο (π) 14-9

Απιέο Επεξσηήζεηο (Επεξψηεζε ζε 3 Σρέζεηο) Query 2: Γηα θάζε project ζηελ πόιε 'Stafford', παξνπζίαζε ην project number, ην ηκήκα πνπ ειέγρεη ην project θαη ηα αθφινπζα: επίζεην (last name) ηνπ department manager, δηεύζπλζε (address) θαη εκεξνκελία γέλλεζεο (birthdate). Stafford Q2: SELECT PNUMBER,DNUM,LNAME,BDATE,ADDRESS FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE DNUM=DNUMBER AND MGRSSN=SSN AND PLOCATION='Stafford Σρεζηαθή Άιγεβξα Τ1 π Pnumber, Dnum (ζ PLOCATION= Stafford Project)) T2 π Pnumber, Dnum, Mgr_ssn (Department Dnumber=DNum Τ1) T2 π Pnumber, Dnum, Lname, Bdate, Address (Employee SSN=Mgr_ssn Τ2) 14-10

Δηθνξνχκελα Ολφκαηα Γλσξηζκάησλ (Ambiguous Attribute Names) Σηελ SQL, κπνξνχκε λα ρξεζηκνπνηήζνπκε ην ίδην όλνκα γηα δπν ή πεξηζζόηεξα γλσξίζκαηα εθφζνλ ηα γλσξίζκαηα απηά αλήθνπλ ζε δηαθνξεηηθέο ζρέζεηο Π.ρ., Employee(ssn, name, dno) θαη Deparment(dno, name) Γηα λα απνθεπρζνχλ δηθνξνύκελεο θαηαζηάζεηο ζε πεξηπηψζεηο πνιιαπιψλ ζρέζεσλ (ζηηο νπνίεο δελ ζα είλαη γλσζηφ ζε πην αθξηβψο γλψξηζκα αλαθέξεηαη ε επεξψηεζε), ρξεζηκνπνηνχκε σο πξόζεκα (prefix) ην φλνκα ηεο ζρέζεο, π.ρ., EMPLOYEE.Νame, DEPARTMENT.Name ή αθφκε θαιχηεξα λα ρξεζηκνπνηήζνπκε έλα alias (δεο επνκέλε EPL342: δηαθάλεηα) Databases - Demetris Zeinalipour (University of Cyprus) 14-11

Δηθνξνχκελα Ολφκαηα Γλσξηζκάησλ (Ambiguous Attribute Names) Aliases γηα κεηνλνκαζία Σρέζεσλ/Γλσξηζκάησλ πξναηξεηηθφ Q1a: SELECT E.FNAME, E.LNAME, E.ADDRESS FROM EMPLOYEE AS E, DEPARTMENT AS D WHERE D.DNAME='Research' AND D.DNUMBER=D.DNO Αθφκε θαη εάλ δελ ππάξρνπλ δηθνξνύκελα νλφκαηα, είλαη θάιν λα ρξεζηκνπνηείηαη ην Alias γηαηί έηζη γίλεηαη πην επαλάγλσζηνο ν θψδηθαο SQL. Γηα κεηνλνκαζία γλσξηζκάησλ: FROM Employee AS E(Fn,Mi,Ln,Ssn,Bd,Addr,Sex,Sal,Sssn,Dno) 14-12

Δηθνξνχκελα Ολφκαηα Γλσξηζκάησλ (Ambiguous Attribute Names) Μεξηθέο επεξσηήζεηο αλαθέξνληαη ζηελ ίδηα ζρέζε πνιιαπιέο θνξέο. Σε απηή ηελ πεξίπησζε, αλαηίζεληαη δηαθνξεηηθά aliases ζην φλνκα ηεο ζρέζεο έηζη ψζηε λα δίλεηαη ε εληχπσζε φηη ππάξρνπλ δηαθνξεηηθά ζηηγκηφηππα. Query 8: Γηα θάζε employee, αλάθηεζε ην όλνκα ηνπ employee, θαη ην όλνκα ηνπ άκεζα πξντζηακέλνπ ηνπ. Q8: SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME FROM EMPLOYEE E, EMPLOYEE S WHERE E.SUPERSSN=S.SSN E: ξφινο πθηζηάκελνπ (supervisee) S: ξφινο EPL342: πξντζηακέλνπ Databases - Demetris (supervisor) Zeinalipour (University of Cyprus) 14-13

Με-πξνζδηνξηζκέλν WHERE O φξνο WHERE είναι προαιρεηικός ζε μια επερώηηζη SQL. SELECT <attribute list> FROM <table list> [WHERE <condition>] H κε-χπαξμε ελφο ηέηνηνπ φξνπ ππνδειψλεη φηη ΔΕΝ ππάξρεη ζπλζήθε επηινγήο. Οπζηαζηηθά, είλαη αληίζηνηρν ηεο ζπλζήθεο WHERE TRUE Σπλεπψο, φιεο νη πιεηάδεο κηαο ζρέζεο επηιέγνληαη ζε κηα ηέηνηα πεξίπησζε. Query 9: Αλάθηεζε ην SSN φισλ ησλ ππαιιήισλ. Q9: SELECT SSN FROM EMPLOYEE 14-14

Με-πξνζδηνξηζκέλν WHERE (Πεξίπησζε Καξηεζηαλνχ Γηλνκέλνπ) Εάλ νξίδνληαη πεξηζζφηεξν απφ κηα ζρέζεηο ζηνλ φξν FROM, ηφηε απηφ ππνδειψλεη ηνλ ηειεζηή Καξηεζηαλνύ Γηλνκέλνπ (Cartesian Product) Παξάδεηγκα: Q10: SELECT SSN, DNAME FROM EMPLOYEE, DEPARTMENT Είλαη πνιχ ζεκαληηθφ λα κελ παξαβιέπεηαη ν νξηζκφο ζπλζεθψλ επηινγήο (WHERE) ζε ζπλελώζεηο γηα λα κελ δεκηνπξγνχληαη κε-επηζπκεηά κεγάια απνηειέζκαηα. Κάπνηεο βάζεηο πινπνηνχλ εμεηδηθεπκέλνπο ηειεζηέο θαξηεζηαλνύ γηλνκέλνπ Π.ρ. ζηελ TSQL ππάξρεη ε εληνιή CROSS JOIN SELECT SSN, DNAME FROM EMPLOYEE CROSS JOIN DEPARTMENT Καιχηεξα σζηφζν λα ρξεζηκνπνηείηαη ε ANSI/ISO εληνιή (Q10) 14-15

Χξήζε Γλσξίζκαηνο-* Γηα λα αλαθηήζνπκε ΌΛΑ ηα γλσξίζκαηα κηαο πιεηάδαο ζε κηα επεξψηεζε θάλνπκε ρξήζε ηνπ γλσξίζκαηνο * (all attributes) Παξαδείγκαηα: Q1C: SELECT * FROM EMPLOYEE WHERE DNO=5 Q1D: SELECT * FROM EMPLOYEE, DEPARTMENT WHERE DNAME='Research' AND DNO=DNUMBER 14-16

Χξήζε DISTINCT ζε Γλσξίζκαηα Όπσο είρακε αλαθέξεη λσξίηεξα, ε SQL ρεηξίδεηαη ηηο ζρέζεηο σο Πνιπζχλνια κε δηάηαμε, ζπλεπψο είλαη δπλαηφ λα ππάξρνπλ δηπιόηππα (duplicate tuples). Γηα λα εμαιείςνπκε ηα δηπιόηππα ζε κηα επεξψηεζε, θάλνπκε ρξήζε ηεο ιέμεο DISTINCT ζηνλ φξν SELECT. Παξάδεηγκα Employee: Q11: SELECT SALARY FROM EMPLOYEE Q11A: SELECT DISTINCT SALARY FROM EMPLOYEE Q11: Q12: 14-17

Χξήζε DISTINCT ζε Γλσξίζκαηα Σεκεηψζηε φηη πέξα απφ ην SELECT DISTINCT ππάξρεη θαη ην SELECT ALL, ην νπνίν ΔΕΝ αθαηξεί ηα δηπιφηππα. Σπγθεθξηκέλα, SELECT [DISTINCT ALL] <attribute-list> FROM <table-list> Τν SELECT ALL αληηπξνζσπεχεη νπζηαζηηθά ηελ εμνξηζκνύ ιεηηνπξγία ηνπ SELECT. Όπσο αλαθέξακε θαη ζε πξνεγνχκελεο δηαιέμεηο, ζηελ SQL πνιιά πξάγκαηα δειώλνληαη ξεηά γηαηί έηζη: Ξεθαζαξίδεη ε πξόζεζε ηνπ ζρεδηαζηή Απνθεύγνληαη πξνβιήκαηα ζπκβαηόηεηαο πνπ κπνξεί λα πξνθχςνπλ απφ ηελ κεηαθνξά ηεο πινπνίεζεο ζε άιιε βάζε δεδνκέλσλ. 14-18

Πξάμεηο Σπλφισλ ζε SQL H SQL:99 πινπνηεί αξθεηέο πξάμεηο ζπλόισλ ηηο νπνίεο νξίζακε ζηα πιαίζηα ηεο Σρεζηαθήο Άιγεβξαο. Σπγθεθξηκέλα, ππνζηεξίδνληαη νη αθφινπζεο πξάμεηο: Έλσζε: UNION [ALL] Τνκή: INTERSECT Γηαθνξά Σπλόισλ: EXCEPT Πξνυπνζέηνπλ φηη ηα ζχλνια είλαη i) ζπκβαηά-πξνο-ηνληύπν θαη ii) ε δηάηαμε ησλ γλσξηζκάησλ είλαη ε ίδηα (δελ ρξεηάδεηαη λα έρνπλ ην ίδην φλνκα) Γηαθνξά Πξάμεσλ Σπλόισλ από άιιεο πξάμεηο SQL: Τα απνηειέζκαηα είλαη ΣΥΝΟΛΑ φρη ΠΟΛΥΣΥΝΟΛΑ (ζπλεπψο δελ ππάξρνπλ δηπιφηππα ζηηο πξάμεηο απηέο) Θα δνχκε πσο παξάγνληαη Πνιπζχλνια ζε ιίγν. 14-19

Πξάμεηο Σπλφισλ ζε SQL Query 4: Δεκηνπξγήζηε κηα ιίζηα από projects ηα νπνία πεξηιακβάλνπλ έλα ππάιιειν κε ην επίζεην Smith, σο ππάιιειν ή* σο manager ηνπ ηκήκαηνο πνπ ειέγρεη ην ελ ιόγσ project. Smith 14-20

Πξάμεηο Σπλφισλ ζε SQL Smith Q4: (SELECT W.Pno FROM EMPLOYEE E, WORKS_ON W WHERE W.ESSN=E.SSN AND E.NAME='Smith') UNION (SELECT P.Pnumber FROM PROJECT P, DEPARTMENT D, ΔMPLOYEE E WHERE P.DNUM=P.DNUMBER AND D.MGRSSN=E.SSN AND E.LNAME='Smith') (SMITH_WOR KER_PROJS ) (SMITH_MGR _PROJS ) 14-21

Πξάμεηο Σπλφισλ ζε SQL Γηα λα επηζηξαθνχλ απνηειέζκαηα Πνιπζπλφισλ, αληί απνηειέζκαηα ζπλφισλ, κπνξεί λα γίλεη ρξήζε ησλ αθφινπζσλ εληνιψλ: UNION ALL, ππνζηεξίδεηαη θαη ζε TSQL Π.ρ., {(1,Pet), (2,Cat)} UNION ALL {(2,Cat),(1, Pet)} Δπηζηξέθεη: { (1,Pet), (2,Cat), (2,Cat), (1, Pet) } INTERSECT ALL (δελ πινπνηείηαη ζηηο πεξηζζόηεξεο DBMS) Π.ρ., {(1,Pet), (2,Cat)} INTERSECT ALL {(1, Pet)} Δπηζηξέθεη: { (1,Pet), (1, Pet) } EXCEPT ALL (δελ πινπνηείηαη ζηηο πεξηζζόηεξεο DBMS) Π.ρ., {(1,Pet), (2,Cat), (2,Cat)} EXCEPT ALL {(1, Pet)} Δπηζηξέθεη:{(2,Cat), (2,Cat) } Σπλεπψο, κε ηηο πην πάλσ πξάμεηο δελ δηαγξάθνληαη ηα δηπιφηππα απφ έλα απνηέιεζκα 14-22

Πξάμεηο Σπλφισλ ζε SQL Σεκεηψζηε φηη εάλ έλαο ηειεζηήο δελ πινπνηείηαη ζηελ SQL ηφηε κπνξεί λα πινπνηεζεί κε ρξήζε βαζηθώλ ηειεζηώλ (π.ρ., Σπκκεηξηθή Δηαθνξά, R S = (R S) (S R)) Σηελ ζπλέρεηα ζα δνχκε φηη ππάξρνπλ πνιιέο άιιεο πξάμεηο ζύγθξηζεο κε ζύλνια πνπ ρξεζηκνπνηνχληαη γηα δηαηχπσζε επεξσηήζεσλ ζε SQL ΙΝ, ΑΝΥ, ALL, CONTAINS, EXISTS, NOT EXISTS, θηι. 14-23