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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 14: SQL DML I

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

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

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

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

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

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

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

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

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

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

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

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

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

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 342 Βάσεις εδοµένων

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

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

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

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

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

Η SQL ως γλώσσα τροποποίησης Δεδομένων

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

Κεφάλαιο 6. Περιορισμοί Ακεραιότητας Βάσεων Δεδομένων

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

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

Το Σχεσιακό μοντέλο και η γλώσσα SQL

Κεφάλαιο 8. SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις

10 η Διάλεξη Python Βάσεις δεδομένων στη python

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

Σχεδίαση Βάσεων Δεδομένων

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

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

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

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

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

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

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

Σχεδίαση Βάσεων Δεδομένων

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

DELETE, UPDATE, INSERT

Ανάκτηση Δεδομένων (Information Retrieval)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

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

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

Transcript:

Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα μεταξύ των Σχεσιακών ΣΔΣΒΔ Υπάρχουν βέβαια διαφοροποιήσεις μεταξύ των υλοποιήσεων της SQL σταεμπορικάσδσβδ, όμως με λίγο προσοχή αυτά ξεπερνιούνται Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 2 SQL - Structured Query Language 2) Επίσης μπορούμε να γράφουμε SQL εντολές προγράμματα) και αυτές να εκτελούνται σε πολλές και διαφορετικές μεταξύ τους πλατφόρμες ΗγλώσσαSQL σχετίζεται με τη σχεσιακή άλγεβρα Είδαμε στο προηγούμενο κεφάλαιο το Σχεσιακό Μοντέλο Δεδομένων, και τη Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 3 Εισαγωγή στην SQL 1) Οι πράξεις της Σχεσιακής Άλγεβρας παίζουν σημαντικό ρόλο για την κατανόηση των διαφόρων αιτημάτων προς το Σχεσιακό ΣΔΒΔ αλλά επιπλέον και για την επεξεργασία και τη βελτιστοποίηση ερωτήσεων σε ένα Σχεσιακό ΣΔΒΔ ΤΑ ΚΑΛΑ ΝΕΑ είναι ότι οι διατυπώσεις σχεσιακών πράξεων στην SQL είναι πιο απλή υπόθεσηαπόότιστηνσχεσιακήάλγεβρα Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 4 Εισαγωγή στην SQL 2) Στη σχεσιακή άλγεβρα πρέπει να ορίσουμε ακριβώς με ποια σειρά θα εκτελεστούν οι πράξεις μιας σύνθετης έκφρασης, ενώ στην SQL μπορούμε να περιγράψουμε σε πιο ψηλό επίπεδο την ερώτηση/πράξη και αναλαμβάνει το ΣΔΒΔ να την εκτέλεση με αποδοτικό τρόπο Στην SQL δηλώνουμε απλά ΤΙ θέλουμε να κάνουμε. Η SQL βασίζεται στο ΣΧΕΣΙΑΚΟ ΛΟΓΙΣΜΟ ΠΛΕΙΑΔΩΝ, μια άλλη τυπική γλώσσα που ίσως δούμε εν συντομία σε επόμενο μάθημα Ιστορικά Στοιχεία 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 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 5 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 6 1

Δυνατότητες της 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,... Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 7 SQL - ΟΡΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ Ορολογία πίνακας table) - σχέση γραμμή row) - πλειάδα στήλη column) - γνώρισμα Επιπλέον έννοιες: ΣΧΗΜΑ schema): Ομαδοποιούνται πίνακες και άλλα δομικά στοιχεία που αναφέρονται στην ίδια βάση δεδομένων, όπως όψεις, δικαιώματα,... Κάθε σχήμα έχει ένα όνομα και κάποια ταυτότητα εξουσιοδότησης. Στην ORACLE: Για κάθε λογαριασμό ομάδας ορίζεται αυτόματα και ένα δικό της σχήμα Κάθε ομάδα δουλεύει σε ένα δικό της σχήμα, ώστε να δουλεύει σε μια δικιά της ΒΔ. Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 8 Κατάλογος Catalog) Το Σύστημα Διαχείρισης Βάσεων Δεδομένων ένα σύνολο από μηχανισμούς και δεδομένα για τη διαχείριση των βάσεων δεδομένων Μία κεντρική δομή είναι ο ΚΑΤΑΛΟΓΟΣ catalog) που περιλαμβάνει μια συλλογή σχημάτων Αφορούν τον διαχειριστή της βάσης δεδομένων DBA Database Administrator) Αλλαγή Κωδικού Password) Εντολή SQL για την αλλαγή password στην oracle): ALTER USER team20 IDENTIFIED BY dj1c2a; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 9 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 10 Βασικές εντολές της SQL Διαχείριση Σχήματος ΒΔ CREATE ALTER DROP Διαχείριση Δεδομένων INSERT UPDATE DELETE Ερωτήματα Queries) SELECT Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 11 DDL: CREATE TABLE NAME VARCHAR15) Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 12 2

DDL: DROP TABLE NAME VARCHAR15) DROP TABLE STUDENTS; DROP TABLE STUDENTS CASCADE CONSTRAINTS; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 13 DDL: ALTER TABLE ID INTEGER, NAME VARCHAR15) ALTER TABLE STUDENTS ADD AGE INTEGER; ALTER TABLE STUDENTS DROP COLUMN AGE; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 14 CONSTRAINTS ID INTEGER PRIMARY KEY, NAME VARCHAR15) NOT NULL ALTER TABLE ADD AGE; DROP TABLE STUDENTS CASCADE CONSTRAINTS; Δημιουργία/Διαγραφή Πίνακα NAME VARCHAR15) DROP TABLE STUDENTS; DROP TABLE STUDENTS CASCADE CONSTRAINTS; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 15 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 16 Περιορισμοί Οι περιορισμοί του σχεσιακού μοντέλου δεδομένων:: Πεδίο Ορισμού Κλειδί Ακεραιότητα Οντοτήτων Αναφορική Ακεραιτότητα Περιορισμοί και SQL Πεδίο Ορισμού: Ο τύποςδεδομένωντου πεδίου/στήλης του πίνακα Κλειδί: Primary Key Unique Ακεραιότητα Οντοτήτων Αναφορική Ακεραιότητα: ALTER TABLE ergazomenos ADD CONSTRAINT FK_PROIST FOREIGN KEYproistamenos) References ergazomenosar_tayt Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 17 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 18 3

Αναφορική Ακεραιότητα στην SQL Παράδειγμα προσθήκης ενός περιορισμού αναφορικής ακεραιότητας σε έναν πίνακα: Το όνομα του πίνακα ALTER TABLE ergazomenos ADD CONSTRAINT FK_PROIST FOREIGN KEYproistamenos) REFERENCES ergazomenosar_tayt Ο πίνακας και το όνομα του πεδίου/στήλης στο οποίο αναφέρεται το τοπικό πεδίο Ένα όνομα για τον περιορισμό Το όνομα του πεδίου/στήλης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 19 Πίνακες CREATE TABLE ΤΕΑΜ00.STUDENTS NAME VARCHAR15) CREATE TABLE ΤΕΑΜ05.STUDENTS NAME VARCHAR15) Για να δει ένας χρήστης όλους τους πίνακές του: SELECT TABLE_NAME FROM USER_TABLES; Για να δει ο DBA όλους τους πίνακες ενός χρήστη: SELECT * FROM DBA_TABLES WHERE OWNER = TEAM04'; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 20 DML: Insert 1) Στην απλή της μορφή, χρησιμοποιείται για την εισαγωγή μιας η περισσοτέρων πλειάδων γραμμών/εγγραφών) σε μια σχέση/πίνακα Η σειρά των γνωρισμάτων πρέπει να είναι ίδια με τη σειρά των γνωρισμάτων/πεδίων/στηλών του πίνακα Παράδειγμα: INSERT INTO EMPLOYEE VALUES 'Richard','K','Marini', '653298653', '30-DEC-52', '98 Oak Forest,Katy,TX', 'M', 37000,'987654321', 4 ) DML: Insert 2) Εναλλακτικά η Insert μπορεί να χρησιμοποιηθεί δηλώνοντας ρητά τα γνωρίσματα τα οποία αντιστοιχούν στις τιμές της νέας πλειάδας: Γνωρίσματα με τιμή NULL μπορούν να παραλειφθούν Παράδειγμα: Εισαγωγή πλειάδας για έναν νέο εργαζόμενο EMPLOYEE για τον οποίο γνωρίζουμε μόνο το μικρό όνομα, το επίθετο και τον ΑΤ. INSERT INTO EMPLOYEE FNAME, LNAME, SSN) VALUES 'Richard', 'Marini', '653298653' Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 21 Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 22 DML: DELETE Διαγράφει πλειάδες από μια σχέση Με χρήση του όρου WHERE μπορούμε να προσδιορίζουμε τις πλειάδες που θα διαγραφούν Μια εντολή delete διαγράφει πλειάδες από έναν πίνακα εκτός εάν υπάρχουν περιορισμοί αναφορικής ακεραιότητας και η δοθεί συνθήκη CASCADE) Τοπλήθοςτωνγραμμώνπουδιαγράφειηεντολήdelete εξαρτάται από τη συνθήκη where Εάν δεν οριστεί συνθήκη WHERE-clause τότε η εντολή διαγράφει όλες τις γραμμές του πίνακα Σε αυτή την περίπτωση ο πίνακας θα δεν θα περιέχει καμία γραμμή μετά την εντολή delete ο πίνακας όμως δεν θα έχει διαγραφεί!) Προσοχή στους περιορισμούς αναφορικής ακεραιότητας Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 23 Παραδείγματα: DML: DELETE 2) DELETE FROM EMPLOYEE WHERE LNAME='Brown ; DELETE FROM EMPLOYEE WHERE SSN='123456789 ; DELETE FROM EMPLOYEE WHERE DNO IN SELECT DNUMBER FROM DEPARTMENT WHEREDNAME='Research' DELETE FROM EMPLOYEE; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 24 4

DML: UPDATE Μεταβολή των τιμών των πεδίων σε μία ή περισσότερες γραμμές του πίνακα where: Μια συνθήκη where καθορίζει ποιες γραμμές θα τροποποιηθούν set: Το τμήμα SET ορίζει ποια γνωρίσματα θα ενημερωθούν και ποιες θα είναι οι νέες τιμές τους Κάθε εντολή ενημερώνει πλειάδες που ανήκουν στην ίδια σχέση Η αναφορική ακεραιότητα θα πρέπει να τηρηθεί Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 25 DML: UPDATE 2) Παράδειγμα: Αλλαγή του πεδίου location και του υπεύθυνου τμήματος του project με αριθμό: UPDATE PROJECT SET PLOCATION = Bellaire', DNUM = 5 WHERE PNUMBER=10; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 26 DML: UPDATE 3) Παράδειγμα: Αύξηση 10% σε όλους τους εργαζόμενους του τμήματος 'Research : U6: UPDATE EMPLOYEE SET SALARY = SALARY *1.1 WHERE DNO IN SELECT DNUMBER FROM DEPARTMENT WHERE DNAME='Research') Παρατήρηση: Η νέα τιμή του πεδίου μισθός εξαρτάται από την αρχική τιμή του πεδίου ΗαναφοράστοπεδίοSALARY δεξιά από το = αναφέρεται στην αρχική τιμή αριστερά από το = αναφέρεται στην νέα τιμή Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 27 DML: UPDATE 4) Παράδειγμα: Αύξηση 10% σε όλους τους εργαζόμενους όμως το ποσοστό αύξησης εξαρτάται από το μισθό του κάθε εργαζόμενου: update ergazomenos set misthos = case when misthos < 1000 then 1.1 * misthos when misthos < 2000 then 1.05 * misthos else misthos * 1.02 end; Ερώτηση κρίσης: Μπορεί η εντολή να αντικατασταθεί με τρία απλά updates; Πρέπει να προσέξουμε κάτι; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 28 Ερωτήματα SQL Queries) Απλά ερωτήματα SQL Σύνθετα SQL Queries Εμφωλιασμένα SQL Queries Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 29 Απλά SQL Queries Τα βασικά ερωτήματα SQL αντιστοιχούν στις πράξεις SELECT, PROJECT, και JOIN της σχεσιακής άλγεβρας Ένα απλό παράδειγμα ερωτήματος σε έναν πίνακα: Query 0: Ανάκτηση της ημερομηνίας γέννησης και της διεύθυνσης του εργαζόμενου με όνομα: 'John B. Smith'. Q0: SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME='John' AND MINIT='B AND LNAME='Smith Μοιάζει με το ζευγάρι των πράξεων SELECT-PROJECT της σχεσιακής άλγεβρας. Το SELECT καθορίζει τα γνωρίσματα για το projection και το WHERE καθορίζει τη συνθήκη για το selection Σημείωση: Στην Σ:Λ το αποτέλεσμα επιτρέπεται να έχει πολλαπλές πλειάδες Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 30 5

Απλά SQL Queries 2) Query 1: Ανάκτηση του ονόματος και της διεύθυνσης όλων των εργαζομένων του τμήματος 'Research : SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DNAME='Research' AND DNUMBER=DNO; Μοιάζει με τις πράξεις SELECT-PROJECT-JOIN της σχεσιακής άλγεβρας DNAME='Research') είναι η συνθήκη επιλογής selection condition) DNUMBER=DNO) είναι η συνθήκη join condition Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 31 Απλά SQL Queries 3) Query 2: Γιακάθεέργομετοποθεσίαin 'Stafford', να βρεθούν ο κωδικός του έργου, το υπεύθυνο τμήμα, το όνομα, διεύθυνση, ημερ γέννησης του διευθυντή του υπεύθυνου τμήματος. SELECT PNUMBER, DNUM, LNAME, BDATE, ADDRESS FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE DNUM=DNUMBER AND MGRSSN=SSN AND PLOCATION= Stafford ; Στο ερώτημα υπάρχουν 2 συνθήκες συνένωσης Η συνθήκη συνένωσης DNUM=DNUMBER σχετίζει το έργο με το υπεύθυνο τμήμα Η συνθήκη συνένωσης MGRSSN=SSN σχετίζει το υπεύθυνο τμήμα με τον εργαζόμενο που διευθύνει το τμήμα Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 32 6