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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

2 Είναι τμήματα προγράμματος Βάσης Δεδομένων (διαδικασίες\procedures ή συναρτήσεις\functions) που αποθηκεύονται μόνιμα και εκτελούνται στον διακομιστή της Βάσης Δεδομένων. Δρ. Κεραμόπουλος Ευκλείδης 2

3 Οι αποθηκευμένες διαδικασίες είναι προγράμματα τα οποία έχουν τα παρακάτω χαρακτηριστικά: Αποθηκεύονται και τρέχουν στον διακομιστή της Βάσης. Καλούνται με το όνομα τους από οποιαδήποτε εφαρμογή συνδεθεί με τη Βάση. Η εφαρμογή μπορεί να χωριστεί σε δύο μέρη: Η εφαρμογή τρέχει στον πελάτη Η αποθηκευμένη διαδικασία στον διακομιστή. Περιέχει προγραμματιστικές εντολές (if, loops) αλλά ταυτόχρονα μπορεί να χειριστεί SQL κώδικα. Δρ. Κεραμόπουλος Ευκλείδης 3

4 Οι αποθηκευμένες διαδικασίες μπορούν να έχουν την παρακάτω χρήση: Για έλεγχο πολύπλοκων περιορισμών. Για απόκρυψη του κώδικα της διαδικασίας. Για δημιουργία βιβλιοθήκης έτοιμων συναρτήσεων στον διακομιστή. Για δημιουργία Data Web Services με βάση τις αποθηκευμένες διαδικασίες. Δρ. Κεραμόπουλος Ευκλείδης 4

5 Βελτιώνουν την ασφάλεια του DBMS. Υποστηρίζουν το «κρύψιμο» (encapsulation) του κώδικα τους, και με σωστό σχεδιασμό και συστηματική χρήση τους είναι δυνατόν να εξαφανιστεί η δομή της βάσης από τους χρήστες. Δρ. Κεραμόπουλος Ευκλείδης 5

6 Βελτιώνει την ταχύτητα απόκρισης του εξυπηρετητή της Βάσης. Αυτό οφείλεται στο ότι είναι προμεταγλωττισμένες (precompiled) και έτσι εκτελούνται γρηγορότερα. Δρ. Κεραμόπουλος Ευκλείδης 6

7 Επίσης, αντικαθιστώντας ένα σύνολο SQL εντολών με την κλήση μιας συνάρτησης που περιέχει όλες αυτές τις SQL εντολές, «ελαφρύνει» την κίνηση στο δίκτυο μεταξύ πελάτη και διακομιστή. Για παράδειγμα, αν η συνάρτηση περιέχει 10 SQL εντολές τότε αν εκτελέσουμε ξεχωριστά κάθε SQL εντολή στον πελάτη θα έχουμε 10 κλήσεις της βάσης στον εξυπηρετητή ενώ αν όλες οι SQL εντολές έχουν οργανωθεί σε μία καταχωρημένη διεργασία τότε θα απαιτείται μία κλήση της βάσης στον εξυπηρετητή. Δρ. Κεραμόπουλος Ευκλείδης 7

8 Ο τρόπος υλοποίησης μιας αποθηκευμένης διαδικασίας μπορεί να διαφέρει από ΣΔΒΔ σε ΣΔΒΔ. Μία αποθηκευμένη διαδικασία μπορεί να υλοποιηθεί εσωτερικά στο ΣΔΒΔ με χρήση SQL εντολών και ονομάζεται SQL Stored procedure εξωτερικά σε μία γλώσσα προγραμματισμού. Δρ. Κεραμόπουλος Ευκλείδης 8

9 Οι SQL συναρτήσεις εκτελούν μία λίστα από SQL εντολές. Στην απλή περίπτωση επιστρέφουν την πρώτη γραμμή (εγγραφή) του αποτελέσματος της τελευταίας εντολής. Υπάρχει η δυνατότητα να επιστρέψουν και μία συλλογή από γραμμές του αποτελέσματος. Αν η τελευταία εντολή δεν επιστρέφει καθόλου εγγραφές επιστρέφεται η τιμή void. Το σώμα μιας SQL συνάρτησης πρέπει να είναι μια λίστα μιας ή περισσότερων εντολών SQL, χωρισμένων με ερωτηματικό (;). Δρ. Κεραμόπουλος Ευκλείδης 9

10

11 create function createdb() returns void AS $$ create table Sailors (sid integer not null, sname varchar(15), rating integer, age real, primary key(sid)); create table Boats (bid integer not null, bname char(20), color char(20), primary key(bid), constraint b_color check (color in ( 'red', 'green', 'blue', 'yellow')) ); create table Reserves (sid integer not null, bid integer not null, day1 date not null, primary key (sid, bid, day1), constraint r_sid foreign key(sid) references Sailors on delete cascade on update cascade, constraint r_bid foreign key(bid) references boats on delete cascade on update cascade); $$ LANGUAGE SQL; Δρ. Κεραμόπουλος Ευκλείδης 11

12 Η κλήση μίας συνάρτησης γίνεται ως SELECT αίτημα με κλήση της συνάρτησης. Παράδειγμα SELECT CREATEDB(); Δρ. Κεραμόπουλος Ευκλείδης 12

13 create function dropdb() returns void AS $$ drop table Reserves; drop table Sailors; drop table Boats; $$ LANGUAGE SQL; SELECT dropdb(); Δρ. Κεραμόπουλος Ευκλείδης 13

14 create function insertdb() returns void AS $$ insert into Sailors (sid, sname, rating, age) values (22, 'Dustin', 7, 45.0); insert into Sailors (sid, sname, rating, age) values (29, 'Brutus', 1, 33.0); insert into Sailors (sid, sname, rating, age) values (31, 'Lubber', 8, 55.5); insert into Sailors (sid, sname, rating, age) values (32, 'Andy', 8, 25.5); insert into Sailors (sid, sname, rating, age) values (58, 'Rusty', 10, 35.0); insert into Sailors (sid, sname, rating, age) values (64, 'Horatio', 7, 35.0); insert into Sailors (sid, sname, rating, age) values (71, 'Zorba', 10, 16.0); insert into Sailors (sid, sname, rating, age) values (74, 'Horatio', 9, 40.0); insert into Sailors (sid, sname, rating, age) values (85, 'Art', 3, 25.5); insert into Sailors (sid, sname, rating, age) values (95, 'Bob', 3, 63.5); insert into Boats (bid, bname, color) values (101, 'Interlake', 'blue'); insert into Boats (bid, bname, color) values (102, 'Interlake', 'red'); insert into Boats (bid, bname, color) values (103, 'Clipper', 'green'); insert into Boats (bid, bname, color) values (104, 'Marine', 'red ); Δρ. Κεραμόπουλος Ευκλείδης 14

15 insert into Reserves (sid, bid, day1) values (22, 101, date ' '); insert into Reserves (sid, bid, day1) values (22, 102, date ' '); insert into Reserves (sid, bid, day1) values (22, 103, ' '); insert into Reserves (sid, bid, day1) values (22, 104, date ' '); insert into Reserves (sid, bid, day1) values (31, 102, date ' '); insert into Reserves (sid, bid, day1) values (31, 103, date ' '); insert into Reserves (sid, bid, day1) values (31, 104, date ' '); insert into Reserves (sid, bid, day1) values (64, 101, date ' '); insert into Reserves (sid, bid, day1) values (64, 102, date ' '); insert into Reserves (sid, bid, day1) values (74, 103, date ' '); $$ LANGUAGE SQL; SELECT insertdb(); Δρ. Κεραμόπουλος Ευκλείδης 15

16 Επιστρέφουν ένα απλό βασικό τύπο. π.χ. ακέραιο, αλφαριθμητικό, κτλ. CREATE FUNCTION add_em(integer, integer) RETURNS integer AS $$ SELECT $1 + $2; $$ LANGUAGE SQL; SELECT add_em(1, 2) AS answer; Η στήλη του αποτελέσματος θα έχει όνομα answer. Αν παραληφθεί το AS answer τότε το όνομα του αποτελέσματος θα είναι το όνομα της συνάρτησης. Δρ. Κεραμόπουλος Ευκλείδης 16

17 Ένα σύνολο διαφορετικών τύπων SQL εντολών μπορεί να ομαδοποιηθεί σε μία συνάρτηση. Εκτός από SELECT εντολές μπορούν να συμπεριληφθούν και οι INSERT, UPDATE και DELETE. Η τελευταία εντολή, όμως, θα πρέπει να είναι μία SELECT της οποίας το αποτέλεσμά της θα είναι και η επιστρεφόμενη τιμή της συνάρτηση. Αν πάλι, δε θέλουμε να μας επιστραφεί καμία τιμή τότε θα βάλουμε σαν επιστρεφόμενο τύπο της συνάρτηση το void. Σε αυτή την περίπτωση η τελευταία εντολή δε θα πρέπει να είναι SELECT. Δρ. Κεραμόπουλος Ευκλείδης 17

18 2 ο Παράδειγμα CREATE FUNCTION tf1 (integer, numeric) RETURNS numeric AS $$ UPDATE bank SET balance = balance - $2 WHERE accountno = $1; SELECT balance FROM bank WHERE accountno = $1; $$ LANGUAGE SQL; SELECT tf1(17, 100.0); Δρ. Κεραμόπουλος Ευκλείδης 18

19 CREATE FUNCTION clean_emp() RETURNS void AS $$ DELETE FROM emp WHERE salary <= 0; $$ LANGUAGE SQL; Αφού καλέσουμε την συνάρτηση clean_emp() δεν θα επιστραφεί αποτέλεσμα. Δρ. Κεραμόπουλος Ευκλείδης 19

20 Όταν ορίζουμε συναρτήσεις με παραμέτρους σύνθετων τύπων, πρέπει να προσδιορίσουμε όχι μόνο ποια παράμετρο θέλουμε (όπως κάναμε με τα $1 και $2) αλλά και τα πεδία αυτής της παραμέτρου. Δρ. Κεραμόπουλος Ευκλείδης 20

21 Στο ακόλουθο παράδειγμα ο emp είναι ένας πίνακας υπαλλήλων. Ως εκ τούτου, είναι και το όνομα του σύνθετου τύπου κάθε γραμμής του πίνακα. Η συνάρτηση double_salary υπολογίζει το διπλάσιο του μισθού κάποιου υπαλλήλου: Δρ. Κεραμόπουλος Ευκλείδης 21

22 CREATE TABLE emp ( name varchar(20) primary key, salary integer, age integer ); CREATE FUNCTION double_salary(emp) RETURNS integer AS $$ SELECT $1.salary * 2 AS salary; $$ LANGUAGE SQL; Δρ. Κεραμόπουλος Ευκλείδης 22

23 SELECT name, double_salary(emp) AS dream FROM emp WHERE emp.name = 'Maria'; ή SELECT name, double_salary(emp.*) AS dream FROM emp WHERE emp.name = 'Maria'; Δρ. Κεραμόπουλος Ευκλείδης 23

24 Όλες οι SQL συναρτήσεις μπορούν να χρησιμοποιηθούν στο τμήμα FROM ενός query. Αυτό είναι ιδιαίτερα χρήσιμο για συναρτήσεις που επιστρέφουν σύνθετους τύπους. Εάν η συνάρτηση έχει οριστεί να επιστρέφει ένα βασικό τύπο, τότε η χρήση της στη θέση πίνακα παράγει ένα μονόστηλο πίνακα. Εάν η συνάρτηση έχει οριστεί να επιστρέφει ένα σύνθετο τύπο, τότε η χρήση της στη θέση πίνακα παράγει μια στήλη για κάθε χαρακτηριστικό του σύνθετου τύπου. Δρ. Κεραμόπουλος Ευκλείδης 24

25 Π.χ. Δημιουργούμε τον πίνακα Atable και εισάγουμε τρεις εγγραφές: CREATE TABLE Atable (id int, subid int, name varchar(10)); INSERT INTO Atable VALUES (1, 1, 'Joe'); INSERT INTO Atable VALUES (1, 2, 'Ed'); INSERT INTO Atable VALUES (2, 1, 'Mary'); Δημιουργούμε την συνάρτηση: CREATE OR REPLACE FUNCTION geta(int) RETURNS Atable AS $$ SELECT * FROM Atable WHERE id = $1; $$ LANGUAGE SQL; Δρ. Κεραμόπουλος Ευκλείδης 25

26 και την καλούμε με παράμετρο την τιμή 1: SELECT * FROM geta(1) AS t1; Δρ. Κεραμόπουλος Ευκλείδης 26

27 Όταν μια SQL συνάρτηση έχει δηλωθεί να επιστρέφει SETOF κάποιου τύπου, η τελική εντολή SELECT της συνάρτησης εκτελείται μέχρι τέλους, και κάθε γραμμή που παράγει επιστρέφεται ως ένα στοιχείο του συνόλου αποτελεσμάτων. Αυτό το χαρακτηριστικό χρησιμοποιείται κανονικά όταν η συνάρτηση καλείται στο τμήμα FROM Δρ. Κεραμόπουλος Ευκλείδης 27

28 CREATE OR REPLACE FUNCTION getb(int) RETURNS SETOF Atable AS $$ SELECT * FROM Atable WHERE id = $1; $$ LANGUAGE SQL; SELECT * FROM getb(1) AS t1; Δρ. Κεραμόπουλος Ευκλείδης 28

29

30 Η δήλωση της περιέχει κώδικα SQL και αποτελείται από τα παρακάτω: Το όνομα της αποθηκευμένης διαδικασίας Τις παραμέτρους που θα πάρει Τον τύπο κάθε παραμέτρου Το είδος της παραμέτρου (IN, OUT, INOUT) Τη γλώσσα στην οποία είναι γραμμένη, π.χ. SQL Δρ. Κεραμόπουλος Ευκλείδης 30

31 CREATE PROCEDURE ΟΝΟΜΑ ( IN ΠΑΡΑΜΕΤΡΟΣ ΤΥΠΟΣ, OUT ΠΑΡΑΜΕΤΡΟΣ ΤΥΠΟΣ, INOUT ΠΑΡΑΜΕΤΡΟΣ ΤΥΠΟΣ ) LANGUAGE SQL BEGIN -- END (ΣΥΜΒΟΛΟ ΤΕΛΟΥΣ) Δρ. Κεραμόπουλος Ευκλείδης 31

32 Δρ. Κεραμόπουλος Ευκλείδης 32

33 Μέσα στο σώμα μίας διαδικασίας μπορούν να περιέχονται τα παρακάτω: Δηλώσεις DECLARE <variable> DECLARE <condition> DECLARE <condition handler> DECLARE CURSOR SET Υποθετικές φράσεις CASE IF Βρόγχοι FOR REPEAT WHILE Εντολές Μεταφοράς CALL GOTO LEAVE RETURN Χειρισμός Λαθών SIGNAL Δρ. Κεραμόπουλος Ευκλείδης 33

34 Με αυτήν την εντολή δηλώνουμε μεταβλητές. Σύνταξη: DECLARE <variable-name> <datatype> [DEFAULT <value>]; Η δήλωση των μεταβλητών είναι τοπική. Οι μεταβλητές δεν είναι case sensitive γιατί μετατρέπονται σε κεφαλαία τα γράμματα τους Πρέπει να δηλωθούν πριν χρησιμοποιηθούν. Μπορεί να δηλωθεί μία default τιμή. Για να μεταβληθεί η τιμή μια μεταβλητής μετά τη δήλωση πρέπει να χρησιμοποιηθεί η εντολή SET. Δρ. Κεραμόπουλος Ευκλείδης 34

35 Με αυτήν την εντολή δηλώνουμε handlers τα οποία χρησιμοποιούμε για να χειριζόμαστε ειδικά μπλοκ εντολών. Δήλωση: DECLARE CONTINUE EXIT UNDO HANDLER FOR <condition> <SQL PL statement or block>; Τρεις τύποι handler υποστηρίζονται: EXIT, συνεχίζει την εκτέλεση των εντολών από την επόμενη εντολή από το σημείο που δηλώθηκε το handler CONTINUE, συνεχίζει την εκτέλεση των εντολών από την επόμενη εντολή από το σημείο που βρέθηκε το exception UNDO, συνεχίζει την εκτέλεση των εντολών από την επόμενη εντολή από το σημείο που δηλώθηκε το handler και ακυρώνει τις εντολές που εκτελέστηκαν μέσα στο handler. Δρ. Κεραμόπουλος Ευκλείδης 35

36 Με την declare condition προγραμματίζουμε τι θα γίνει όταν συμβεί μία συνθήκη. π.χ Δήλωση: 1) a condition handler: DECLARE CONTINUE EXIT UNDO HANDLER FOR SQLSTATE '<state>'... 2) a named condition: DECLARE <condition-name> CONDITION FOR SQLSTATE [VALUE] '<sqlstate>'; DECLARE CONTINUE HANDLER FOR NOT FOUND set cursor_end = 1; Τρεις τύποι condition handler υποστηρίζονται: 1. SQLEXCEPTION 2. SQLWARNING 3. NOT FOUND Δρ. Κεραμόπουλος Ευκλείδης 36

37 Χρησιμοποιείται για τη δήλωση ενός cursor. Δήλωση: DECLARE <cursorname> CURSOR [WITH HOLD] [WITH RETURN TO CALLER CLIENT] FOR <sql-statement>; WITH HOLD: O cursor κλείνει μετά από ένα commit. WITHOUT HOLD: O cursor δεν κλείνει μετά από ένα commit. Είναι το default. TO CALLER: Ο cursor επιστρέφει ένα result set στην procedure ή στο πρόγραμμα που κάλεσε τη διαδικασία. Είναι το default. TO CLIENT: Ο cursor επιστρέφει ένα result set μόνο σε πρόγραμμα client που κάλεσε τη διαδικασία. Δρ. Κεραμόπουλος Ευκλείδης 37

38 Με τη χρήση του SET παίρνουν τιμές οι μεταβλητές. Παραδείγματα: set v_string = NULL; set v_string = 'ABCDEF'; set v_date = current date; set v_var01 = v_var01 + 1; set v_var02 = v_var ; set (v_col1, v_col2) = (select col1, col2 from mytab fetch first 1 rows only); Αν δεν ζητήσουμε μόνο μία γραμμή να επιστρέψει θα δώσει λάθος. set v_var02 = (select count(*) from mytab); Δρ. Κεραμόπουλος Ευκλείδης 38

39 Η εντολή CASE χρησιμοποιείται ως μία υποθετική φράση όπου όταν ικανοποιηθεί εκτελείται η αντίστοιχη εντολή. Υπάρχουν δύο τύποι CASE: O απλός, ο οποίος στηρίζεται σε μία απλή τιμή (literal) O σύνθετος, ο οποίος στηρίζεται σε μία έκφραση (expression) Μετά το WHEN που ικανοποιεί την CASE ακολουθεί η εκτελέσιμη φράση Δρ. Κεραμόπουλος Ευκλείδης 39

40 1. CREATE PROCEDURE UPDATE_DEPT (IN p_workdept) 2. LANGUAGE SQL 3. BEGIN 4. DECLARE v_workdept CHAR(3); 5. SET v_workdept = p_workdept; 6. CASE v_workdept 7. WHEN 'A00' THEN 8. UPDATE department SET deptname = 'D1'; 9. WHEN 'B01' THEN 10. UPDATE department SET deptname = 'D2'; 11. ELSE 12. UPDATE department SET deptname = 'D3'; 13. END CASE 14. END Δρ. Κεραμόπουλος Ευκλείδης 40

41 1. CREATE PROCEDURE UPDATE_DEPT (IN p_workdept) 2. LANGUAGE SQL 3. BEGIN 4. DECLARE v_workdept CHAR(3); 5. SET v_workdept = p_workdept; 6. CASE 7. WHEN v_workdept = 'A00' THEN 8. UPDATE department SET deptname = 'D1'; 9. WHEN v_workdept = 'B01' THEN 10. UPDATE department SET deptname = 'D2'; 11. ELSE 12. UPDATE department SET deptname = 'D3'; 13. END CASE 14. END Δρ. Κεραμόπουλος Ευκλείδης 41

42 1. CREATE PROCEDURE UPDATE_SAL (IN empnum CHAR(6), IN rating SMALLINT) 2. LANGUAGE SQL 3. BEGIN 4. IF rating = 1 THEN 5. UPDATE employee SET salary = salary * 1.10, bonus = 1000 WHERE empno = empnum; 6. ELSEIF rating = 2 THEN 7. UPDATE employee SET salary = salary * 1.05, bonus = 500 WHERE empno = empnum; 8. ELSE 9. UPDATE employee SET salary = salary * 1.03, bonus = 0 WHERE empno = empnum; 10. END IF; 11. END Δρ. Κεραμόπουλος Ευκλείδης 42

43 O FOR βρόγχος χρησιμοποιείται ως ένας read-only cursor. O cursor που δηλώνεται εντός ενός FOR βρόγχου δεν μπορεί να χρησιμοποιηθεί εκτός του βρόγχου. Επίσης, χρησιμοποιούνται οι εκφράσεις OPEN, FETCH, ή CLOSE μ αυτό το είδος του cursor. Δήλωση: for <loop-name> as [<cursor-name>] cursor for <select-statement> do <inside-loop-logic> end for; Παράδειγμα: create procedure myproc begin FOR each_record AS cursor1 CURSOR FOR SELECT name, rating FROM customer DO UPDATE customer SET rating = rating * 1.1 WHERE CURRENT OF cursor1; END FOR; end! Με την φράση CURRENT OF cursor έχουμε πρόσβαση στην τρέχουσα εγγραφή Δρ. Κεραμόπουλος Ευκλείδης 43

44 REPEAT εντολες UNTIL (συνθήκη) END REPEAT Δήλωση Μεταβλητών CREATE PROCEDURE DEL_DEPT (IN deldept VARCHAR(3)) LANGUAGE SQL BEGIN DECLARE cursor_end integer default 0; DECLARE currentdept CHAR(3); Δήλωση CURSOR DECLARE mycur CURSOR FOR select DEPTNO as v_dept from DEPARTMENT where deptno = deldept; DECLARE CONTINUE HANDLER FOR NOT FOUND set cursor_end = 1; OPEN mycur; REPEAT FETCH FROM mycur INTO currentdept; delete from EMPLOYEE where workdept = currentdept; UNTIL cursor_end = 1 END REPEAT; CLOSE mycur; delete from DEPARTMENT where deptno = deldept; END! Δρ. Κεραμόπουλος Ευκλείδης 44

45 WHILE (συνθήκη) D0 εντολες END WHILE CREATE PROCEDURE DEL_DEPT (IN deldept VARCHAR(3)) LANGUAGE SQL BEGIN DECLARE currentdept CHAR(3); DECLARE SQLCODE INTEGER DEFAULT 0; DECLARE mycur CURSOR FOR select DEPTNO as v_dept from DEPARTMENT where deptno = deldept; OPEN mycur; FETCH FROM mycur INTO currentdept; WHILE (SQLCODE = 0) DO delete from EMPLOYEE where workdept = currentdept; fetch from mycur into currentdept; END WHILE; CLOSE mycur; delete from DEPARTMENT where deptno = deldept; END! Δρ. Κεραμόπουλος Ευκλείδης 45

46 Για να καλέσουμε μία διαδικασία χρησιμοποιούμε την εντολή CALL Υποστηρίζεται η αναδρομή στη κλήση διαδικασιών. Θα πρέπει όμως να είμαστε προσεκτικοί στο κλείσιμο των δρομέων. Κατά την κλήση όλες οι παράμετροι θα πρέπει να πάρουν τιμές. Οι OUT παράμετροι παίρνουν?. Παράδειγμα: CALL myproc ( <inputvalue1>, <inputvalue2>,?,? ); Δρ. Κεραμόπουλος Ευκλείδης 46

47 GOTO: Με αυτήν την εντολή μετακινούμαστε σε συγκεκριμένη ετικέτα. LEAVE: Με αυτήν την εντολή μπορούμε να βγούμε από ένα βρόγχο. RETURN: Με αυτήν την εντολή μπορούμε να επιστρέψουμε από μία αποθηκευμένη διαδικασία. Δρ. Κεραμόπουλος Ευκλείδης 47

48 SIGNAL: Αν δημιουργηθεί ένα λάθος τότε αυτόματα δημιουργείται ένα μήνυμα λάθους. Με την εντολή SIGNAL μπορούμε να ορίσουμε εμείς ένα λάθος. Δήλωση: SIGNAL SQLSTATE <sqlstate> [SET MESSAGE_TEXT '<text>' ] Παράδειγμα: create procedure myproc (in v_var01 integer) begin if v_var01 > 100 then signal SQLSTATE '70000' set message_text='the input parameter must be lower than 100!'; end if; end! Κλήση της συνάρτησης: call myproc(200); SQL0438N Application raised error with diagnostic text: "The input parameter must be lower than 100!". SQLSTATE=70000 Δρ. Κεραμόπουλος Ευκλείδης 48

49 Δρ. Κεραμόπουλος Ευκλείδης 49

50 Δρ. Κεραμόπουλος Ευκλείδης 50

51 1. CREATE PROCEDURE CREATE_OLYMPICS () 2. LANGUAGE SQL 3. BEGIN 4. CREATE TABLE VOLUNTEER ( 5. at char(10) not null primary key, 6. name char(20), 7. surname char(30), 8. gender char(6), 9. age integer); 10. CREATE TABLE STADIUM ( 11. name char(30) not null primary key, 12. capacity integer, 13. city char(20)); 14. CREATE TABLE JUDGE ( 15. code integer not null primary key, 16. name char(20), 17. surname char(30), 18. gender char(6), 19. date_of_birth date); Δρ. Κεραμόπουλος Ευκλείδης 51

52 20. CREATE TABLE TRAINER ( 21. code integer not null primary key, 22. name char(20), 23. surname char(30), 24. country_of_origin char(20)); 25. CREATE TABLE SPORT ( 26. code integer not null primary key, 27. name char(50), 28. gender char(6), 29. record float, 30. record_date date, 31. recordman_surname char(30), 32. recordman_name char(20)); 33. CREATE TABLE ATHLETE ( 34. code integer not null primary key, 35. name char(50), 36. surname char(30), 37. gender char(6), 38. date_of_birth date, 39. weight float, 40. height integer, 41. country_of_origin char(20), 42. country_of_participation char(20), 43. trainer_code integer, 44. foreign key(trainer_code) references TRAINER(code)); Δρ. Κεραμόπουλος Ευκλείδης 52

53 45. CREATE TABLE GAMES ( 46. code integer not null primary key, 47. level char(20), 48. gdate date, 49. gtime time, 50. stadium char(30) not null references STADIUM(name), 51. sport integer not null references SPORT(code), 52. judge integer not null references JUDGE(code)); 53. CREATE TABLE HELPS ( 54. game integer not null references GAMES(code), 55. volunteer char(10) not null references VOLUNTEER(at), 56. primary key(game, volunteer)); 57. CREATE TABLE PARTICIPATES ( 58. game integer not null references GAMES(code), 59. athlete integer not null references ATHLETE(code), 60. primary key(game, athlete), 61. performance float, 62. cancellation char); 63. END@ CALL CREATE_OLYMPICS() Δρ. Κεραμόπουλος Ευκλείδης 53

54 1. CREATE PROCEDURE DROP_OLYMPICS() 2. LANGUAGE SQL 3. BEGIN 4. drop TABLE PARTICIPATES; 5. drop TABLE HELPS; 6. drop TABLE GAMES; 7. drop TABLE ATHLETE; 8. drop TABLE SPORT; 9. drop TABLE TRAINER; 10. drop TABLE JUDGE; 11. drop TABLE STADIUM; 12. drop TABLE VOLUNTEER; CALL DROP_OLYMPICS() 15. DROP PROCEDURE DROP_OLYMPIC() Δρ. Κεραμόπουλος Ευκλείδης 54

55 1. CREATE PROCEDURE INSERT_OLYMPICS (IN tablename CHAR(20)) 2. LANGUAGE SQL 3. BEGIN 4. CASE 5. when tablename = 'PARTICIPATES' THEN 6. INSERT INTO PARTICIPATES (game, athlete, performance, cancellation) VALUES (4, 39, 83.14, 'Q'); 7. INSERT INTO PARTICIPATES (game, athlete, performance, cancellation) VALUES (4, 40, 83.01, 'Q'); 8. WHEN tablename = 'HELPS' THEN 9. INSERT INTO HELPS (game, volunteer) VALUES (1, 'M100902'); 10. INSERT INTO HELPS (game, volunteer) VALUES (2, 'O212754'); 11. INSERT INTO HELPS (game, volunteer) VALUES (3, 'K256984'); 12. WHEN tablename = 'ATHLETE' THEN 13. INSERT INTO ATHLETE (code, name, surname, gender, date_of_birth, weight, height, country_of_origin, country_of_participation) VALUES (1, 'Aziz', 'Zakari', 'Male', '2/9/1976', 85, 175, 'Ghana', 'Ghana'); 14. INSERT INTO ATHLETE (code, name, surname, gender, date_of_birth, weight, height, country_of_origin, country_of_participation) VALUES (2, 'Kim', 'Collins', 'Male', '5/4/1976', 77, 180, 'SKN', 'SKN'); 15. INSERT INTO ATHLETE (code, name, surname, gender, date_of_birth, weight, height, country_of_origin, country_of_participation) VALUES (3, 'Michael', 'Frater', 'Male', '6/10/1982', 73, 175, 'Jamaica', 'Jamaica'); 16. INSERT INTO ATHLETE (code, name, surname, gender, date_of_birth, weight, height, country_of_origin, country_of_participation) VALUES (4, 'Frank', 'Fredericks', 'Male', '2/10/1967', 75, 180, 'Namibia', 'Namibia'); 17. END CASE; 18. END@ call insert_olympics('athlete') Δρ. Κεραμόπουλος Ευκλείδης 55

56 1. CREATE PROCEDURE ATHLETE_EAT_A_LOT (in prsurname varchar(20)) 2. LANGUAGE SQL 3. BEGIN 4. DECLARE proc_name CHAR(50); 5. DECLARE proc_surname CHAR(30); 6. DECLARE at_end INT DEFAULT 0; 7. DECLARE not_found CONDITION FOR '02000'; 8. DECLARE c1 CURSOR FOR 9. SELECT name, surname 10. FROM athlete 11. where surname = prsurname 12. FOR UPDATE; 13. DECLARE CONTINUE HANDLER FOR not_found 14. SET at_end = 1; OPEN c1; 17. FETCH c1 INTO proc_name, proc_surname; 18. WHILE at_end = 0 DO 19. UPDATE ATHLETE 20. SET WEIGHT = WEIGHT WHERE CURRENT OF c1; 22. FETCH c1 INTO proc_name, proc_surname; 23. END WHILE; 24. CLOSE c1; 25. END@ call ATHLETE_EAT_A_LOT('Zakari') Δρ. Κεραμόπουλος Ευκλείδης 56

57 1. import java.sql.*; 2. public class Jdbc_dblab2_call_SP_db2 { 3. static String driverclassname = "com.ibm.db2.jcc.db2driver" ; 4. static String url = "jdbc:db2://localhost:50000/sqwctrl" ; 5. static String username = euclid"; 6. static String passwd = euclid"; 7. static Connection dbconnection = null; 8. static CallableStatement call_statement = null; 9. public static void main (String[] argv) throws Exception 10. { 11. Class.forName (driverclassname); 12. dbconnection = DriverManager.getConnection (url, username, passwd); String DROPOLYMPICS = "call DROP_OLYMPICS () "; 15. call_statement = dbconnection.preparecall(dropolympics); 16. call_statement.execute(); String CREATEOLYMPICS = " call CREATE_OLYMPICS () "; 19. call_statement = dbconnection.preparecall(createolympics); 20. call_statement.execute(); 21. call_statement.close(); 22. dbconnection.close(); 23. } 24. } Δρ. Κεραμόπουλος Ευκλείδης 57

58 1. import java.sql.*; 2. public class Jdbc_dblab2_call_SP_db2 { 3. static String driverclassname = "com.ibm.db2.jcc.db2driver" ; 4. static String url = "jdbc:db2://localhost:50000/sqwctrl" ; 5. static String username = euclid"; 6. static String passwd = euclid"; 7. static Connection dbconnection = null; 8. static CallableStatement call_statement = null; 9. public static void main (String[] argv) throws Exception 10. { 11. Class.forName (driverclassname); 12. dbconnection = DriverManager.getConnection (url, username, passwd); String DROPOLYMPICS = "call DROP_OLYMPICS () "; 15. call_statement = dbconnection.preparecall(dropolympics); 16. call_statement.execute(); String CREATEOLYMPICS = " call CREATE_OLYMPICS () "; 19. call_statement = dbconnection.preparecall(createolympics); 20. call_statement.execute(); 21. call_statement.close(); 22. dbconnection.close(); 23. } 24. } Δρ. Κεραμόπουλος Ευκλείδης 58

59 Δρ. Κεραμόπουλος Ευκλείδης 59

60 import java.sql.*; import java.io.*; class Jdbc_call_stored_procedure_db2 { static String driverclassname = "com.ibm.db2.jcc.db2driver" ; static String url = "jdbc:db2://localhost:50000/sqwctrl" ; static Connection dbconnection = null; static CallableStatement call_statement = null; public static void main (String[] argv) throws Exception { Class.forName (driverclassname); dbconnection = DriverManager.getConnection (url, "euclid", "euclid"); String sql = "CALL stats(?,?,?)"; call_statement = dbconnection.preparecall(sql); BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); String temp = " ; System.out.print("Enter sailor rating: "); temp = keyboard.readline(); int in1 = Integer.parseInt(temp); } } call_statement.setint(1,in1); call_statement.registeroutparameter(2,types.integer); call_statement.registeroutparameter(3,types.integer); call_statement.execute(); int output1 = call_statement.getint(2); int output2 = call_statement.getint(3); System.out.println("output1: " + output1);system.out.println("output2: " + output2); call_statement.close(); dbconnection.close(); Δρ. Κεραμόπουλος Ευκλείδης 60

61 public void registeroutparameter(int parameterindex, int sqltype) throws SQLException ενημερώνει ότι η παράμετρος στην θέση parameterindex είναι OUT και sqltype (java type) τύπου Την τιμή την παίρνουμε με τη μέθοδο getxxx(parameterindex) π.χ. getstring(parameterindex) Δρ. Κεραμόπουλος Ευκλείδης 61

ΑΠΟΘΗΚΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ

ΑΠΟΘΗΚΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ ΑΠΟΘΗΚΕΥΜΕΝΕΣΔΙΑΔΙΚΑΣΙΕΣ ΓΕΝΙΚΑ Οι αποθηκευμένες διαδικασίες είναι τμήματα προγράμματος Βάσης Δεδομένων (διαδικασίες\procedures ή συναρτήσεις\functions) που αποθηκεύονται μόνιμα και εκτελούνταιστονδιακομιστήτηςβάσηςδεδομένων.

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Σε ένα πρόγραμμα κατά την εκτέλεση του ένα ερώτημα SQL μπορεί δυναμικά να παίρνει διαφορετικές παραμέτρους μπορεί να πάρει πολλές παραμέτρους oι παράμετροι δηλώνονται με? Στις παραμέτρους

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)

Διαβάστε περισσότερα

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά ΣΤΟΧΟΣ Postgress Το 9ο εργαστήριο εισάγει τον/ην φοιτητή/τρια στη χρήση και προγραµµατισµό συναρτήσεων στην PostgreSQL. ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ Η σχετική ύλη του βιβλίου του µαθήµατος (διαφάνειες και

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Μία διαδικασία την οποία δηλώνει ο Διαχειριστής της Βάσης Δεδομένων και η οποία ενεργοποιείται αυτόματα από το ΣΔΒΔ κάθε φορά που συμβαίνουν μεταβολές ορισμένου τύπου στα δεδομένα

Διαβάστε περισσότερα

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

Διαβάστε περισσότερα

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ... sname rating age Dustin 7 45.0 29 Brutus 1 33.0 Lubber 8 55.5 32 Andy 8 25.5 58 Rusty 10 35.0 64 Horatio 7 35.0 71 Zorba 10 16.0 74 Horatio 9 35.0 85 Art 3 25.5 95 Bob 3 63.5 day 101 10/10/98 102 10/10/98

Διαβάστε περισσότερα

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES ΕΝΑΥΣΜΑΤΑΣΤΗΝPOSTGRES ΓΕΝΙΚΑ Μία διαδικασία την οποία δηλώνει ο Διαχειριστής της Βάσης Δεδομένων και η οποία ενεργοποιείται αυτόματα από το ΣΔΒΔ κάθε φορά που συμβαίνουν μεταβολές ορισμένου τύπουσταδεδομέναονομάζεταιέναυσμα(trigger).

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Τα μεταδεδομένα είναι δεδομένα για τα δεδομένα (data about data). Περιγράφουν τη δομή μίας βάσης ή ενός συγκεκριμένου τύπου δεδομένων όπως ενός αντικειμένου, ενός πίνακα. Δρ. Κεραμόπουλος

Διαβάστε περισσότερα

MySQL stored procedures

MySQL stored procedures MySQL stored procedures Δημήτρης Σουραβλιάς Δομή παρουσίασης Εισαγωγή Δημιουργία μιας απλής stored procedure Μεταβλητές Παράμετροι Ροή ελέγχου Cursors 2 Εισαγωγή Μια stored procedure: είναι ένα τμήμα προγράμματος

Διαβάστε περισσότερα

PL/SQL. Κώστας Στεφανίδης

PL/SQL. Κώστας Στεφανίδης PL/SQL Κώστας Στεφανίδης Βασική ομή DECLARE /* Μεταβλητές και τύποι */ BEGIN /* ιαδικασίες και εντολές PL/SQL*/ /* Είναι το μόνο τμήμα που απαιτείται */ EXCEPTION /* Εντολές χειρισμού λαθών */ END; Βασική

Διαβάστε περισσότερα

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

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures Εργαστήριο βάσεων δεδομένων MySQL Stored Procedures Stored Procedures Μια store procedure είναι μια διαδικασία. Είναι ένα πρόγραμμα που αποτελείται από SQL εντολές. Αποθηκεύεται και εκτελείται στον database

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

Διαβάστε περισσότερα

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Καθ.: Νίκος Τσαπατσούλης ΥΠΟΔΕΙΓΜΑ

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers CREATE TRIGGER Δήλωση δημιουργίας Trigger: CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δημιουργία Πεδίων Ορισμού Πεδίο Ορισμού είναι συστατικό του σχήματος για τον ορισμό των μακροεντολών

Διαβάστε περισσότερα

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

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1 Ενεργές ΒΔ Παύλος Εφραιμίδης pefraimi ee.duth.gr Βάσεις Δεδομένων Ενεργές ΒΔ 1 Active Databases Υποστηρίζουν την αυτόματη εκτέλεση ενεργειών όταν συμβούν συγκεκριμένα γεγονότα Ένας διαδεδομένος μηχανισμός

Διαβάστε περισσότερα

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

ΕΠΛ 342 Βάσεις εδοµένων ΕΠΛ 342 Βάσεις εδοµένων Εργαστήριο 6 ο PL/SQL Ιωάννα Συρίµη syrimi@ucy.ac.cy PL/SQL Procedural Language/SQL Επέκταση της SQL µε χαρακτηριστικά γλωσσών προγραµµατισµού Επιτρέπει την χρήση προτάσεων SQL

Διαβάστε περισσότερα

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Ενσωμάτωση SQL εντολών σε μία γενικού σκοπού γλώσσα προγραμματισμού Η φιλόξενη γλώσσα προγραμματισμού έχει στη διάθεση της μια βιβλιοθήκη από συναρτήσεις για κλήσεις στη Βάση Δεδομένων

Διαβάστε περισσότερα

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Βάσεις δεδομένων (10 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Ευρετήρια Σκανδάλες PL/SQL Δείκτες/Δρομείς 2 Αποθήκευση δεδομένων Πρωτεύουσα αποθήκευση Κύρια μνήμη (main memory) ή κρυφή μνήμη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers Triggers: Βασικές Έννοιες Ένας trigger είναι ένα κομμάτι κώδικα, μια ρουτίνα Συνδέεται με ένα συγκεκριμένο πίνακα Καλείται όταν συμβεί ένα γεγονός στον πίνακα Συχνές

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3: Ενότητα 3: Σχεσιακό Μοντέλο. Από το ιδεατό στο λογικό (σχεσιακό) μοντέλο. Από το λογικό στο φυσικό (SQL) μοντέλο Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 MySQL + Γλώσσα Προγραμματισμού Ευαγγελία Πιτουρά 1 Database drivers Για να χρησιμοποιήσουμε μια βάση δεδομένων από μια γλώσσα προγραμματισμού χρειαζόμαστε έναν driver. JDBC είναι το API για τη Java και

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Stored procedures, Exceptions, ιακιώµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Stored Procedures... 1 Exceptions... 1 Εντολή

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Stored Procedures Εργαστήριο Βάσεων Δεδομένων Stored Procedures Αρχιτεκτονική επικοινωνίας με τη βάση δεδομένων Μια βάση χρησιμοποιείται μέσω του client-server μοντέλου Τα δεδομένα είναι αποθηκευμένα στον DB Server Οι clients

Διαβάστε περισσότερα

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας

Διαβάστε περισσότερα

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures): 9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers Σκοπός της παρούσας εργαστηριακής άσκησης, είναι η εξοικείωση του σπουδαστή με τη δημιουργία αποθηκευμένων διαδικασιών (Stored Procedures) και σκανδάλης

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Εντολές ορισμού δεδομένων (DDL) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

Διαβάστε περισσότερα

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

Τμήμα Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων «Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα» «Σημειώσεις για την SQL» ΕΞΑΜΗΝΟ: ΣΤ Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Πάτρα, Νοέμβριος 2010 SQL Create Table Η CREATE TABLE

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με

Διαβάστε περισσότερα

Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων

Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων Κεφάλαιο 12 Υλοποίηση Stored Procedures, Χρήση Ευρετηρίων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν βασικά στοιχεία όσον αφορά τις stored procedures και τη χρήση ευρετηρίων. Προαπαιτούμενη γνώση H ύλη

Διαβάστε περισσότερα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 85 Περιεχόμενα

Διαβάστε περισσότερα

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples Ξένου Ρουμπίνη 1 SQL-DDL Data Definition/Description Language (DDL): προσδιορίζουν τη δομή ή το σχήμα των δεδομένων.

Διαβάστε περισσότερα

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

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε

Διαβάστε περισσότερα

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke SQL: Αιτήματα Κεφάλαιο 5 Database Management Systems, R. Ramakrishnan and J. Gehrke Στιγμιότυπα Στιγμιότυπα των σχέσεων Sailors Reserves και Boats. Αν στο κλειδί της σχέσης Reserved δε συμμετείχε το γνώρισμα

Διαβάστε περισσότερα

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ)

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ) [Ημερομηνία] ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗΝ TRANSACT-SQL ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ) ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ Υπεύθυνος: Καρβούνης Χ. Ευάγγελος Η Transact-SQL (T-SQL) είναι ή υλοποίηση της γλώσσας ερωταπαντήσεων

Διαβάστε περισσότερα

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΛΙΛΙΤΣΗΣ ΠΡΟΔΡΟΜΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών Βάσεων

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση Βάσεις Δεδομένων 5η εργαστηριακή άσκηση SQL Δρ. Μαρία Ευθυμιοπούλου Εντολές sql Για να γράψετε ή να επικολλήσετε εντολές sql πηγαίνετε από το μενού SQL Workshop και επιλέγετε το SQL Commands 1. Δημιουργία

Διαβάστε περισσότερα

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που 1 Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που μπορούμε να χρησιμοποιήσουμε σε μία JDBC εφαρμογή. Υπάρχει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΓΙΑΝΝΗΣ ΑΓΑΘΑΓΓΕΛΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL SQL SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQL- Μέρος Β Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1) Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα

Διαβάστε περισσότερα

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

ΕΠΛ 342 Βάσεις εδοµένων ΕΠΛ 342 Βάσεις εδοµένων Εργαστήριο 3 ο SQL - DML Ιωάννα Συρίµη syrimi@ucy.ac.cy Data Manipulation Language Εισαγωγή νέων Εγγραφών Insert Into ιαγραφή Εγγραφών Delete Αλλαγή υφιστάµενων Εγγραφών Update

Διαβάστε περισσότερα

10 η Διάλεξη Python Βάσεις δεδομένων στη python

10 η Διάλεξη Python Βάσεις δεδομένων στη python 10 η Διάλεξη Python Βάσεις δεδομένων στη python ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Η standard διεπαφη της python για βάσεις δεδομένων βασίζεται στο DB-API Python Database API υποστηρίζει ένα ευρύ φάσμα βάσεων δεδομένων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο JDBC JDBC is a set of classes and interfaces written in Java that allows Java programs to send SQL statements to a database like Oracle JDBC

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΡΙΤΟ Foreign key, Index, DML Ερωτήµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Foreign Key... 1 Index... 4 DML Ερωτήµατα... 6 INSERT...

Διαβάστε περισσότερα

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Ενημέρωση Βάσης Δεδομένων (INSERT, UPDATE, DELETE) SQL DCL (GRANT, DENY, REVOKE)

Διαβάστε περισσότερα

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

Φυσική Σχεδίαση Υλοποίηση βάσης ΕΣΔ330 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας Φυσική Σχεδίαση Υλοποίηση βάσης Περιεχόμενα Περιεχόμενα Εισαγωγή Μετασχηματισμός οντοτήτων Μετασχηματισμός συσχετίσεων Ακεραιότητα δεδομένων Παραδείγματα

Διαβάστε περισσότερα

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

Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας Το σχεσιακό μοντέλο βάσεων δεδομένων Περιεχόμενα Περιεχόμενα - Βιβλιογραφία Ενότητας Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων

Διαβάστε περισσότερα

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών,

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

Διαβάστε περισσότερα

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού Strange

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

Διαβάστε περισσότερα

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υπορουτίνες Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί

Διαβάστε περισσότερα

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

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη MySQL (2) ER Σχεσιακό Create Tables 1/4 CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, AM INT(5)

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

Διαβάστε περισσότερα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

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

Διαβάστε περισσότερα

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Δημιουργία πινάκων Δρ. Εύη Φαλιάγκα 1. Login Χρησιμοποιώντας έναν web explorer, μπαίνετε στο http://10.0.0.6:8080/apex και συμπληρώνετε

Διαβάστε περισσότερα

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD) Η Γλώσσα Pascal Χαρακτηριστικά Τύποι Δεδοµένων Δοµή προγράµµατος 1. Βασικές έννοιες Χαρακτηριστικά της γλώσσας Pascal Γλώσσα προγραµµατισµού Συντακτικό Σηµασιολογία Αλφάβητο της γλώσσας Pascal (Σύνολο

Διαβάστε περισσότερα

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 103 Περιεχόμενα 1 Γενικά για την αποθήκευση

Διαβάστε περισσότερα

Διάλεξη 17: Προγραμματισμός Βάσης Δεδομένων Ι. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 17: Προγραμματισμός Βάσης Δεδομένων Ι. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 17: Προγραμματισμός Βάσης Δεδομένων Ι Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Όψεις (Views) σε TSQL Αποθηκευμένες Διαδικασίες (Stored Procedures) σε TSQL

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL) Ακολουθιακές εντολές (Peter Ashenden, The Students Guide to VHDL) Εντολή If Τα βασικά χαρακτηριστικά της είναι τα εξής: Μπορεί να χρησιµοποιηθεί για τον έλεγχο µίας ή περισσοτέρων συνθηκών. Η πρώτη συνθήκη

Διαβάστε περισσότερα

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

Διαβάστε περισσότερα

Έχουµε την βάση της σχολής που αποτελείται από τους παρακάτω πίνακες.

Έχουµε την βάση της σχολής που αποτελείται από τους παρακάτω πίνακες. Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ 21/12/2004 Έχουµε την βάση της σχολής που αποτελείται από τους παρακάτω πίνακες. Όνοµα πίνακα: Students Γνώρισµα

Διαβάστε περισσότερα

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις Σχεδιασμός Πληροφοριακών Συστημάτων Σημειώσεις Συμπλήρωμα για τις Εκδόσεις 4 (4.1) και 4.2 των Σημειώσεων Έκδοση 19/2/2011 Μάριος Μάντακας mmantak@gmail.com Διαφορά από την προηγούμενη Έκδοση: Προσθήκη

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT. Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 88 Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της

Διαβάστε περισσότερα

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 3 ο (26/11/2008) Εισαγωγή στην Mysql SQL Η SQL (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομένων. Είναι δομημένη σε βάσεις που περιέχουν πίνακες.

Διαβάστε περισσότερα

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

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~ Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~ Στελιος Σφακιανάκης Εαρινό 2019 Αυτή η εργασία χορηγείται με άδεια Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 1 Ροή Δεδομένων

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

Διαβάστε περισσότερα