SlideShare a Scribd company logo
Άσκηση 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

PPT
PPT
PPT
Κεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
PDF
Λειτουργικά Συστήματα ΕΠΑΛ (Εργαστήριο) - Αποθήκευση Δεδομένων & Λήψη Εφεδρικ...
PDF
05 - SQL (μέρος 3)
PPTX
Microsoft Access Θεωρία 3/6
PPT
PPT
Κεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
Λειτουργικά Συστήματα ΕΠΑΛ (Εργαστήριο) - Αποθήκευση Δεδομένων & Λήψη Εφεδρικ...
05 - SQL (μέρος 3)
Microsoft Access Θεωρία 3/6

Similar to SQL6v1 (20)

PPTX
Microsoft Access Θεωρία 1/6
PPTX
Παραδείγματα SQL
PPTX
C6 3 Tables
PPTX
C6 5 Table Relationships
PDF
03 - SQL (μέρος 1)
PPT
PPTX
C6 8 M1 Queries
PDF
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
PPTX
C 6 2 basic constructive elements and main objects of a database
PPTX
C 6 1&2 introduction to data bases
PPTX
C6 6 Creation and Deletion of Relationships
PDF
Access2010
PDF
Access2010
PDF
Προηγμένα θέματα βάσεων δεδομένων. Διάλεξη 7
PDF
06 - Ευρετήρια και Όψεις
PPT
PPT
PDF
04 - SQL (μέρος 2)
PPTX
C6 6 extra operations of tables
PDF
mySQL Workbench Guide (στα Ελληνικά)
Microsoft Access Θεωρία 1/6
Παραδείγματα SQL
C6 3 Tables
C6 5 Table Relationships
03 - SQL (μέρος 1)
C6 8 M1 Queries
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
C 6 2 basic constructive elements and main objects of a database
C 6 1&2 introduction to data bases
C6 6 Creation and Deletion of Relationships
Access2010
Access2010
Προηγμένα θέματα βάσεων δεδομένων. Διάλεξη 7
06 - Ευρετήρια και Όψεις
04 - SQL (μέρος 2)
C6 6 extra operations of tables
mySQL Workbench Guide (στα Ελληνικά)
Ad

More from Yanis Manaras (20)

PPT
Webclass admin 4
PPT
What iswebclass 4
PPT
Webclass teacher 4
PPT
Webclass student 4
PPT
Webclass Student
PPTX
Ads 1 fibonacci
PPTX
Ads 1 alt_e
PPTX
Ads 1 common
PPTX
HTML and Javascript
PPTX
Signals
PPT
ΛΣ2_IPC
PPT
ΛΣ1-002
PPTX
Processes
PPT
ΛΣ1-001
PPTX
PPTX
PPT
PPT
ΛΣ1FILES1v0
PPT
ΛΣ1FILES2v0
PPT
ΛΣ2SEMAPHORESv0
Webclass admin 4
What iswebclass 4
Webclass teacher 4
Webclass student 4
Webclass Student
Ads 1 fibonacci
Ads 1 alt_e
Ads 1 common
HTML and Javascript
Signals
ΛΣ2_IPC
ΛΣ1-002
Processes
ΛΣ1-001
ΛΣ1FILES1v0
ΛΣ1FILES2v0
ΛΣ2SEMAPHORESv0
Ad

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)