Βάςεισ Δεδομζνων Ι Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql Δρ. Σςιμπίρθσ Αλκιβιάδθσ
Άδειεσ Χρήςησ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ, που υπόκειται ςε άλλου τφπου άδειασ χριςθσ, θ άδεια χριςθσ αναφζρεται ρθτϊσ. Βάςεισ Δεδομζνων Ι-
Χρηματοδότηςη Σο παρόν εκπαιδευτικό υλικό ζχει αναπτυχκεί ςτα πλαίςια του εκπαιδευτικοφ ζργου του διδάςκοντα. Σο ζργο «Ανοικτά Ακαδθμαϊκά Μακιματα ςτο ΣΕΙ Κεντρικισ Μακεδονίασ» ζχει χρθματοδοτιςει μόνο τθ αναδιαμόρφωςθ του εκπαιδευτικοφ υλικοφ. Σο ζργο υλοποιείται ςτο πλαίςιο του Επιχειρθςιακοφ Προγράμματοσ «Εκπαίδευςθ και Δια Βίου Μάκθςθ» και ςυγχρθματοδοτείται από τθν Ευρωπαϊκι Ζνωςθ (Ευρωπαϊκό Κοινωνικό Σαμείο) και από εκνικοφσ πόρουσ. Βάςεισ Δεδομζνων Ι-
Ενότητα 7 Ειςαγωγή ςτη γλώςςα SQL Δρ. Σςιμπίρθσ Αλκιβιάδθσ
Περιεχόμενα ενότητασ Η γλϊςςα SQL Εντολζσ Γλϊςςασ Οριςμοφ δεδομζνων Δθμιουργία, Σροποποίθςθ, Διαγραφι Πίνακα Περιοριςμοί Κλειδιοφ Περιοριςμοί οντότθτασ Αναφορικι ακεραιότθτα 5
Σκοποί ενότητασ τθν ενότθτα αυτι παρουςιάηονται οι βαςικζσ εντολζσ τθσ γλϊςςα σ SQL. Γίνεται διαχωριςμόσ των εντολϊν ςε Εντολζσ Γλϊςςασ Οριςμοφ δεδομζνων που περιλαμβάνουν τθ Δθμιουργία, Σροποποίθςθ, Διαγραφι Πίνακα. Οι περιοριςμοί κλειδιοφ οντότθτασ κακϊσ και θ αναφορικι ακεραιότθτα απαιτοφν ιδιαίτερθ προςοχι ϊςτε να δθμιουργθκοφν ςωςτά οι πίνακεσ τθσ ΒΔ. 6
Η γλώςςα SQL Η standard γλϊςςα για ςχεςιακζσ βάςεισ δεδομζνων. αρχικά ονομάηονταν Sequel ςτθν IBM ωσ μζροσ του System R ιμερα ονομάηεται SQL από τα αρχικά των λζξεων ( Stuctured Query Language ) SQL--89, SQL--92, SQL-99 7
Τμήματα τησ SQL Γλϊςςα Οριςμοφ Δεδομζνων (ΓΟΔ) Γλϊςςα Χειριςμοφ Δεδομζνων (ΓΧΔ) Ενςωματωμζνθ Γλϊςςα Χειριςμοφ Δεδομζνων Οριςμό Όψεων Εξουςιοδότθςθ (authentication) Ακεραιότθτα Ζλεγχο υναλλαγϊν 8
Η γλώςςα SQL Η γλώςςα SQL αποτελείται από: DDL(Data Definition language) Γλϊςςα οριςμοφ δεδομζνων Create table Δθμιουργία νζου πίνακα Alter table Σροποποίθςθ δομισ πίνακα Drop table Διαγραφι πίνακα DML(Data Manipulation language) Γλϊςςα χειριςμοφ δεδομζνων Insert into Ειςάγει νζεσ γραμμζσ ςτον πίνακα Update Ενθμερϊνει/Διορκϊνει τιμζσ των πεδίων του πίνακα Delete Διαγράφει γραμμζσ από τον πίνακα Select Επιλζγει και προβάλει δεδομζνα του πίνακα 9
Τφποι Πεδίου Οριςμοφ Για τον οριςμό του πεδίου οριςμοφ, οι διακζςιμοι ενςωματωμζνοι τφποι δεδομζνων τθσ SQL είναι: char(n) (ςτακεροφ μικουσ) varchar(n) int smallint numeric(p, d) (d από τα p ψθφία είναι ςτα δεξιά τθσ υποδιαςτολισ) real, double precision float(n) date (θμερομθνία) time (ϊρα) 10
Δημιουργία πινάκων ςτην SQL Σπουδαςτήσ ΑEM Επίκετο Πόλθ Ημ _ γζννθςθσ 1 AA ΕΡΡΕ 1/1/1980 2 BB ΑΘΗΝΑ 30/10/1990 3 CC ΑΘΗΝΑ 6/1/1993 Δημιουργία του πίνακα με SQL: Create table πουδαςτισ2 (AEM int NOT NULL, Επίκετο varchar(30), Πόλθ varchar(30), Ημ_γζννθςθσ date, Constraint PΚ_AEM primary key (AEM) ) Περιοριςμόσ ΚΛΕΙΔΙΟΥ 11
Εντολζσ γλώςςασ οριςμοφ δεδομζνων Άλλεσ εντολζσ γλϊςςασ χειριςμοφ είναι οι εξισ: DROP TABLE Διαγραφι πίνακα ALTER TABLE Σροποποίθςθ πίνακα ADD Πρόςκεςθ καινοφργιασ ςτιλθσ MODIFY Σροποποίθςθ μιασ ςτιλθσ DROP Σροποποίθςθ μιασ ςτιλθσ ΣΧΟΛΙΟ! Όταν υπάρχει περιοριςμόσ ακεραιότθτασ αναφοράσ δεν μποροφμε να κάνουμε αλλαγι δεδομζνων. 12
Συνθήκεσ την εντολήσ Where Συγκριτικοί τελεςτζσ: =, >, <, >=, <=, <>, Between, Not Between, In, Not in, like, not like (ανάμεςα ςε αρικμθτικζσ εκφράςεισ, ςυμβολοςειρζσ ( strings ) και ειδικοφσ τφπουσ). Λογικοί τελεςτζσ: AND, OR, NOT Αριθμητικοί τελεςτζσ: +, -, *, /, MOD 13
Μεταβολή δομήσ πινάκων ςτην SQL Σπουδαςτήσ ΑEM Επίκετο Πόλθ Ημ _ γζννθςθσ 1 AA ΕΡΡΕ 1/1/1980 2 BB ΑΘΗΝΑ 30/10/1990 3 CC ΑΘΗΝΑ 6/1/1993 Δημιουργία του πίνακα με SQL: ALTER TABLE πουδαςτισ ADD COLUMN TΗΛΕΦΩΝΟ VARCHAR(20) ALTER TABLE πουδαςτισ MODIFY TΗΛΕΦΩΝΟ VARCHAR(10) ALTER TABLE πουδαςτισ ALTER TΗΛΕΦΩΝΟ VARCHAR(10) ALTER TABLE πουδαςτισ DROP TΗΛΕΦΩΝΟ 14
Αναφορική Ακεραιότητα ΜΑΘΗΜΑ ΚΜ ΣΙΣΛΟ ΔΙΔ_ΜΟ ΝΑΔΕ ΚΚ ΚΑΘΗΓΗΤΗΣ ΚΚ ΕΠΙΘΕΣΟ ΟΝΟΜΑ ΠΟΛΗ 1 ΒΑΕΙ Ι 3 1 2 ΛΟΓΙΜΟ 2 1 3 ΛΕΙΣΟΤΡΓΙΚΑ 3 2 1 ΒΒΒ ΒΒΒ ΕΡΡΕ 2 ΑΑΑ ΑΑΑ ΑΘΗΝΑ 3 CCC CCC ΑΘΗΝΑ Δημιουργία του πίνακα με SQL: ALTER TABLE ΜΑΘΗΜΑ ADD CONSTRAINT FK1 FOREIGN KEY (KK) REFERENCES ΚΑΘΗΓΗΣΗ(ΚΚ) 15
Τιμή Null H λζξθσ κλειδί is null (is not null) ςε μια ςυνκικθ υπάρχει για να διαπιςτωκεί αν μια τιμι είναι null (κενι). Εάν υπάρχει τιμι τότε είναι not null. 16