+ All Categories
Home > Documents > ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 ·...

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

Date post: 15-May-2020
Category:
Upload: others
View: 15 times
Download: 0 times
Share this document with a friend
32
Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Παύλος Εφραιμίδης
Transcript
Page 1: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1

Βάσεις ΔεδομένωνΗ γλώσσα SQL

(Structured Query Language)

Παύλος Εφραιμίδης

Page 2: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 2

SQL - Structured Query Language (1)• Ένας από τους βασικούς λόγους της απόλυτηςεπικράτησης των Σχεσιακών ΒΔ

• Εξασφαλίζει μεταφερσιμότητα μεταξύ τωνΣχεσιακών ΣΔΣΒΔ

• Υπάρχουν βέβαια διαφοροποιήσεις μεταξύ τωνυλοποιήσεων της SQL στα εμπορικά ΣΔΣΒΔ, όμως με λίγο προσοχή αυτά ξεπερνιούνται

Page 3: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 3

SQL - Structured Query Language (2)• Επίσης μπορούμε να γράφουμε SQL εντολές

(προγράμματα) και αυτές να εκτελούνται σεπολλές και διαφορετικές μεταξύ τουςπλατφόρμες

• Η γλώσσα SQL σχετίζεται με τη σχεσιακήάλγεβρα

• Είδαμε στο προηγούμενο κεφάλαιο– το Σχεσιακό Μοντέλο Δεδομένων, και– τη Σχεσιακή Άλγεβρα.

Page 4: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 4

Εισαγωγή στην SQL (1)• Οι πράξεις της Σχεσιακής Άλγεβρας παίζουνσημαντικό ρόλο για την κατανόηση τωνδιαφόρων αιτημάτων προς το Σχεσιακό ΣΔΒΔαλλά επιπλέον και για την επεξεργασία και τηβελτιστοποίηση ερωτήσεων σε ένα ΣχεσιακόΣΔΒΔ

• ΤΑ ΚΑΛΑ ΝΕΑ είναι ότι οι διατυπώσειςσχεσιακών πράξεων στην SQL είναι πιο απλήυπόθεση από ότι στην σχεσιακή άλγεβρα

Page 5: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 5

Εισαγωγή στην SQL (2)• Στη σχεσιακή άλγεβρα πρέπει να ορίσουμε ακριβώς μεποια σειρά θα εκτελεστούν οι πράξεις μιας σύνθετηςέκφρασης, ενώ στην SQL μπορούμε να περιγράψουμεσε πιο ψηλό επίπεδο την ερώτηση/πράξη καιαναλαμβάνει το ΣΔΒΔ να την εκτέλεση με αποδοτικότρόπο

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

Page 6: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 6

Ιστορικά Στοιχεία• SEQUEL: H SQL σχεδιάστηκε από την IBM και αρχικάονομαζόταν SEQUEL (Structured English Query Language)

• SQL: Σήμερα το SQL σημαίνει Structured Query Language και αποτελεί την κοινή γλώσσα όλως τωνΣχεσιακών ΣΔΒΔ

• Προφορά: Τα αρχικά SQL διαβάζονται διεθνώςSEQUEL ... και στην Ελλάδα S-Q-L.

• Υλοποιήσεις της SQL– SQL-1 SQL-86– SQL-2 SQL-92– SQL-3 SQL-99

Page 7: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 7

Δυνατότητες της SQL• Η SQL είναι μια πλήρης γλώσσα βάσεων δεδομένων πουπεριλαμβάνει εντολές για– ορισμό δεδομένων (ΓΟΔ – DDL Data Definition Language)– ενημέρωση (ΓΧΔ – DML Data Manipulation Language)– ερωτήσεις (ΓΧΔ – Query Language)

• Επιπλέον υποστηρίζει τον– ορισμό όψεων (views)– προσδιορισμό ασφάλειας, δικαιωμάτων κτλ.– ορισμό περιορισμών ακεραιότητας (integrity constraints)– έλεγχο δοσοληψιών (transactions)

• Επίσης σε πολλές γλώσσες προγραμματισμού γενικού σκοπούεπιτρέπεται η εμφύτευση εντολών SQL, όπως είναι η Java, C/C++, C#, Pascal/Delphi, Visual Basic, php, ...

Page 8: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 8

SQL - ΟΡΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ• Ορολογία

– πίνακας (table) - σχέση– γραμμή (row) - πλειάδα– στήλη (column) - γνώρισμα

• Επιπλέον έννοιες:– ΣΧΗΜΑ (schema): Ομαδοποιούνται πίνακες και άλλαδομικά στοιχεία που αναφέρονται στην ίδια βάση δεδομένων, όπως όψεις, δικαιώματα, ...

– Κάθε σχήμα έχει ένα όνομα και κάποια ταυτότηταεξουσιοδότησης.

• Στην ORACLE: Για κάθε λογαριασμό ομάδας ορίζεταιαυτόματα και ένα δικό της σχήμα– Κάθε ομάδα δουλεύει σε ένα δικό της σχήμα, ώστε ναδουλεύει σε μια δικιά της ΒΔ.

Page 9: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 9

Κατάλογος (Catalog)• Το Σύστημα Διαχείρισης Βάσεων Δεδομένωνένα σύνολο από μηχανισμούς και δεδομένα γιατη διαχείριση των βάσεων δεδομένων

• Μία κεντρική δομή είναι ο ΚΑΤΑΛΟΓΟΣ(catalog) που περιλαμβάνει μια συλλογήσχημάτων

• Αφορούν τον διαχειριστή της βάσης δεδομένων(DBA – Database Administrator)

Page 10: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 10

Αλλαγή Κωδικού (Password)

• Εντολή SQL για την αλλαγή password (στηνoracle):

ALTER USER team20IDENTIFIED BY dj1c2a;

Page 11: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 11

Βασικές εντολές της SQL• Διαχείριση Σχήματος ΒΔ

– CREATE– ALTER– DROP

• Διαχείριση Δεδομένων– INSERT– UPDATE– DELETE

• Ερωτήματα (Queries)– SELECT

Page 12: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 12

DDL: CREATE TABLECREATE TABLE STUDENTS (NAME VARCHAR(15)

);

Page 13: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 13

DDL: DROP TABLECREATE TABLE STUDENTS (NAME VARCHAR(15)

);

DROP TABLE STUDENTS;DROP TABLE STUDENTS CASCADE CONSTRAINTS;

Page 14: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 14

DDL: ALTER TABLECREATE TABLE STUDENTS (

ID INTEGER,NAME VARCHAR(15)

);ALTER TABLE STUDENTSADD AGE INTEGER;ALTER TABLE STUDENTS DROP COLUMN AGE;

Page 15: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 15

CONSTRAINTSCREATE TABLE STUDENTS (

ID INTEGER PRIMARY KEY,NAME VARCHAR(15) NOT NULL

);

ALTER TABLE ADD AGE;DROP TABLE STUDENTS CASCADE CONSTRAINTS;

Page 16: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 16

Δημιουργία/Διαγραφή ΠίνακαCREATE TABLE STUDENTS (NAME VARCHAR(15)

);

DROP TABLE STUDENTS;DROP TABLE STUDENTS CASCADE CONSTRAINTS;

Page 17: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 17

Περιορισμοί• Οι περιορισμοί του σχεσιακού μοντέλουδεδομένων::– Πεδίο Ορισμού– Κλειδί– Ακεραιότητα Οντοτήτων– Αναφορική Ακεραιτότητα

Page 18: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 18

Περιορισμοί και SQL

• Πεδίο Ορισμού: Ο τύπος δεδομένων τουπεδίου/στήλης του πίνακα

• Κλειδί:– Primary Key– Unique

• Ακεραιότητα Οντοτήτων• Αναφορική Ακεραιότητα:

– ALTER TABLE ergazomenos ADD CONSTRAINT FK_PROIST FOREIGN KEY(proistamenos) References ergazomenos(ar_tayt);

Page 19: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 19

Ο πίνακας και το όνομα τουπεδίου/στήλης στο οποίοαναφέρεται το τοπικό πεδίο

Αναφορική Ακεραιότητα στην SQL

ALTER TABLE ergazomenosADD CONSTRAINT FK_PROIST FOREIGN KEY(proistamenos) REFERENCESergazomenos(ar_tayt);

Παράδειγμα προσθήκης ενός περιορισμού αναφορικήςακεραιότητας σε έναν πίνακα:

Το όνοματου πίνακα

Ένα όνομαγια τον

περιορισμό

Το όνομα τουπεδίου/στήλης

πίνακας

Page 20: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 20

ΠίνακεςCREATE TABLE ΤΕΑΜ00.STUDENTS (

NAME VARCHAR(15));CREATE TABLE ΤΕΑΜ05.STUDENTS (

NAME VARCHAR(15));

Για να δει ένας χρήστης όλους τους πίνακές του:SELECT TABLE_NAMEFROM USER_TABLES;

Για να δει ο DBA όλους τους πίνακες ενός χρήστη:SELECT * FROM DBA_TABLESWHERE OWNER = ‘TEAM04';

Page 21: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 21

DML: Insert (1)• Στην απλή της μορφή, χρησιμοποιείται για τηνεισαγωγή μιας η περισσοτέρων πλειάδων(γραμμών/εγγραφών) σε μια σχέση/πίνακα

• Η σειρά των γνωρισμάτων πρέπει να είναι ίδια με τησειρά των γνωρισμάτων/πεδίων/στηλών του πίνακα

• Παράδειγμα:

INSERT INTO EMPLOYEEVALUES ('Richard','K','Marini', '653298653', '30-DEC-52','98 Oak Forest,Katy,TX', 'M', 37000,'987654321', 4 )

Page 22: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 22

DML: Insert (2)• Εναλλακτικά η Insert μπορεί να χρησιμοποιηθείδηλώνοντας ρητά τα γνωρίσματα τα οποίααντιστοιχούν στις τιμές της νέας πλειάδας:

• Γνωρίσματα με τιμή NULL μπορούν να παραλειφθούν• Παράδειγμα: Εισαγωγή πλειάδας για έναν νέοεργαζόμενο EMPLOYEE για τον οποίο γνωρίζουμεμόνο το μικρό όνομα, το επίθετο και τον ΑΤ.

INSERT INTO EMPLOYEE (FNAME, LNAME, SSN) VALUES ('Richard', 'Marini', '653298653');

Page 23: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 23

DML: DELETE • Διαγράφει πλειάδες από μια σχέση• Με χρήση του όρου WHERE μπορούμε να προσδιορίζουμε τιςπλειάδες που θα διαγραφούν

• Μια εντολή delete διαγράφει πλειάδες από έναν πίνακα (εκτόςεάν υπάρχουν περιορισμοί αναφορικής ακεραιότητας και η δοθείσυνθήκη CASCADE)

• Το πλήθος των γραμμών που διαγράφει η εντολή delete εξαρτάται από τη συνθήκη where

• Εάν δεν οριστεί συνθήκη WHERE-clause τότε η εντολήδιαγράφει όλες τις γραμμές του πίνακα– Σε αυτή την περίπτωση ο πίνακας θα δεν θα περιέχει καμία γραμμή μετάτην εντολή delete (ο πίνακας όμως δεν θα έχει διαγραφεί !)

• Προσοχή στους περιορισμούς αναφορικής ακεραιότητας

Page 24: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 24

DML: DELETE (2) • Παραδείγματα:

DELETE FROM EMPLOYEEWHERE LNAME='Brown’;

DELETE FROM EMPLOYEEWHERE SSN='123456789’;

DELETE FROM EMPLOYEEWHERE DNO IN

(SELECT DNUMBERFROM DEPARTMENTWHEREDNAME='Research');

DELETE FROM EMPLOYEE;

Page 25: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 25

DML: UPDATE • Μεταβολή των τιμών των πεδίων σε μία ήπερισσότερες γραμμές του πίνακα

• where: Μια συνθήκη where καθορίζει ποιεςγραμμές θα τροποποιηθούν

• set: Το τμήμα SET ορίζει ποια γνωρίσματα θαενημερωθούν και ποιες θα είναι οι νέες τιμέςτους

• Κάθε εντολή ενημερώνει πλειάδες που ανήκουνστην ίδια σχέση

• Η αναφορική ακεραιότητα θα πρέπει να τηρηθεί

Page 26: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 26

DML: UPDATE (2)• Παράδειγμα: Αλλαγή του πεδίου location καιτου υπεύθυνου τμήματος του project με αριθμό:

UPDATE PROJECTSET PLOCATION = Bellaire', DNUM = 5WHERE PNUMBER=10;

Page 27: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 27

DML: UPDATE (3)• Παράδειγμα: Αύξηση 10% σε όλους τους εργαζόμενους τουτμήματος 'Research‘:

U6: UPDATE EMPLOYEESET SALARY = SALARY *1.1WHERE DNO IN (SELECT DNUMBER

FROM DEPARTMENTWHERE DNAME='Research')

• Παρατήρηση: Η νέα τιμή του πεδίου μισθός εξαρτάται από τηναρχική τιμή του πεδίου

• Η αναφορά στο πεδίο SALARY– δεξιά από το “ = “ αναφέρεται στην αρχική τιμή– αριστερά από το “ = “ αναφέρεται στην νέα τιμή

Page 28: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 28

DML: UPDATE (4)• Παράδειγμα: Αύξηση 10% σε όλους τους εργαζόμενους όμωςτο ποσοστό αύξησης εξαρτάται από το μισθό του κάθεεργαζόμενου:

update ergazomenosset misthos = case when misthos < 1000 then 1.1 * misthoswhen misthos < 2000 then 1.05 * misthoselse misthos * 1.02

end;

Ερώτηση κρίσης: Μπορεί η εντολή να αντικατασταθεί με τρίααπλά updates; Πρέπει να προσέξουμε κάτι;

Page 29: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 29

Ερωτήματα SQL (Queries)• Απλά ερωτήματα SQL• Σύνθετα SQL Queries• Εμφωλιασμένα SQL Queries

Page 30: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 30

Απλά SQL Queries• Τα βασικά ερωτήματα SQL αντιστοιχούν στις πράξεις SELECT,

PROJECT, και JOIN της σχεσιακής άλγεβρας• Ένα απλό παράδειγμα ερωτήματος σε έναν πίνακα:• Query 0: Ανάκτηση της ημερομηνίας γέννησης και τηςδιεύθυνσης του εργαζόμενου με όνομα: 'John B. Smith'.

Q0: SELECT BDATE, ADDRESSFROM EMPLOYEEWHERE FNAME='John' AND MINIT='B’

AND LNAME='Smith’– Μοιάζει με το ζευγάρι των πράξεων SELECT-PROJECT της σχεσιακήςάλγεβρας. Το SELECT καθορίζει τα γνωρίσματα για το projection και τοWHERE καθορίζει τη συνθήκη για το selection

– Σημείωση: Στην Σ:Λ το αποτέλεσμα επιτρέπεται να έχει πολλαπλέςπλειάδες

Page 31: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 31

Απλά SQL Queries (2)• Query 1: Ανάκτηση του ονόματος και της διεύθυνσης όλων τωνεργαζομένων του τμήματος 'Research‘:

SELECT FNAME, LNAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DNAME='Research'

AND DNUMBER=DNO;

– Μοιάζει με τις πράξεις SELECT-PROJECT-JOIN τηςσχεσιακής άλγεβρας

– (DNAME='Research') είναι η συνθήκη επιλογής (selection condition)

– (DNUMBER=DNO) είναι η συνθήκη join condition

Page 32: ΒάσειςΔεδομένων Ηγλώσσα SQL (Structured Query Language) · 2014-09-28 · ΒάσειςΔεδομένων ΗΓλώσσαSQL - ΜέροςΠρώτο 3 SQL - Structured

Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 32

Απλά SQL Queries (3)• Query 2: Για κάθε έργο με τοποθεσία in 'Stafford', να βρεθούν οκωδικός του έργου, το υπεύθυνο τμήμα, το όνομα, διεύθυνση, ημερ΄γέννησης του διευθυντή του υπεύθυνου τμήματος.

SELECT PNUMBER, DNUM, LNAME, BDATE,ADDRESSFROM PROJECT, DEPARTMENT, EMPLOYEEWHERE DNUM=DNUMBER AND MGRSSN=SSN AND PLOCATION=‘Stafford’;

• Στο ερώτημα υπάρχουν 2 συνθήκες συνένωσης– Η συνθήκη συνένωσης DNUM=DNUMBER σχετίζει το έργομε το υπεύθυνο τμήμα

– Η συνθήκη συνένωσης MGRSSN=SSN σχετίζει το υπεύθυνοτμήμα με τον εργαζόμενο που διευθύνει το τμήμα


Recommended