Lecture 15: SQL DML II

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

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

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

Lecture 14: SQL DML I

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

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

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

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

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

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

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

Lecture 16: SQL DML III

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

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

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

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

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

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

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

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

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

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

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

Constructors and Destructors in C++

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

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

Lecture 14: SQL DML I

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

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

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

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

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

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

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

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

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

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

ΑΕΠΠ 1o Επαναληπηικό Διαγώνιζμα

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

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

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

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

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

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

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

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

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

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

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

MySQL Εργαστήριο #5 Ενεργοποιητές (συνέχεια)

Αντισταθμιστική ανάλυση

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

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

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

Παλαιοσλαβική Γλώσσα. Ενότητα 11: Μορφολογία Τα Ονόματα/Αντωνυμίες. Αλεξάνδρα Ιωαννίδου. Τμήμα Σλαβικών Σπουδών

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

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

2.4 Βαζικές ζσνιζηώζες/ ενηολές ενός αλγορίθμοσ

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

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

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

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

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

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

Ππογπαμμαηιζμόρ Ι (ΗΥ120)

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

ΓΔΧΜΔΣΡΙΑ ΓΙΑ ΟΛΤΜΠΙΑΓΔ

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

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

ΔΝΓΔΙΚΤΙΚΔΣ ΛΥΣΔΙΣ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΔΥΘΥΝΣΗΣ Γ ΛΥΚΔΙΟΥ ΓΔΥΤΔΡΑ 27 ΜΑΪΟΥ 2013

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

Αιγόξηζκνη Δθρώξεζε, Δίζνδνο θαη Έμνδνο ηηκώλ Γνκή αθνινπζίαο. Δηζαγσγή ζηηο Αξρέο ηεο Δπηζηήκεο ησλ Η/Υ

Διζαγυγή ζηην πληποθοπική

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

ΑΡΥΔ ΟΙΚΟΝΟΜΙΚΗ ΘΔΩΡΙΑ ΛΤΔΙ ΓΙΑΓΩΝΙΜΑΣΟ ΚΔΦΑΛΑΙΟΤ 2

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

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

Οργάνωση και Δομή Παρουσιάσεων

1. (Epp 30) Γξάςηε ηελ άξλεζε ησλ παξαθάησ ινγηθώλ πξνηάζεσλ:

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

Κεθάλαιο 2

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

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

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )


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

3ο Δπαναληπηικό διαγώνιζμα ζηα Μαθημαηικά καηεύθσνζης ηης Γ Λσκείοσ Θέμα A Α1. Έζησ f κηα ζπλερήο ζπλάξηεζε ζ έλα δηάζηεκα

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

Transcript:

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

Πεξηερόκελν Γηάιεμεο Κεθάιαην 8.4-8.5.4: SQL DML I Σύγθξηζε Σπκβνινζεηξώλ κε LIKE Γηάηαμε Απνηειεζκάησλ κε ORDER-BY Σπγθξίζεηο κε NULLS (IS NULL), Εκθσιεπκέλεο Επεξσηήζεηο κε Σπζρέηηζε / Χσξίο Σπζρέηηζε (Correlated/Uncorrelated Nested Queries) Σύγθξηζε Σπλόισλ / Πνιύζπλόισλ ζε Επεξσηήζεηο SQL (EXIST, IN, op-all, op-any), Διαίρεση κε ρξήζε NOT EXISTS... EXCEPT 15-2

Σύγθξηζε Σπκβνινζεηξώλ κε LIKE Γηα ηελ ζύγθξηζε ζπκβνινζεηξώλ (substring matching) ζε SQL γίλεηαη ρξήζε ηνπ LIKE. WHERE Attribute [ NOT ] LIKE Pattern Attribute: Γλώξηζκα ή νπνηαδήπνηε έγθπξε έθθξαζε. Pattern: Σπκβνινζεηξά (ππό κνξθή «Καλνληθήο Έθθξαζεο») ε νπνία πξέπεη λα αλαδεηεζεί ζην attribute. To Pattern κπνξεί λα πεξηέρεη ραξαθηήξεο wildcard (next slide) Τν pattern κπνξεί λα είλαη κέρξη 8,000 bytes ζηελ TSQL Παξάδεηγκα SELECT FirstName, LastName, Phone FROM Person.Contact WHERE phone LIKE '415%' 15-3

Σύγθξηζε Σπκβνινζεηξώλ κε LIKE Wildcard character Πεξηγξαθή Παξάδεηγκα % Σπκβνινζεηξά 0 ή πεξηζζνηέξσλ ραξαθηήξσλ WHERE title LIKE '%computer%' finds all book titles with the word 'computer' anywhere in the book title. _ (underscore) Οπνηνζδήπνηε Φαξαθηήξαο WHERE name LIKE '_ean finds all four-letter first names that end with ean (Dean, Sean, and so on). [ ] Οπνηνζδήπνηε ραξαθηήξαο ζε εύξνο ([a-f]) ή ζύλνιν ([abcdef]). WHERE name LIKE '[C-P]arsen' finds author last names ending with arsen and starting with any single character between C and P, for example Carsen, Larsen, Karsen, and so on.. [^] Οπνηνζδήπνηε ραξαθηήξαο πνπ ΓΔΝ είλαη ζε επξνο ([^af]) ή ζύλνιν ([^abcdef]). WHERE name LIKE 'de[^l]%' all author last names starting with de and where the following letter is not l. 15-4

Σύγθξηζε Σπκβνινζεηξώλ κε LIKE Query 12: Βξεο ηνπο ππαιιήινπο πνπ γελλήζεθαλ θαηά ηελ δεθαεηία ηνπ 1950s. Θεσξήζηε όηη ε εκεξνκελία έρεη ηελ κνξθνπνίεζε: MMDDYYYY Σπλεπώο, ςάρλνπκε ην BDATE κε ηηκή 1 9 5_', όπνπ ην underscore ππνδειώλεη έλα απζαίξεην ραξαθηήξα. Q12: SELECT FNAME, LNAME FROM EMPLOYEE WHERE BDATE LIKE 1 9 5_ 15-5

Πξάμεηο ζε Απνηειέζκαηα ηεο Select Σηα πιαίζηα ηεο Σρεζηαθήο Άιγεβξαο είρακε δεη ηελ γεληθεπκέλε πξνβνιή ε νπνία επέηξεπε εθηέιεζε πξάμεσλ ζε απνηειέζκαηα ηεο SQL. π.ρ., Π Ταπηόηεηα, Μηζζόο-Απνθνπέο, 2000*Φξόληα_Υπεξεζίαο, 0.25*Μηζζόο (EMPLOYEE) Κάηη ηέηνην κπνξεί λα γίλεη θαη ζηα πιαίζηα ηεο SQL. Τέηνηεο πξάμεηο κπνξεί λα είλαη Σπλαξηήζεηο Σπκβνινζεηξώλ (Substring, θηι) Σπλαξηήζεηο Ηκεξνκεληώλ (Datediff, Getdate, θηι) Αξηζκεηηθέο πξάμεηο ('+', '-'. '*', and '/ ) Μαζεκαηηθέο θαη άιιεο Πξάμεηο (sqrt, PI, θηι.) Γείηε ην manual ηεο TSQL γηα παξαδείγκαηα 15-6

Πξάμεηο ζε Απνηειέζκαηα ηεο Select Παξαδείγκαηα Πξάμεσλ ζηελ SELECT 1. SELECT LastName,SUBSTRING(FirstName, 1, 1) AS Initial 2. SELECT FNAME, LNAME, 1.1*SALARY 3. SELECT SOUNDEX(Name) Επηζηξέθεη έλα θσδηθό 4 ραξαθηήξσλ πνπ κπνξεί λα αμηνπνηεζεί γηα λα απνηηκεζεί εάλ 2 strings αθνύγνληαη ην ίδην Π.ρ., SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe'); Επηζηξέθεη S530 S530 4. SELECT DIFFERENCE(Name, Surname) Βξίζθεη ηελ νκνηόηεηα δπν γλσξηζκάησλ βάζεη ηνπ SOUNDEX code. Λακβάλεη ππόςε κόλν ηα πξώηα 8000 bytes ησλ char, varchar ή text Παίξλεη ηηκέο από 0 (θακία νκνηόηεηα).. 4 (ίδηα) 15-7

Γηάηαμε Απνηειεζκάησλ κε ην ORDER BY Η όξνο ORDER BY ρξεζηκνπνηείηαη ζε κηα έθθξαζε SQL γηα λα ηαμηλνκνύληαη νη πιεηάδεο κηαο επεξώηεζεο βάζεη θάπνηνπ/σλ γλσξηζκάησλ πνπ δειώλνληαη. ORDER BY <attribute-list> [ASC DESC] Query 15: Τύπσζε ηα ζηνηρεία όισλ ησλ employees ηνπ department 5 ηαμηλνκεκέλα αλά επίζεην θαη κεηά αλά όλνκα Q15: SELECT * FROM EMPLOYEE E WHERE Δ.Dno=5 ORDER BY Δ.LNAME, E.FNAME Δπηζεκάλζεηο Γελ ρξεζηκνπνηείηαη γηα ntext, text, image, θηι. To ORDER BY κπνξεί λα αλαθέξεηαη ζε γλσξίζκαηα πνπ ΓΔΝ εκθαλίδνληαη ζην SELECT list Π.ρ., SELECT E.age FROM Emp E ORDER BY E.lname OK Γελ ηζρύεη κε SELECT DISTINCT ή GROUP BY ζε TSQL. Π.ρ., SELECT EPL342: DISTINCT Databases E.age - Demetris FROMZeinalipour Emp E ORDER (University BY of E.lname; Cyprus) WRONG default 15-8

NULLS ζε Δπεξσηήζεηο SQL Σε ηππηθέο γιώζζεο πξνγξακκαηηζκνύ, νη ινγηθέο εθθξάζεηο απνηηκνύληαη ζε TRUE ή FALSE. Σηελ SQL σζηόζν, ε ύπαξμε NULL ηηκώλ επηβάιεη ηελ ρξήζε ηεο Λνγηθήο Τξηώλ Τηκώλ (Three-value logic 3VL) Σπγθεθξηκέλα, κηα ινγηθή έθθξαζε κπνξεί λα απνηηκεζεί ζε TRUE, FALSE ή UNKNOWN Π.ρ., NULL AND TRUE απνηηκάηαη ζε UNKNOWN Η απνηίκεζε ινγηθώλ εθθξάζεσλ γίλεηαη κε βάζεη ησλ αθόινπζσλ πηλάθσλ αιεζείαο: 15-9

NULLS ζε Δπεξσηήζεηο SQL Παξάδεηγκα CREATE TABLE test ( id INTEGER PRIMARY KEY, age INTEGER CHECK (age < 0 AND age = 0 AND age> 0) ); Τη ζα γίλεη εάλ πξνζπαζήζνπκε λα εηζάγνπκε ην age=null; Θα απαγνξέςεη ηελ εηζαγσγή νπνηαζδήπνηε ηηκήο σζηόζν κπνξεί λα εηζαρζεί ην NULL Γηα λα απνθύγσ θαη ηα NULL πιήξσο: CREATE TABLE test (id INTEGER PRIMARY KEY, age INTEGER NOT NULL CHECK (.) ); 15-10

NULLS ζε Δπεξσηήζεηο SQL Μηα έθθξαζε ηνπ ηύπνπ WHERE Attribute=NULL, είλαη ΛΑΝΘΑΣΜΔΝΗ ζηελ SQL. Γηα ζύγθξηζε ελόο γλσξίζκαηνο κε NULL ζηελ SQL ρξεζηκνπνηείηαη ε έθθξαζε IS NULL ή IS NOT NULL. Δπηζεκάλζεηο ANSI: Γπν NULL ηηκέο είλαη αλεμάξηεηεο (δηαθνξεηηθέο) MSSQL: ΓΥΟ NULL ηηκέο είλαη νη ίδηεο (εμ νξηζκνύ). Δπνκέλσο ζε UNIQUE πεδίν δελ κπνξνύκε λα έρνπκε δπν εγγξαθέο κε ηηκή NULL. Απηό, επεηδή ππάξρεη ε εμ νξηζκνύ ξύζκηζε ANSI_NULLS OFF (ζηηο ξπζκίζεηο κηαο βάζεο) Δάλ ελεξγνπνηεζεί ε ελ ιόγσ κεηαβιεηή, κε SET ANSI_NULLS ON, ηόηε δπν δηαθξηηέο NULL ηηκέο ζα ζεσξνύληαη δηαθνξεηηθέο όπσο άιισζηε πξνβιέπεη θαη ην ANSI πξόηππν. 15-11

NULLS ζε Δπεξσηήζεηο SQL Relation CREATE TABLE test ( id int PRIMARY KEY, age INTEGER CHECK (age < 0 AND age = 0 AND age> 0 ) ); Query SELECT CASE FROM test; END WHEN age IS NULL THEN 'Null Result' -- when age is NULL WHEN age < 0 THEN Less than 0' WHEN age > 0 THEN Greater than 0' WHEN age = 0 THEN Equal 0' Δελ εθηεινύληαη πνηέ εάλ ε CHECK ζπλζήθε εθαξκόζηεθε από ηελ δεκηνπξγία ηεο ζρέζεο test. test: 1, NULL 2, NULL. Query Returns: 1, Null Result 2, Null Result. 15-12

NULLS ζε Δπεξσηήζεηο SQL Query 14: Βξεο ηα νλόκαηα όισλ ησλ ππαιιήισλ πνπ ΓΔΝ έρνπλ πξντζηάκελνπο (supervisors). Q14: SELECT FNAME, LNAME FROM EMPLOYEE WHERE SUPERSSN IS NULL Θπκεζείηε όηη εάλ ε ζπλζήθε κηαο ζπλέλσζεο παξνπζηάζεη NULL ηηκέο ηόηε απηέο νη πιεηάδεο ΓΔΝ πεξηιακβάλνληαη ζην απνηέιεζκα Π.ρ., (ssn=12345, dno=null) *(dno=1,dname= A ) Σην απνηέιεζκα πεξηιακβάλνληαη κόλν πιεηάδεο γηα ηηο νπνίεο ε ζπλζήθε ζπλέλσζεο απνηηκάηαη ζε TRUE To πην πάλσ ΓΔΝ ηζρύεη γηα Δμσηεξηθέο Σπλελώζεηο (LEFT/RIGHT/FULL OUTER JOIN) ηηο νπνίεο ζα δνύκε ζηελ εξρόκελε δηάιεμε. 15-13

Απαξηζκεηά Σύλνια ζε SQL (Enumerated Sets) Αληί γηα ινγηθή ζπλζήθε ζην WHERE ηεο SQL, κπνξνύκε λα θάλνπκε ηελ ζύγθξηζε-βάζεη-πξνζδηνξηζκέλνπζπλόινπ, π.ρ., Query 13: Αλάθηεζε ην SSN όισλ ησλ employees πνπ δνπιεύνπλ ζηα projects 1, 2, ή 3. Q13: SELECT DISTINCT ESSN FROM WORKS_ON WHERE PNO IN (1, 2, 3) Τν (1,2,3) απνηειεί έλα απαξηζκεηό (enumerated) ζύλνιν βάζεη ηνπ νπνίνπ ζα γίλεη ε ζύγθξηζε. Τν ΙΝ έρεη αληίζηνηρε ινγηθή κε ηνλ ηειεζηή ζπλόισλ Θα δνύκε θαη άιινπο όξνπο ζύγθξηζεο κε ζύλνια (ΑΝΥ, ALL, EXISTS, θηι.). 15-14

Δκθσιεπκέλεο Δπεξσηήζεηο (Nested Queries) Οη επεξσηήζεηο πνπ είδακε κέρξη ηώξα ήηαλ ζε έλα (1) SELECT-FROM-WHERE κπινθ. Σηελ SQL είλαη δπλαηό λα εκθσιεύνληαη ηα κπινθ θαηά αληίζηνηρν ηξόπν πνπ εκθσιεύνπκε ηηο επαλαιήςεηο ζε κηα γιώζζα πξνγξακκαηηζκνύ. Query1: Βξεο ην όλνκα θαη ηελ δηεύζπλζε όισλ ησλ ππαιιήισλ πνπ δνπιεύνπλ γηα ην 'Research' department. Q1: SELECT E.FNAME, E.LNAME, E.ADDRESS FROM EMPLOYEE E WHERE E.DNO IN ( SELECT D.DNUMBER FROM DEPARTMENT D WHERE D.DNAME='Research') Outer Query Inner Query 15-15

Δκθσιεπκέλεο Δπεξσηήζεηο (Nested Queries) ΚΑΘΔ Δκθσιεπκέλε Δπεξώηεζε κπνξεί λα αλαπαξαζηαζεί από Δπεξώηεζε 1-κπινθ (ζπλδπάδνληαο ηα ελδερνκέλσο κε πξάμεηο ζπλόισλ (UNION, EXCEPT, θηι) Θα δνύκε παξάδεηγκα ζε ιίγν Η Δκθώιεπζε κπνξεί λα γίλεη γηα όζα επίπεδα θάησ επηζπκνύκε (ζηελ TSQL κέρξη 32). Ωζηόζν ε βάζε δεδνκέλσλ δπζθνιεύεηαη λα βειηηζηνπνηήζεη ηέηνηεο επεξσηήζεηο, γηα απηό ε εκθώιεπζε πξέπεη λα ρξεζηκνπνηείηαη κε πξνζνρή. Γεληθά είλαη θαιή πξαθηηθή λα εθθξάδνπκε ηηο επεξσηήζεηο απιά ρσξίο βαζηέο εκθσιεύζεηο 15-16

Δκθσιεπκέλεο Δπεξσηήζεηο θαη Δκβέιεηα Γλσξηζκάησλ SELECT E.FNAME, E.LNAME, E.ADDRESS FROM. EMPLOYEE E WHERE E.DNO IN ( SELECT D.DNUMBER FROM DEPARTMENT D Γλώξηζκα Σύγθξηζεο WHERE D.DNAME='Research') Δκβέιεηα Γλσξηζκάησλ Φσξίο Πξόζεκα: Σεκεηώζηε όηη εάλ δελ θάλακε ρξήζε ησλ πξνζεκάησλ D, E ηόηε ε αλαθνξά ζε θάπνην γλώξηζκα ζα αλαθεξόηαλ ζην Inner Loop. Γηα ηελ εκβέιεηα ησλ κεηαβιεηώλ (scope), ρξεζηκνπνηνύληαη νπζηαζηηθά νη ίδηνη θαλόλεο πνπ ρξεζηκνπνηνύληαη ζηηο γιώζζεο πξνγξακκαηηζκνύ. Τν Γνώρισμα Σύγκρισης κπνξεί λα είλαη δηαηεηαγκέλε λ- άδα π.ρ., (E.DNO, E.ESSN) εθόζνλ ην INNER Block είλαη ζπκβαηό-σο-πξνο-ηνλ-ηύπν κε ην γλώξηζκα ζύγθξηζεο. 15-17

Δκθσιεπκέλεο Δπεξσηήζεηο (Φξήζε op-any, op-all) Οη εληνιέο op-any, op-all, όπνπ op είλαη έλαο ηειεζηήο ζύγθξηζεο (>, <, >=, <=, <>), ρξεζηκνπνηνύληαη γηα λα επεθηείλνπλ ηελ εθθξαζηηθή δύλακε ηεο SQL. Πξνϋπ: Σπκβαηόηεηα πξνο-ηύπν κεηαμύ Γλσξίζκαηνο-Inner Block Παξαδείγκαηα ΙΝ >= ALL IN (9) (εθόζνλ max=9) > ΑΝΥ IN (2, 4, 5, 6, 8, 9) (εθόζνλ min=1) <= ALL ΙΝ (1) (εθόζνλ min=1) 1, 2, 4, 5, 6, 8, 9 < ΑΝΥ IN (8, 6, 5, 4, 2, 1) (εθόζνλ max:9) Παξάδεηγκα ζε SQL: Βξεο ηνπο ππαιιήινπο πνπ έρνπλ ςειόηεξν κηζζό από θάζε ππάιιειν ζην ηκήκα 5 SELECT E.FNAME, E.LNAME Πξνζέμηε όηη κπνξνύκε λα FROM EMPLOYEE E ρξεζηκνπνηνύκε δπν θνξέο WHERE E.Salary > ALL ( ηελ δήισζε E (overriding). Σηνλ inner βξνρν SELECT E.Salary ρξεζηκνπνηείηαη ην inner-e FROM EMPLOYEE E ζην outer βξόρν ην outer-e EPL342: WHERE Databases E.Dno=5) - Demetris Zeinalipour (University of Cyprus) 15-18

Δκθσιεπκέλεο Δπεξσηήζεηο (Φξήζε op-any, op-all) Παξάδεηγκα ζε SQL: Βξεο ηνπο ππάιιεινπο πνπ έρνπλ ηνλ ςειόηεξν κηζζό από ην ηκήκα 5 κε ρξήζε ησλ ηειεζηώλ op-any, op-all SELECT E.FNAME, E.LNAME FROM WHERE EMPLOYEE E E.Dno=5 AND E.Salary >= ALL ( SELECT E.Salary FROM EMPLOYEE E WHERE E.Dno=5) Αξγόηεξα ζα δνύκε ηελ ίδηα Δπεξώηεζε κε ζπλαξζξνηζηηθή ζπλάξηεζε. SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE E.Dno=5 AND E.Salary = ( SELECT MAX(E.Salary) FROM EMPLOYEE E WHERE E.Dno=5) Δάλ INNER=(1000, 3000, 2000, 3000) ηόηε ην >=ALL query επηζηξέθεη 2 employees Δάλ ην query ήηαλ > ALL κε βάζεη ην πην πάλσ INNER ζα επέζηξεθε 0 employees Δάλ ην query ήηαλ = ALL κε βάζεη ην πην πάλσ INNER ζα επέζηξεθε 0 employees 15-19

Σπζρεηηδόκελεο Δκθσιεπκέλεο Δπεξσηήζεηο (Correlated Nested Queries) Όηαλ κηα ζπλζήθε ζην WHERE ηνπ Outer-block αλαθέξεηαη ζε θάπνην γλώξηζκα ηνπ Inner-block ηόηε νη δπν επεξσηήζεηο ιέγεηαη όηη είλαη Σπζρεηηδόκελεο (Correlated) Σεκείσζε: Η πξνεγνύκελε επεξώηεζε δελ ήηαλ ζπζρεηηδόκελε Query 12: Βξεο ην όλνκα θάζε employee πνπ έρεη έλα dependent κε ην ίδην όλνκα κε ηνλ employee. Q12: SELECT E.FNAME, E.LNAME FROM EMPLOYEE E Outer block WHERE E.SSN IN (SELECT D.ESSN FROM DEPENDENT D WHERE D.ESSN=E.SSN AND E.FNAME=D.DEPENDENT_NAME) Inner block 15-20

Δκθσιεπκέλεο Δπεξσηήζεηο vs. Δπεξσηήζεηο 1 Μπινθ ΚΑΘΔ Δκθσιεπκέλε Δπεξώηεζε κπνξεί λα αλαπαξαζηαζεί από Δπεξώηεζε 1-κπινθ (ζπλδπάδνληαο ηα ελδερ. κε πξάμεηο ζπλόισλ (UNION, EXCEPT, θηι) Κάπνηε ε εκθώιεπζε είλαη πην βνιηθή (δελ ηζρύεη πην θάησ) Αο δνύκε πσο αλαπαξηζηάηαη ε πξνεγνύκελε επεξώηεζε Query 12: Βξεο ην όλνκα θάζε employee πνπ έρεη έλα dependent κε ην ίδην όλνκα κε ηνλ employee. Φσξίο Δκθώιεπζε Q12A: SELECT E.FNAME, E.LNAME FROM EMPLOYEE E, DEPENDENT D WHERE E.SSN=D.ESSN AND E.FNAME=D.DEPENDENT_NAME Με Δκθώιεπζε Q12: SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE E.SSN IN (SELECT D.ESSN FROM DEPENDENT D WHERE D.ESSN=E.SSN AND E.FNAME = D.DEPENDENT_NAME) 15-21

Δκθσιεπκέλεο Δπεξσηήζεηο θαη ε Δληνιή EXISTS Η εληνιή EXISTS επηζηξέθεη TRUE εάλ ην απνηέιεζκα κηαο εκθσιεπκέλεο επεξώηεζεο ππάξρεη (ΓΔΝ είλαη θελό) WHERE [ΝΟΤ] EXISTS subquery Μηα επεξώηεζε κε EXISTS κπνξεί λα δηαηππώλεηαη θαη κε άιινπο ηξόπνπο (π.ρ., κε IN, Δλόο-block, θηι). Query 12b: Βξεο ην όλνκα θάζε employee πνπ έρεη έλα dependent κε ην ίδην όλνκα κε ηνλ employee. Q12B: SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE EXISTS (SELECT * FROM DEPENDENT D WHERE E.SSN=D.ESSN AND E.NAME = D.DEPENDENT_NAME) Τν EXISTS έρεη αληίζηνηρε ινγηθή κε ηνλ ππαξμηαθό πνζνδείθηε x: P(x) πνπ EPL342: ρξεζηκνπνηείηαη Databases - Demetris ζηνλ Zeinalipour νξηζκό (University ζπλόισλ of { Cyprus) x } 15-22

Δκθσιεπκέλεο Δπεξσηήζεηο θαη ε Δληνιή ΝΟΤ EXISTS Query 6 (Παξάδεηγκα NOT EXISTS): Βξεο ηα νλόκαηα ησλ employees πνπ ΓΔΝ έρνπλ dependents. Q6: SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE NOT EXISTS Δπηζεκάλζεηο: (SELECT * FROM DEPENDENT D WHERE E.SSN=D.ESSN) Πξνζέμηε όηη ε EXISTS αλαθέξεηαη ζπλήζσο ζε ζπζρεηηδόκελεο εκθσιεπκέλεο επεξσηήζεηο. 15-23 Δλαιιαθηηθά EPL342: ε Databases ζπλζήθε - Demetris απνηίκεζεο Zeinalipour (University ζα ήηαλ of Cyprus) θάηη ζηαζεξό.

Δκθσιεπκέλεο Δπεξσηήζεηο θαη ε Δληνιή EXISTS Query 6: Βξεο ηo SSN ησλ employees ρσξίο dependents. Q6a: Με 1-block Queries θαη Except (SELECT E.SSN FROM EMPLOYEE E) // ALL EXCEPT (SELECT DISTINCT D.ESSN FROM Dependent D) // WITH DEPENDENT Q6b: Με Φξήζε ηνπ IN SELECT E.SSN FROM EMPLOYEE E WHERE E.SSN NOT IN ( SELECT DISTINCT D.ESSN FROM DEPENDENT D) Q6c: Με Φξήζε EXISTS SELECT E.SSN FROM EMPLOYEE E WHERE NOT EXISTS ( SELECT * FROM DEPENDENT D WHERE D.ESSN=E.SSN) Τν DISTINCT (πάλσ ζε nonkey) κεηώλεη ηνλ αξηζκό ησλ ελδηάκεζσλ απνηειεζκάησλ Μπνξεί λα δηαηππσζεί ην Query ζε 1 block ρσξίο πξάμε ζπλόισλ; 15-24

Γηαίξεζε ζε SQL Παξόιν πνπ νη αξρηθέο εθδόζεηο ηεο SQL όξηδαλ εμεηδηθεπκέλε εληνιή δηαίξεζεο, ηελ CONTAINS, κηα ηέηνηα δπλαηόηεηα ΓΔΝ ππάξρεη ζηα λεόηεξα πξόηππα θαη πινπνηήζεηο: Δλδερόκελνη Λόγνη Δγθαηάιεηςεο ηνπ CONTAINS: Γπζθνιία Απνδνηηθήο Υινπνίεζεο Μεησκέλε Φξήζε ηεο ελ ιόγσ εληνιήο Σηα πιαίζηα απηνύ ηνπ καζήκαηνο ζεσξήζηε όηη ΓΔΝ ππάξρεη ε εληνιή δηαίξεζεο CONTAINS Γηα λα δηαηξέζνπκε δπν ζρέζεηο ζα ρξεζηκνπνηήζνπκε ηελ ινγηθή ηνπ NOT EXISTS. EXCEPT πνπ αθνινπζεί. Σεκεηώζηε όηη ζε TSQL, ε εληνιή CONTAINS ρξεζηκνπνηείηαη γηα θάηη δηαθνξεηηθό ηελ αλαδήηεζε ζε πεδία θεηκέλνπ (όπσο ε LIKE) 15-25

Γηαίξεζε ζε SQL (Τν CONTAINS ζηελ TSQL) H TSQL-CONTAINS ρξεζηκνπνηείηαη γηα Αλαδήηεζε Κεηκέλνπ ζε Γλσξίζκαηα ηεο Βάζεο (Freetext Search) Σπγθεθξηκέλα ππνζηεξίδεηαη ε Δπαθξηβήο Αλαδήηεζε (Exact Search) θαη ε Πξνζεγγηζηηθή Αλαδήηεζε (Proximity Search). Π.ρ., βξεο ζην πεδίν Description ηνπ πίλαθα Products, εάλ πεξηιακβάλεηαη ε ιέμε bicycle : SELECT Description FROM Products WHERE CONTAINS(Description, 'bicycle') ή WHERE CONTAINS(Description, 'bicycle NEAR performance'); Γηα επαθξηβή αλαδήηεζε είλαη αληίζηνηρν κε ην WHERE Description LIKE '%bicycle%', αιιά ην CONTAINS έρεη γεληθά κεγαιύηεξε εθθξαζηηθή δύλακε Μειεηήζηε όιεο ηηο δπλαηόηεηεο απηήο ηεο εληνιήο: http://msdn.microsoft.com/en-us/library/ms187787.aspx 15-26

Παξάδεηγκα Γηαίξεζεο ζε SQL Query 3: Βξεο ην όλνκα θάζε employee πνπ δνπιεύεη ζε ΚΑΘΔ project πνπ ειέγρεηαη από ην department number 5. 5 Q3: SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE NOT EXISTS (( (SELECT P.Pnumber FROM PROJECT P WHERE P.Dnum=5) EXCEPT (SELECT W.PNO FROM WORKS_ON W WHERE E.SSN=W.ESSN) ALL Projects by Department 5 ALL Projects of Current Employee (outer block) 15-27