SlideShare a Scribd company logo
1 of 7
Άσκηση 7
Γ. Μανάρας, Κ. Μουχλιανίτη
1
 Indices
 Foreign keys
2
 Indices (=ευρετήρια ή δευτερεύοντα κλειδιά)
 Επιταχύνουν τη διαδικασία ανάκτησης των επιθυμητών δεδομένων
 Δημιουργούμε σε στήλες τις οποίες χρησιμοποιούμε συνέχεια για αναζήτηση δεδομένων
 Η προσθήκη ευρετηρίων πρέπει να γίνεται με σύνεση γιατί μπορεί να δημιουργήσει
σοβαρά προβλήματα, όπως
◦ η χρήση υπερβολικού αποθηκευτικού χώρου
◦ μεγάλος φόρτος εργασίας στη βάση αφού κάθε νέα καταχώρηση στον πίνακα απαιτεί την
ανανέωση ή και ταξινόμηση του ευρετηρίου.
3
sid name semeste
r
age did
121 Steve A 33 1
145 Graham B 45 1
646 Yanis A 37 2
756 Pye B 28 2
152 George B 33 1
sid
121
145
152
646
756
Δημιουργία Index
1. create table table_name(column1 column1_type, column2 column2_type, ……, index
index_name (column_name1, column_name2,…), index index_name(…),…);
2. create index index_name on table_name (column_name);
Παράδειγμα: create index schoolNameInd on school(name);
3. alter table table_name add index (column_name);
Παράδειγμα: alter table school add index(name);
Διαγραφή Index
1. drop index schoolNameInd on school;
2. alter table school drop index schoolNameInd;
4
 Το foreign key είναι λογικός περιορισμός.
 Η προκαθορισμένη μηχανή αποθήκευσης MyIsam έχει πολύ μεγάλη ταχύτητα,
αλλά δεν υποστηρίζει τα foreign keys.
 show table status;
 Alter table table_Name ENGINE=InnoDB;
 Δοκιμάστε να προσθέσετε την παρακάτω εγγραφή στον πίνακα dept
insert into dept(did, name, scid) values(100, 'cs2‘, 512);
Τι παρατηρείτε?
5
Δημιουργία foreign key
1. create table table_name1(column1 column1_type, column2 column2_type, ……, foreign
key (column_name) references table_name2 (column_name) on delete cascade)
2. alter table table_name1 add foreign key (column_name) references table_name2
(column_name) on delete cascade;
3. alter table table_name1 add constraint constraint_name foreign key (column_name)
references table_name2 (column_name) on delete cascade;
3. Κάνετε foreign key το πεδίο που συνδέει τους πίνακες school και dept
alter table dept add foreign key(scid) references school(scid)
on delete cascade;
 Ο όρος “on delete cascade” είναι προαιρετικός και λέει στη βάση ότι όταν σβηστεί
ένα πεδίο από τον πίνακα school, θα σβηστούν και τα αντίστοιχα πεδία από τον πίνακα
dept.
6
 Δοκιμάστε τώρα να καταχωρήσετε την εγγραφή
insert into dept(did, name, scid) values(101, 'cs3‘, 1025);
Τι παρατηρείτε?
Διαγραφή foreign key
Για να διαγράψουμε το Foreign key πρέπει να ξέρουμε το όνομά του. Η
show create table dept;
επιστρέφει την εντολή “create table” που θα χρησιμοποιούσαμε
για να δημιουργήσουμε τον πίνακα dept στην τρέχουσα κατάστασή του, από όπου
μπορούμε να δούμε το όνομα που έχει δοθεί στο foreign key.
alter table table_name drop foreign key fkeyΝame;
Παράδειγμα: alter table dept drop foreign key fKeyName;
ΑΣΚΗΣΗ: Κάνετε foreign key το πεδίο που συνδέει τους πίνακες
dept και student
7
Foreign keys(3)Foreign keys(3)

More Related Content

More from Yanis Manaras (20)

Webclass admin 4
Webclass admin 4Webclass admin 4
Webclass admin 4
 
What iswebclass 4
What iswebclass 4What iswebclass 4
What iswebclass 4
 
Webclass teacher 4
Webclass teacher 4Webclass teacher 4
Webclass teacher 4
 
Webclass student 4
Webclass student 4Webclass student 4
Webclass student 4
 
Webclass Student
Webclass StudentWebclass Student
Webclass Student
 
Ads 1 fibonacci
Ads 1 fibonacciAds 1 fibonacci
Ads 1 fibonacci
 
Ads 1 alt_e
Ads 1 alt_eAds 1 alt_e
Ads 1 alt_e
 
Ads 1 common
Ads 1 commonAds 1 common
Ads 1 common
 
HTML and Javascript
HTML and JavascriptHTML and Javascript
HTML and Javascript
 
Signals
SignalsSignals
Signals
 
ΛΣ2_IPC
ΛΣ2_IPCΛΣ2_IPC
ΛΣ2_IPC
 
ΛΣ1-002
ΛΣ1-002ΛΣ1-002
ΛΣ1-002
 
Processes
ProcessesProcesses
Processes
 
ΛΣ1-001
ΛΣ1-001ΛΣ1-001
ΛΣ1-001
 
SE5
SE5SE5
SE5
 
SE4
SE4SE4
SE4
 
SQL7v2
SQL7v2SQL7v2
SQL7v2
 
SQL9v0
SQL9v0SQL9v0
SQL9v0
 
SQL8v1
SQL8v1SQL8v1
SQL8v1
 
ΛΣ1FILES1v0
ΛΣ1FILES1v0ΛΣ1FILES1v0
ΛΣ1FILES1v0
 

Recently uploaded

εργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxεργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptx
Effie Lampropoulou
 

Recently uploaded (14)

Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
ΧΑΝΟΣ ΚΡΟΥΜΟΣ-ΒΑΣΙΛΙΑΣ ΝΙΚΗΦΟΡΟΣ,ΚΡΙΣΤΙΝΑ ΚΡΑΣΤΕΒΑ
ΧΑΝΟΣ ΚΡΟΥΜΟΣ-ΒΑΣΙΛΙΑΣ ΝΙΚΗΦΟΡΟΣ,ΚΡΙΣΤΙΝΑ ΚΡΑΣΤΕΒΑΧΑΝΟΣ ΚΡΟΥΜΟΣ-ΒΑΣΙΛΙΑΣ ΝΙΚΗΦΟΡΟΣ,ΚΡΙΣΤΙΝΑ ΚΡΑΣΤΕΒΑ
ΧΑΝΟΣ ΚΡΟΥΜΟΣ-ΒΑΣΙΛΙΑΣ ΝΙΚΗΦΟΡΟΣ,ΚΡΙΣΤΙΝΑ ΚΡΑΣΤΕΒΑ
 
εργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxεργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptx
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 
Ο εκχριστιανισμός των Σλάβων, Άγγελος Δόσης
Ο εκχριστιανισμός των Σλάβων, Άγγελος ΔόσηςΟ εκχριστιανισμός των Σλάβων, Άγγελος Δόσης
Ο εκχριστιανισμός των Σλάβων, Άγγελος Δόσης
 
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗΗ ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
 
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
 
ΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥ
ΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥ
ΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥ
 
Η ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣ
Η ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣΗ ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣ
Η ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣ
 
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
 
Σχέσεις στην εφηβεία_έρωτας
Σχέσεις                     στην εφηβεία_έρωταςΣχέσεις                     στην εφηβεία_έρωτας
Σχέσεις στην εφηβεία_έρωτας
 

SQL6v1

  • 1. Άσκηση 7 Γ. Μανάρας, Κ. Μουχλιανίτη 1
  • 3.  Indices (=ευρετήρια ή δευτερεύοντα κλειδιά)  Επιταχύνουν τη διαδικασία ανάκτησης των επιθυμητών δεδομένων  Δημιουργούμε σε στήλες τις οποίες χρησιμοποιούμε συνέχεια για αναζήτηση δεδομένων  Η προσθήκη ευρετηρίων πρέπει να γίνεται με σύνεση γιατί μπορεί να δημιουργήσει σοβαρά προβλήματα, όπως ◦ η χρήση υπερβολικού αποθηκευτικού χώρου ◦ μεγάλος φόρτος εργασίας στη βάση αφού κάθε νέα καταχώρηση στον πίνακα απαιτεί την ανανέωση ή και ταξινόμηση του ευρετηρίου. 3 sid name semeste r age did 121 Steve A 33 1 145 Graham B 45 1 646 Yanis A 37 2 756 Pye B 28 2 152 George B 33 1 sid 121 145 152 646 756
  • 4. Δημιουργία Index 1. create table table_name(column1 column1_type, column2 column2_type, ……, index index_name (column_name1, column_name2,…), index index_name(…),…); 2. create index index_name on table_name (column_name); Παράδειγμα: create index schoolNameInd on school(name); 3. alter table table_name add index (column_name); Παράδειγμα: alter table school add index(name); Διαγραφή Index 1. drop index schoolNameInd on school; 2. alter table school drop index schoolNameInd; 4
  • 5.  Το foreign key είναι λογικός περιορισμός.  Η προκαθορισμένη μηχανή αποθήκευσης MyIsam έχει πολύ μεγάλη ταχύτητα, αλλά δεν υποστηρίζει τα foreign keys.  show table status;  Alter table table_Name ENGINE=InnoDB;  Δοκιμάστε να προσθέσετε την παρακάτω εγγραφή στον πίνακα dept insert into dept(did, name, scid) values(100, 'cs2‘, 512); Τι παρατηρείτε? 5
  • 6. Δημιουργία foreign key 1. create table table_name1(column1 column1_type, column2 column2_type, ……, foreign key (column_name) references table_name2 (column_name) on delete cascade) 2. alter table table_name1 add foreign key (column_name) references table_name2 (column_name) on delete cascade; 3. alter table table_name1 add constraint constraint_name foreign key (column_name) references table_name2 (column_name) on delete cascade; 3. Κάνετε foreign key το πεδίο που συνδέει τους πίνακες school και dept alter table dept add foreign key(scid) references school(scid) on delete cascade;  Ο όρος “on delete cascade” είναι προαιρετικός και λέει στη βάση ότι όταν σβηστεί ένα πεδίο από τον πίνακα school, θα σβηστούν και τα αντίστοιχα πεδία από τον πίνακα dept. 6
  • 7.  Δοκιμάστε τώρα να καταχωρήσετε την εγγραφή insert into dept(did, name, scid) values(101, 'cs3‘, 1025); Τι παρατηρείτε? Διαγραφή foreign key Για να διαγράψουμε το Foreign key πρέπει να ξέρουμε το όνομά του. Η show create table dept; επιστρέφει την εντολή “create table” που θα χρησιμοποιούσαμε για να δημιουργήσουμε τον πίνακα dept στην τρέχουσα κατάστασή του, από όπου μπορούμε να δούμε το όνομα που έχει δοθεί στο foreign key. alter table table_name drop foreign key fkeyΝame; Παράδειγμα: alter table dept drop foreign key fKeyName; ΑΣΚΗΣΗ: Κάνετε foreign key το πεδίο που συνδέει τους πίνακες dept και student 7 Foreign keys(3)Foreign keys(3)