MySQL Εργαστήριο #2 Γλώσσα Ορισμού Δεδομένων Ακεραιότητα Δεδομένων

Σχετικά έγγραφα
Μέξνο ηνπ πιηθνύ πξνέξρεηαη από δηαθάλεηεο ηνπ Δ. Καηζίθαξνπ ( ηνλ νπνίν επραξηζηνύκε ζεξκά

MySQL Εργαστήριο #4 Διαβεβαιώσεις - Ενεργοποιητές

Βάσεις Δεδομέμωμ. Δξγαζηήξην Ι. Τκήκα Πιεξνθνξηθήο ΑΠΘ

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

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

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

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

MySQL Εργαστήριο #5 Ενεργοποιητές (συνέχεια)

MySQL Εργαστήριο #1 Εισαγωγή στο ΣΔΒΔ MySQL

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

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

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

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

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

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

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

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

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

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

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

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

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

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

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Βάζεις Δεδομένων ΤΛΟΠΟΙΗΗ ΜΙΑ ΑΠΛΗ ΒΑΗ ΜΔ ΑΤΣΟΜΑΣΑ ΔΡΓΑΛΔΙΑ. Υινπνίεζε Απιήο Βάζεο 1

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

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

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

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

Βάζεηο Γεδνκέλσλ. Δηζαγσγή γηα ην Δξγαζηήξην. Τκήκα Πιεξνθνξηθήο ΑΠΘ

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

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Ενδεικτικά Θέματα Στατιστικής ΙΙ

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

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

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

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

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

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

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

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

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

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

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

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

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

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

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

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

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

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

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

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

Τν Πξόγξακκα ζα αλαθνηλσζεί, ακέζσο κεηά ηηο γηνξηέο ηνπ Πάζρα.

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

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

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

Η Γιώζζα SQL. Δηζαγσγή Βαζηθέο Έλλνηεο Τύπνη Γεδνκέλσλ Οξηζκόο Γεδνκέλσλ Φεηξηζκόο Γεδνκέλσλ

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

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

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

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

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

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

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

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

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

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Η αξρή ζύλδεζεο Client-Server

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

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

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

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

MySQL Εργαστήριο #3 Structured Query Language - SQL

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Βάζεις Δεδομένων. ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ The Relational Model. ρεζηαθό Μνληέιν 1

x x x x tan(2 x) x 2 2x x 1

Transcript:

MySQL Εργαστήριο #2 Γλώσσα Ορισμού Δεδομένων Ακεραιότητα Δεδομένων Νίθνο Γηαηξάθνο Δξγαζηήξην Πιεξνθνξηαθώλ Σπζηεκάησλ, Τκήκα Πιεξνθνξηθήο, Παλεπηζηήκην Πεηξαηά (http://infolab.cs.unipi.gr)

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 2

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 3

Δημιουργία ΒΔ CREATE {DATABASE SCHEMA} [IF NOT EXISTS] db_name [create_specification...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name Τη ζεκαίλνπλ: CAPITAL SQL keywords small substituted (for example database & table names) [ ] optional words or clauses seperation of alternatives { } necessaraly pick one of the words of set... repetetion or omission small: further analysis 4

Δημιουργία ΒΔ Δληνιή Γεκηνπξγίαο mysql>create database if not exists your_sn -> character set=utf8; mysql> show databases; 5

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 6

Περιγραφή Σεναρίου Εφαρμογής Γηάγξακκα Οληνηήησλ - Σπζρεηίζεσλ 7

Περιγραφή Σεναρίου Εφαρμογής Σρεζηαθό Σρήκα Stars(StarID, StarName, StarAddress) Studios(StudioID, StudioName, StudioAddress) Movies(MovieID, MovieTitle, MovieLength, MovieWebsite, FilmType, StudioID) Stars_In(StarID, MovieID, StarringSequence) 8

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 9

Εντολή Δημιουργίας CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_option] create_definition col_name column_definition [CONSTRAINT [symbol]] PRIMARY KEY [CONSTRAINT [symbol]] FOREIGN KEY ref_definition CHECK (expr) table_option {ENGINE TYPE} [=] engine_name ref_definition: REFERENCES tbl_name (col_name,...) [ON DELETE CASCADE] [ON UPDATE CASCADE] Όηαν ο πίνακας οριζηεί ως TEMPORARY είναι οραηός και τρηζιμοποιήζιμος ζηην σπάρτοσζα ζύνδεζη, ενώ γίνεηαι DROP ασηόμαηα μόλις η ζύνδεζη ηερμαηιζηεί 10

Εντολή Δημιουργίας CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_option] create_definition col_name column_definition [CONSTRAINT [symbol]] PRIMARY KEY [CONSTRAINT [symbol]] FOREIGN KEY ref_definition CHECK (expr) table_option {ENGINE TYPE} [=] engine_name ref_definition: REFERENCES tbl_name (col_name,...) Επιβολή απλών περιοριζμών ακεραιόηηηας [ON DELETE CASCADE] [ON UPDATE CASCADE] Περιλαμβάνει: -Τον ηύπο δεδομένων ηης ζηήλης -Απλούς περιοριζμούς ακεραιόηηηας 11

Εντολή Δημιουργίας CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_option] create_definition col_name column_definition [CONSTRAINT [symbol]] PRIMARY KEY [CONSTRAINT [symbol]] FOREIGN KEY ref_definition CHECK (expr) table_option {ENGINE TYPE} [=] engine_name ref_definition: REFERENCES tbl_name (col_name,...) [ON DELETE CASCADE] [ON UPDATE CASCADE] Αναθορική Ακεραιόηηηα Σσμπαραζσρόμενες Ενέργειες 12

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 13

Γλώσσα Ορισμού Δεδομένων H SQL σο Γιώζζα Οξηζκνύ Γεδνκέλσλ ζηελ MySQL Βαζηθνί ηύπνη δεδνκέλσλ SMALLINT [(length)] Μηθξόο αθέξαηνο, θαηαιακβάλεη 2 bytes INTEGER[(length)] Αθέξαηνο, θαηαιακβάλεη 4 bytes REAL[(Μ,d)] Μ ςεθία από τα οποία d δεθαδηθά NUMERIC[(Μ[,d])] Όκνηα κε πξηλ αιιά κε απμεκέλε αθξίβεηα π.ρ ρξήζε ζε ζηήιεο κε ρξεκαηηθά πνζά DATE Ηκεξνκελίεο, πνπ πεξηέρνπλ ηεηξαςήθην έηνο, κήλα θαη εκέξα TIME Ώξα εκέξαο κε παξαιιαγέο αθξίβεηαο πνπ αθνξνύλ ελζσκάησζε εκέξαο, αθξίβεηαο δεθαδηθνύ δεπηεξνιέπησλ θηι TIMESTAMP Date + Time CHAR[(length)] [CHARACTER SET charset_name] Σπκβνινζεηξά πξνθαζνξηζκέλνπ, ζηαζεξνύ κήθνπο (length) VARCHAR(length) [CHARACTER SET charset_name] Σπκβνινζεηξά κε κεηαβιεηό κήθνο έσο (length) 14

Γλώσσα Ορισμού Δεδομένων - Εφαρμογή Αο εθθηλήζνπκε ηε δεκηνπξγία ησλ πηλάθσλ ηνπ ζελαξίνπ εθαξκνγήο κε ηνλ νξηζκό ηνπ ηύπνπ δεδνκέλσλ θάζε ζηήιεο CREATE TABLE STARS ( StarID INTEGER..., StarName VARCHAR(50)..., StarAddress VARCHAR(100)...... ); CREATE TABLE Stars_In ( StarID INTEGER..., MovieID INTEGER..., StarringSequence SMALLINT...,... ); CREATE TABLE STUDIOS ( StudioID INTEGER..., StudioName VARCHAR(50)..., StudioAddress VARCHAR(100)...... ); CREATE TABLE MOVIES ( MovieID INTEGER..., MovieTitle VARCHAR(80)..., MovieWebsite VARCHAR(100)..., MovieLength REAL, FilmType VARCHAR(50) StudioID INTEGER...,... ); 15

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 16

Απλοί Περιορισμοί Ακεραιότητας Σε ζπλέρεηα ηνπ Column definition [NOT NULL NULL] [UNIQUE [KEY]] Δπηπιένλ [DEFAULT default_value] [AUTO_INCREMENT] Αιιά θαη CHECK (expression) ** Σηελ MySQL 5.1, ε εληνιή check πξνζπειάδεηαη θαλνληθά, αιιά αγλνείηαη 17

Απλοί Περιορισμοί Ακεραιότητας Εφαρμογή Θεσξνύκε ηνπο αθόινπζνπο, ελδεηθηηθνύο πεξηνξηζκνύο ζην ζελάξην εθαξκνγήο Η ζεηξά θαηαρώξεζεο πξσηαγσληζηώλ (Stars), ηαηληώλ (Movies), Studios είλαη θαζνξηζηηθή γηα ηνλ θσδηθό πνπ ζα απνδνζεί ζε απηά Τα πεδία StarName, MovieTitle, StudioName δελ επηηξέπεηαη λα ιακβάλνπλ θελέο ηηκέο θαζώο δπζρεξαίλεηαη ζεκαληηθά ε δηαδηθαζία αλαδήηεζήο ηνπο Τν website πνπ αληηζηνηρεί ζε θάζε ηαηλία πξέπεη λα είλαη κνλαδηθό Οη ηηκέο πνπ θαηαρσξνύληαη ζην πεδίν website ζα πξέπεη λα ιακβάλνπλ κνξθή παξόκνηα κε ηελ αθόινπζε: www..gr Σε πεξίπησζε πνπ δελ νξηζηεί δηαθνξεηηθά, ε δηάξθεηα κηαο ηαηλίαο θαηαρσξείηαη ίζε κε 60 ιεπηά 18

Απλοί Περιορισμοί Ακεραιότητας Εφαρμογή CREATE TABLE STARS ( StarID INTEGER AUTO_INCREMENT, StarName VARCHAR(50) NOT NULL, StarAddress VARCHAR(100),... ); CREATE TABLE Stars_In ( StarID INTEGER, MovieID INTEGER, StarringSequence SMALLINT,... ); CREATE TABLE STUDIOS ( StudioID INTEGER AUTO_INCREMENT, StudioName VARCHAR(50) NOT NULL, StudioAddress VARCHAR(100),... ); CREATE TABLE MOVIES ( MovieID INTEGER AUTO_INCREMENT, MovieTitle VARCHAR(80) NOT NULL, MovieWebsite VARCHAR(100) UNIQUE KEY, MovieLength REAL DEFAULT 60, FilmType VARCHAR(50) StudioID INTEGER, CHECK (MovieWebsite LIKE "www.%.gr") ); 19

Αναφορική Ακεραιότητα Τν πξσηεύνλ θιεηδί θαη ηα μέλα θιεηδηά κπνξνύλ λα νξηζηνύλ σο κέξνο ηεο SQL δήισζεο create table: Ο όξνο primary key ηεο δήισζεο create table πεξηιακβάλεη ηε ιίζηα ησλ γλσξηζκάησλ πνπ ζπλζέηνπλ ην πξσηεύνλ θιεηδί O όξνο foreign key ηεο δήισζεο create table πεξηιακβάλεη θαη κηα ιίζηα κε ηα γλσξίζκαηα πνπ ζπλζέηνπλ ην μέλν θιεηδί θαη ην όλνκα ηεο ζρέζεο ζηελ νπνία αλαθέξεηαη ην μέλν θιεηδί 20

Αναφορική Ακεραιότητα Εφαρμογή CREATE TABLE STARS ( StarID INTEGER AUTO_INCREMENT, StarName VARCHAR(50) NOT NULL, StarAddress VARCHAR(100), PRIMARY KEY (StarID) ); CREATE TABLE STUDIOS ( StudioID INTEGER AUTO_INCREMENT, StudioName VARCHAR(50) NOT NULL, StudioAddress VARCHAR(100), PRIMARY KEY (StudioID) ); 21

Αναφορική Ακεραιότητα Σπκπαξαζπξόκελεο ελέξγεηεο [CONSTRAINT [symbol]] FOREIGN KEY REFERENCES tbl_name (col_name,...) [ON DELETE CASCADE] [ON UPDATE CASCADE] Λόγσ ηνπ όξνπ on delete cascade, ε δηαγξαθή κηαο πιεηάδαο ζηνλ βαζηθό πίλαθα (parent table) νδεγεί ζε παξαβίαζε ηνπ πεξηνξηζκνύ αλαθνξηθήο αθεξαηόηεηαο ζηνλ πίλαθα πνπ πεξηιακβάλεη ην μέλν θιεηδί (child table). Η δηαγξαθή ζα κεηαθεξζεί δηαδνρηθά, δηαγξάθνληαο ηηο αληίζηνηρεο πιεηάδεο ηνπ child table Παξόκνηα ζηελ πεξίπησζε ηνπ on update cascade γηα ηελ πεξίπησζε ελεκέξσζεο ηνπ parent table 22

Απλοί Περιορισμοί Ακεραιότητας Εφαρμογή CREATE TABLE MOVIES ( MovieID INTEGER AUTO_INCREMENT, MovieTitle VARCHAR(80) NOT NULL, MovieWebsite VARCHAR(100) UNIQUE KEY, MovieLength REAL DEFAULT 60, FilmType VARCHAR(50), StudioID INTEGER, CHECK (MovieWebsite LIKE "www.%.gr ), PRIMARY KEY (MovieID), FOREIGN KEY (StudioID) REFERENCES STUDIOS(StudioID) ON UPDATE CASCADE ΟΝ DELETE CASCADE ); 23

Απλοί Περιορισμοί Ακεραιότητας Εφαρμογή CREATE TABLE STARS_IN ( MovieID INTEGER, StarID INTEGER, StarringSequence SMALLINT, PRIMARY KEY (MovieID,StarID), FOREIGN KEY (StarID) REFERENCES STARS(StarID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (MovieID) REFERENCES MOVIES(MovieID) ON UPDATE CASCADE ON DELETE CASCADE ); 24

Interview Question Πνηα ε δηαθνξά κεηαμύ Primary θαη Unique key; Primary Key Γελ δέρεηαη θελέο ηηκέο (NOT NULL by default) Υπάξρεη κόλν έλα primary key γηα θάζε πίλαθα Τν πξσηεύνλ θιεηδί επηηξέπεη θάζε πιεηάδα ελόο πίλαθα λα πξνζδηνξίδεηαη κνλαδηθά θαη δηαζθαιίδεη ηε κε ύπαξμε ηαπηόζεκσλ πιεηάδσλ Δπί ηνπ πξσηεύνληνο θιεηδηνύ δεκηνπξγείηαη clustered index* Unique Key Γέρεηαη θελέο ηηκέο Μπνξεί λα ππάξρνπλ πεξηζζόηεξα ηνπ ελόο Unique keys ζε έλαλ πίλαθα Έλαο πεξηνξηζκόο unique key ρξεζηκνπνηείηαη γηα λα απνηξέςεη δηπιόηηκεο εγγξαθέο γηα ηε ζηήιε ηνπ θιεηδηνύ εληόο ησλ πιεηάδσλ ελόο πίλαθα Δπί ελόο Unique keys δεκηνπξγείηαη Non clustered index* (* ζα εμεηαζηνύλ ζε επόκελν εμάκελν) 25

Σύνθετοι Περιορισμοί Ακεραιότητας Υπνζέηνπκε ηνπο αθόινπζνπο πεξηνξηζκνύο ζην ζελάξην εθαξκνγήο γηα ηε ζηήιε StarringSequence Τν πεδίν StarringSequence ζα πξέπεη λα ιακβάλεη ηηκέο >0 Γελ επηηξέπεηαη δύν πξσηαγσληζηέο ζηελ ίδηα ηαηλία λα έρνπλ ηελ ίδηα ηηκή ζην πεδίν απηό Γελ επηηξέπεηαη λα ππάξρεη εγγξαθή κε ηηκή k ζην πεδίν, όηαλ νη πξσηαγσληζηέο ηεο ηαηλίαο είλαη ιηγόηεξνη από θ ζα εμεηαζηνύλ ζην ηειεπηαίν εξγαζηήξην όπνπ ζα πινπνηεζνύλ κε ηε ρξήζε triggers 26

Παραλλαγές Εντολών Δημιουργίας Πινάκων CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_option] select_statement Παξάδεηγκα CREATE TABLE Studios_clone SELECT * FROM Studios; CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name (LIKE old_tbl_name) } Παξάδεηγκα CREATE TABLE Studios_clone2 LIKE Studios; 27

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 28

Εισαγωγή Δεδομένων INSERT [LOW_PRIORITY DELAYED HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr DEFAULT},...),(...),... LOW PRIORITY: ε εθηέιεζε ηεο εηζαγσγήο ζα θαζπζηεξήζεη έσο όηνπ θαλείο client δε δηαβάδεη από ηνλ πίλαθα. Η επηινγή απηή κπνξεί λα «παξνπιίζεη» ηνλ client πνπ εξγαδόκαζηε γηα κεγάιν ρξνληθό δηάζηεκα (κόλν γηα ηηο MyISAM, Memory, Merge storage engines) DELAYED: O server ηνπνζεηεί ηηο πξνο εηζαγσγή πιεηάδεο ζε θάπνηνλ εληακηεπηή (buffer) θαη ν client πνπ ππέβαιε ηελ εληνιή κπνξεί ακέζσο κεηά λα ζπλερίζεη κε επόκελεο εληνιέο HIGH PRIOTIRY: Παξαθάκπηεη ηελ επηινγή low-priority- updates ηνπ server (κόλν γηα ηηο MyISAM, Memory, Merge storage engines) IGNORE: ηα ιάζε πνπ ελδερνκέλσο λα εκθαληζηνύλ θαηά ηελ εθηέιεζε ηεο εηζαγσγήο αληηκεησπίδνληαη σο πξνεηδνπνηήζεηο (warnings) 29

Εισαγωγή Δεδομένων - Εφαρμογή Παξαδείγκαηα εηζαγσγώλ INSERT INTO STUDIOS (StudioName,StudioAddress)VALUES ("UNIVERSAL", "135 AV. Street C."); INSERT INTO STUDIOS (StudioName,StudioAddress)VALUES ("WARNER BROS.", "100 AZ. Street U."); INSERT INTO STUDIOS (StudioName,StudioAddress) VALUES ("COLUMBIA PICTURES", "102 AQ.Street F."); INSERT INTO MOVIES (MovieTitle,MovieWebsite,MovieLength,Film Type,StudioID) VALUES ("ROCKYI","www.rockyI.gr",125.3,"ACTION MOVIE", 1); INSERT INTO MOVIES (MovieTitle,MovieWebsite,MovieLength,Film Type,StudioID) VALUES ("ROCKYII","www.rockyII.gr",132.5,"ACTION MOVIE", 1); INSERT INTO MOVIES (MovieTitle,MovieWebsite,MovieLength,Film Type,StudioID) VALUES ("ROCKYIII","www.rockyIII.gr",122.5,"ACTI ON MOVIE", 1); 30

Ενημέρωση - Διαγραφή Δεδομένων UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1...} [, col_name2={expr2...}]... [WHERE where_condition] DELETE [LOW_PRIORITY] [IGNORE] tbl_name, tbl_name... FROM table_references [WHERE where_condition] Παξαδείγκαηα UPDATE MOVIES SET MovieLength=MovieLength*2 WHERE FilmType LIKE "%HORROR%"; DELETE FROM STUDIOS WHERE StudioName = "UNIVERSAL"; 31

Τροποποίηση - Διαγραφή Πίνακα ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification]... alter_specification: table_option... ADD DROP DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name Παξαδείγκαηα Σηε ζρέζε Stars πξνζζέηνπκε κηα ζηήιε (αληινύκελε) κε ηνλ αξηζκό ησλ ηαηληώλ πνπ έρεη ιάβεη κέξνο θάζε πξσηαγσληζηήο ALTER TABLE MOVIES ADD COLUMN (NoOfMovies SMALLINT); Γηαγξάθνπκε ηνπο θιώλνπο DROP TABLE IF EXISTS STUDIOS_CLONE, STUDIOS_CLONE2; 32

Περιεχόμενα Σύλδεζε κε ηα πξνεγνύκελα Πεξηγξαθή Σελαξίνπ Δθαξκνγήο Γεκηνπξγία Πηλάθσλ Οξηζκόο Τύπσλ Γεδνκέλσλ Δπηβνιή Καλόλσλ Αθεξαηόηεηαο Δηζαγσγή Τξνπνπνίεζε ΒΓ Γεκηνπξγία Όςεσλ 33

Δημιουργία - Διαγραφή Όψης CREATE [OR REPLACE] VIEW view_name [(column_list...)] AS select_statement DROP VIEW [IF EXISTS] view_name Παξάδεηγκα Αο ππνζέζνπκε πσο ζέινπκε λα ζπκπεξηιάβνπκε ζε έλα view ηηο ηαηλίεο καδί κε ην όλνκα ηνπ Studio παξαγσγήο ηνπο CREATE OR REPLACE VIEW Movies_Studio AS SELECT MovieID, MovieTitle, MovieWebsite, MovieLength, FilmType, StudioName FROM Movies M, Studios S WHERE M.StudioID=S.StudioID; DROP VIEW IF EXISTS Movies_Studio ; 34

Πηγές περαιτέρω μελέτης http://dev.mysql.com/doc/refman/5.1/en/create-table.html http://dev.mysql.com/doc/refman/4.1/en/data-types.html http://dev.mysql.com/doc/refman/5.1/en/insert.html http://dev.mysql.com/doc/refman/5.0/en/update.html http://dev.mysql.com/doc/refman/5.0/en/delete.html http://dev.mysql.com/doc/refman/5.1/en/alter-table.html http://dev.mysql.com/doc/refman/5.1/en/drop-table.html http://dev.mysql.com/doc/refman/5.0/en/create-view.html http://dev.mysql.com/doc/refman/5.0/en/drop-view.html 35