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

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

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

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

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

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

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3)

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Κεφάλαιο 3 Δημιουργία Πινάκων Data Definition Language (DDL)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

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

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

Φυσική Σχεδίαση Υλοποίηση βάσης

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

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

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

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

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL

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

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

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

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

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

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

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

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

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

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr

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

ΔΟΜΕΣ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

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

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

databases linux - terminal (linux / windows terminal)

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

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

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

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

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

Σχεσιακό Πρότυπο Δεδομένων

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

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

Επαναληπτικό Φροντιστήριο. Βάσεις Δεδομένων Ι

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

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

Κεφάλαιο 2. Δημιουργία Βάσης Δεδομένων και Πινάκων

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

DELETE, UPDATE, INSERT.

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

DELETE, UPDATE, INSERT

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

Ανοικτά Ακαδημαϊκά Μαθήματα

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

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

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

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 2. Διαφάνεια 1. Κάπαρης Αναστάσιος

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

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. ΘΕΜΑ: Ηλεκτρονική Διαχείριση Αποθήκης Εργοστασίου

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση της MySQL. Γιώργος Πυρουνάκης -

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

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Οδηγίες Χρήσης της MySQL

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

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

Κεφ 4: Προχωρημένες Εντολές SQL

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

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Οδηγίες Χρήσης της MySQL

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Lecture 12: SQL DDL I

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL


Transcript:

Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 3 ο (26/11/2008) Εισαγωγή στην Mysql

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

Διαχείριση Βάσεων Το όνομα της βάσης Δημιουργία βάσης: CREATE DATABASE [IF NOT EXISTS] dbname; Επιλογή βάσης για χρήση: USE dbname; Διαγραφή βάσης: DROP DATABASE [IF EXISTS] dbname; Περιγραφή βάσης: SHOW TABLES;

Διαχείριση βάσεων - Παραδείγματα mysql> CREATE DATABASE IF NOT EXISTS dblab; Query OK, 1 row affected (0.00 sec) mysql> USE dblab; Database changed Το όνομα της βάσης mysql> SHOW TABLES; Empty set (0.00 sec) mysql> DROP DATABASE IF EXISTS dblab; Query OK, 1 row affected (0.01 sec)

Πίνακες Κάθε πίνακας αποτελείται από πεδία, τα οποία αντιπροσωπεύουν τα γνωρίσματα. Για κάθε πεδίο πρέπει να οριστεί ο τύπος τους. Θα πρέπει πάντα να χρησιμοποιείται ο τύπος δεδομένων που χρειάζεται για να αποθηκευτούν οι τιμές που μπορεί να πάρει το γνώρισμα. Επίσης πρέπει να ορίζεται και το μέγεθος του πεδίου, σύμφωνα με τις ανάγκες.

Τύποι Δεδομένων-Αριθμητικοί INT:ακέραιος μέγιστου μήκους 11 ψηφίων ΤΙΝΥΙΝΤ: ακέραιος μέγιστου μήκους 4 ψηφίων SMALLINT: ακέραιος μέγιστου μήκους 5 ψηφίων MEDIUMINT: ακέραιος μέγιστου μήκους 9 ψηφίων BIGINT: ακέραιος μέγιστου μήκους 20 ψηφίων FLOAT(M,D): κινητής υποδιαστολής M ψηφίων και D δεκαδικών (μέχρι 24), είναι πάντα προσημασμένος DOUBLE(M,D): διπλής ακρίβειας, M ψηφίων και D δεκαδικών (μέχρι 53), είναι πάντα προσημασμένος

Τύποι Δεδομένων Ημερομηνίες & Ώρες DATE: Τιμή ημερομηνίας με μορφή: ΕΕΕΕ-ΜΜ-ΗΗ DATETIME:Ημερομηνία και ώρα με μορφή: ΕΕΕΕ-ΜΜ-ΗΗ ΩΩ:ΛΛ:ΔΔ TIME: Ώρα με μορφή: ΩΩ:ΛΛ:ΔΔ YEAR(M): Αποθηκεύει έτος σε διψήφια ή τετραψήφια μορφή. Στη διψήφια μορφή περιλαμβάνονται τα έτη από 1970-2069. Στην τετραψήφια από 1901-2155. TIMESTAMP: Χρονική ένδειξη με μορφές: 14(ΕΕΕΕΜΜΗΗΩΩΛΛΔΔ) 12(ΕΕΜΜΗΗΩΩΛΛΔΔ) 8(ΕΕΕΕΜΜΗΗ) 6(ΕΕΜΜΗΗ)

Τύποι Δεδομένων - Αλφαριθμητικά CHAR(M): Αλφαριθμητικό σταθερού μεγέθους μεταξύ 1-255 χαρακτήρες. Αν η τιμή δεν φτάνει το μέγεθος συμπληρώνεται με κενά ως το προσδιοριζόμενο μήκος. VARCHAR(M): Αλφαριθμητικό μεταβλητού μεγέθους, από 1-255 χαρακτήρες. TEXT: Πεδίο κειμένου με μέγιστο μήκος 65535 TINYTEXT MEDIUMTEXT LONGTEXT ENUM: Απαρίθμηση, δηλαδή μία λίστα. Όταν ορίζεται ένας τύπος ENUM δημιουργείται μία λίστα στοιχείων από τα οποία μπορεί να επιλεχθεί μία τιμή ( ήμπορείναείναικαιnull). Πχ αν θέλουμε το πεδίο να περιέχει τιμές A,B ή C τότε ορίζουμε τον τύπο του ως: ENUM( A, B, C ). SET: Παρόμοιος με τον ENUM αλλά η τιμή ενός γνωρίσματος μπορεί να είναι ένα σύνολο με περισσότερες από μία τιμές του πεδίου ορισμού.πχ για SET( A, B, C ) κάποιο πεδίο μπορεί να πάρει την τιμή Α,Β ήτηντιμήa,b,c

Δημιουργία πίνακα Η δημιουργία ενός πίνακα γίνεται με την εντολή CREATE TABLE. H CREATE TABLE συντάσσεται ως εξής: CREATE TABLE [IF NOT EXISTS] όνομα_πίνακα( όνομα_στήλης τύπος_στήλης [options], όνομα_στήλης2 τύπος_στήλης2 [options2], κλπ.. PRIMARY KEY (όνομα_στήλης_κλειδιού1,...) UNIQUE (index_col_name,...) [CONSTRAINT symbol] FOREIGN KEY (index_col_name,...) REFERENCES tbl_name [(index_col_name,...)] [ON DELETE reference_option] [ON UPDATE reference_option] Όπου options=[not NULL NULL] [DEFAULT default_value] [AUTO_INCREMENT] reference option=restrict CASCADE SET NULL NO ACTION SET DEFAULT

Δημιουργία πίνακα-στήλες Έστω ότι ορίζουμε ένα γνώρισμα που περιέχει τον κωδικό ενός προϊόντος. Είναι ακέραιος αριθμός 9 ψηφίων. Θέλουμε να μην είναι ποτέ null και να αυξάνεται αυτόματα η τιμή του με την προσθήκη κάθε νέου προϊόντος. Η αντίστοιχηγραμμήστηνδήλωσητηςcreate TABLE θα είναι: product_id INT(9) NOT NULL AUTO_INCREMENT Έστω ότι θέλουμε κι άλλο ένα γνώρισμα το οποίο είναι ο αριθμός ταυτότητας του αγοραστή. Είναι αλφαριθμητικό, μήκους 7 χαρακτήρων. buyer_id VARCHAR(7) Έστω ότι υπάρχει κι άλλο όρισμα, το όνομα προϊόντος, αλφαριθμητικό 20 χαρακτήρων που δεν είναι ποτέ NULL. Έχει προεπιλεγμένη τιμή unknown. product_name VARCHAR(20) DEFAULT 'unknown' NOT NULL

Δημιουργία πίνακα-keys Έστω ότι θέλουμε να ορίσουμε ότι το όρισμα product_id είναι πρωτεύον κλειδί στον πίνακα. Προσθέτουμε την γραμμή: PRIMARY KEY(product_id) Έστω ότι ξέρουμε ότι το όνομα προϊόντος είναι μοναδικό και μπορεί να χρησιμοποιήθεί σαν εναλλακτικό κλειδί. Το δηλώνουμε ως εξής: UNIQUE (product_name)

Δημιουργία πίνακα-foreign keys Έστω ότι το buyer_id είναι ένα ξένο κλειδί που «δείχνει» στο όρισμα ar_tayt του πίνακα πελάτης. Βάζουμε ένα περιορισμό με όνομα PRDCTBR και δηλώνουμε τον περιορισμό αναφορικής ακεραιότητας: CONSTRAINT PRDCTBR FOREIGN KEY(buyer_id) REFERENCES pelatis(ar_tayt) ON DELETE SET NULL ON UPDATE CASCADE ΗπράξηON DELETE SET NULL σημαίνει ότι στην περίπτωση που διαγραφεί η αντίστοιχη εγγραφή του πελάτη, το πεδίο τίθεται NULL. ΗπράξηON UPDATE CASCADE σημαίνει ότι αν αλλάξει ο αριθμός ταυτότητας του πελάτη, ενημερώνεται αυτόματα το πεδίο buyer_id.

Δημιουργία πίνακα Συνολικά η πρόταση CREATE TABLE είναι: Κλήση: create table product( product_id INT(9) NOT NULL AUTO_INCREMENT, buyer_id VARCHAR(7), product_name VARCHAR(20) DEFAULT 'unknown' NOT NULL, PRIMARY KEY(product_id), UNIQUE name_index(product_name), CONSTRAINT PRDCTBR FOREIGN KEY(buyer_id) references pelatis(ar_tayt) ON DELETE SET NULL ON UPDATE CASCADE ); Αποτέλεσμα: Query OK, 0 rows affected (0.08 sec)

Παράδειγμα -ER

Παράδειγμα-Σχεσιακό

Παραδειγμα Tables creation CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, AM INT(5) NOT NULL AUTO_INCREMENT, PRIMARY KEY(AM) ); CREATE TABLE professor( pr_name VARCHAR(25) DEFAULT 'unknown' NOT NULL, pr_lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(email) );

Παραδειγμα Tables creation CREATE TABLE course( title VARCHAR(255) DEFAULT 'unknown' NOT NULL, material TEXT, course_id INT(4) NOT NULL AUTO_INCREMENT, supervisor VARCHAR(255) NOT NULL, PRIMARY KEY(course_id), UNIQUE(title), CONSTRAINT SUPERVISED FOREIGN KEY (supervisor) REFERENCES professor(email)on DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE books( title VARCHAR(128) DEFAULT 'ΤΙΤΛΟΣ' NOT NULL, course_book INT(4) NOT NULL, PRIMARY KEY(title,course_book), CONSTRAINT CRSBOOK FOREIGN KEY (course_book) REFERENCES course(course_id) ON DELETE CASCADE ON UPDATE CASCADE );

Παραδειγμα Tables creation CREATE TABLE lecture( subject VARCHAR(128), num_lecture INT(2) NOT NULL, course_lecture INT(4) NOT NULL, PRIMARY KEY(num_lecture,course_lecture), CONSTRAINT CRSLECTURE FOREIGN KEY (course_lecture) REFERENCES course(course_id) ON DELETE CASCADE ON UPDATE CASCADE); CREATE TABLE registration( reg_date DATE NOT NULL, reg_student INT(5) NOT NULL, reg_course INT(4) NOT NULL, PRIMARY KEY(reg_student,reg_course), CONSTRAINT CRSREGISTRATION FOREIGN KEY (reg_course) REFERENCES course(course_id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT STDNTREGISTRATION FOREIGN KEY (reg_student) REFERENCES student(am) ON DELETE CASCADE ON UPDATE CASCADE);