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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα 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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DELETE, UPDATE, INSERT

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

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

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

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

DELETE, UPDATE, INSERT.

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

Transcript:

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1

SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα μεταξύ των Σχεσιακών ΣΔΣΒΔ Υπάρχουν βέβαια διαφοροποιήσεις μεταξύ των υλοποιήσεων της SQL στα εμπορικά ΣΔΣΒΔ, όμως με λίγο προσοχή αυτά ξεπερνιούνται Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 2

SQL - Structured Query Language (2) Επίσης μπορούμε να γράφουμε SQL εντολές (προγράμματα) και αυτές να εκτελούνται σε πολλές και διαφορετικές μεταξύ τους πλατφόρμες ΗγλώσσαSQL σχετίζεται με τη σχεσιακή άλγεβρα Είδαμε στο προηγούμενο κεφάλαιο το Σχεσιακό Μοντέλο Δεδομένων, και τη Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 3

Εισαγωγή στην SQL (1) ΟιπράξειςτηςΣχεσιακήςΆλγεβραςπαίζουν σημαντικόρόλογιατηνκατανόησητων διαφόρων αιτημάτων προς το Σχεσιακό ΣΔΒΔ αλλά επιπλέον και για την επεξεργασία και τη βελτιστοποίηση ερωτήσεων σε ένα Σχεσιακό ΣΔΒΔ ΤΑ ΚΑΛΑ ΝΕΑ είναι ότι οι διατυπώσεις σχεσιακών πράξεων στην SQL είναι πιο απλή υπόθεση από ότι στην σχεσιακή άλγεβρα Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 4

Εισαγωγή στην SQL (2) Στη σχεσιακή άλγεβρα πρέπει να ορίσουμε ακριβώς με ποια σειρά θα εκτελεστούν οι πράξεις μιας σύνθετης έκφρασης, ενώ στην SQL μπορούμε να περιγράψουμε σεπιοψηλόεπίπεδοτηνερώτηση/πράξη και αναλαμβάνει το ΣΔΒΔ να την εκτέλεση με αποδοτικό τρόπο Στην SQL δηλώνουμε απλά ΤΙ θέλουμε να κάνουμε. Η SQL βασίζεται στο ΣΧΕΣΙΑΚΟ ΛΟΓΙΣΜΟ ΠΛΕΙΑΔΩΝ, μιαάλλητυπικήγλώσσαπουίσωςδούμε εν συντομία σε επόμενο μάθημα Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 5

Ιστορικά Στοιχεία 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 - Μέρος Πρώτο 6

Δυνατότητες της 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) Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 9

Αλλαγή Κωδικού (Password) Εντολή SQL για την αλλαγή password (στην oracle): ALTER USER team20 IDENTIFIED BY dj1c2a; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 10

Βασικές εντολές της SQL Διαχείριση Σχήματος ΒΔ CREATE ALTER DROP Διαχείριση Δεδομένων INSERT UPDATE DELETE Ερωτήματα (Queries) SELECT Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 11

DDL: CREATE TABLE CREATE TABLE STUDENTS ( NAME VARCHAR(15) ); Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 12

DDL: DROP TABLE CREATE TABLE STUDENTS ( NAME VARCHAR(15) ); DROP TABLE STUDENTS; DROP TABLE STUDENTS CASCADE CONSTRAINTS; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 13

DDL: ALTER TABLE CREATE TABLE STUDENTS ( ID INTEGER, NAME VARCHAR(15) ); ALTER TABLE STUDENTS ADD AGE INTEGER; ALTER TABLE STUDENTS DROP COLUMN AGE; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 14

CONSTRAINTS CREATE TABLE STUDENTS ( ID INTEGER PRIMARY KEY, NAME VARCHAR(15) NOT NULL ); ALTER TABLE ADD AGE; DROP TABLE STUDENTS CASCADE CONSTRAINTS; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 15

Δημιουργία/Διαγραφή Πίνακα CREATE TABLE STUDENTS ( NAME VARCHAR(15) ); DROP TABLE STUDENTS; DROP TABLE STUDENTS CASCADE CONSTRAINTS; Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 16

Περιορισμοί Οι περιορισμοί του σχεσιακού μοντέλου δεδομένων:: Πεδίο Ορισμού Κλειδί Ακεραιότητα Οντοτήτων Αναφορική Ακεραιτότητα Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 17

Περιορισμοί και SQL Πεδίο Ορισμού: Οτύποςδεδομένωντου πεδίου/στήλης του πίνακα Κλειδί: Primary Key Unique Ακεραιότητα Οντοτήτων Αναφορική Ακεραιότητα: ALTER TABLE ergazomenos ADD CONSTRAINT FK_PROIST FOREIGN KEY(proistamenos) References ergazomenos(ar_tayt); Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 18

Αναφορική Ακεραιότητα στην SQL Παράδειγμα προσθήκης ενός περιορισμού αναφορικής ακεραιότητας σε έναν πίνακα: Το όνομα του πίνακα ALTER TABLE ergazomenos ADD CONSTRAINT FK_PROIST FOREIGN KEY(proistamenos) REFERENCES ergazomenos(ar_tayt); Ο πίνακας και το όνομα του πεδίου/στήλης στο οποίο αναφέρεται το τοπικό πεδίο Ένα όνομα για τον περιορισμό Το όνομα του πεδίου/στήλης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 19

Πίνακες CREATE TABLE ΤΕΑΜ00.STUDENTS ( NAME VARCHAR(15) ); CREATE TABLE ΤΕΑΜ05.STUDENTS ( NAME VARCHAR(15) ); Για να δει ένας χρήστης όλους τους πίνακές του: 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 ) Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 21

DML: Insert (2) Εναλλακτικά η Insert μπορεί να χρησιμοποιηθεί δηλώνοντας ρητά τα γνωρίσματα τα οποία αντιστοιχούν στις τιμές της νέας πλειάδας: Γνωρίσματα με τιμή NULL μπορούν να παραλειφθούν Παράδειγμα: Εισαγωγή πλειάδας για έναν νέο εργαζόμενο EMPLOYEE για τον οποίο γνωρίζουμε μόνο το μικρό όνομα, το επίθετο και τον ΑΤ. INSERT INTO EMPLOYEE (FNAME, LNAME, SSN) VALUES ('Richard', 'Marini', '653298653'); Βάσεις Δεδομένων Η Γλώσσα 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

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

Απλά 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