SlideShare a Scribd company logo
1 of 16
Download to read offline
Βάσεις Δεδομένων Ι - 03
SQL – Μέρος 1ο
Φώτης Κόκκορας (MSc/PhD)
Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 2 - Βάσεις Δεδομένων Ι
Γιατί SQL;
 Η SQL είναι γλώσσα πολύ υψηλού επιπέδου
 Επιτρέπει να λέμε εύκολα τι θέλουμε να κάνουμε και όχι πώς θα το κάνουμε.
 Αποφεύγουμε τις πολλές λεπτομέρειες που υπεισέρχονται στη διαχείριση δεδομένων με
γλώσσες προγραμματισμού όπως C++ ή Java.
 Είναι σχετικά απλή γλώσσα, απόρροια του ότι το σύνολο των πράξεων που προβλέπει το
Σχεσιακό Πρότυπο Δεδομένων είναι μικρό.
 Το ΣΔΒΣ μετασχηματίζει τα SQL ερωτήματα σε πιο χαμηλού επιπέδου εντολές και
τις οργανώνει με τέτοιο τρόπο ώστε να εκτελούνται βέλτιστα.
 Η διαδικασία ονομάζεται βελτιστοποίηση ερωτημάτων (query optimization) και είναι
όπως λέμε "διάφανη" διαδικασία (transparent), δηλ. ο χρήστης δεν το αντιλαμβάνεται!
 H γλώσσα SQL είναι ISO standard και, έστω και με μικρές παραλλαγές, χρησιμοποι-
είται σε όλα τα ΣΔΒΔ (MySQL, Oracle, MS SQL, DB2, Postgres, κτλ).
Γιατί τώρα SQL;
1. Το επιτρέπει η απλότητα της γλώσσας!
2. Η γρήγορη εξοικείωση με την SQL θα επιτρέψει τη γρηγορότερη
κατανόηση των "πολύ θεωρητικών" των Βάσεων Δεδομένων.
3. Θα είναι πιο ενδιαφέροντα τα πρώτα εργαστήρια.
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 3 - Βάσεις Δεδομένων Ι
First things first...
 H SQL δεν είναι case sensitive. π.χ. είτε πείτε SELECT ή select είναι το ίδιο.
 Προσοχή! σε ονόματα πινάκων και στηλών σε Linux, είναι case sensitive!!!
 Μια εντολή SQL τερματίζει συνήθως με το χαρακτήρα ; (ελληνικό ερωτηματικό).
 Κάποια ΣΔΒΔ δεν το απαιτούν (πχ MS SQL Server, Access).
 Όπως έχουμε ήδη πει, η SQL χωρίζεται σε δύο ομάδες εντολών:
 DQL (Data Query Language) ή DML (Data Manipulation Language).
 Περιλαμβάνει τις εντολές διαχείρισης των δεδομένων και τις σχετικές με αυτές παραμέτρους.
Οι κυριότερες είναι:
 SELECT για υποβολή ερωτήσεων, INSERT για εισαγωγή δεδομένων στην database, UPDATE για
μεταβολή δεδομένων, DELETE για διαγραφή δεδομένων
 πολλές παράμετροι στις παραπάνω εντολές - θα δούμε τις περισσότερες αναλυτικά
 DDL (Data Definition Language)
 Περιλαμβάνει τις εντολές διαχείρισης των βάσεων δεδομένων και τις σχετικές με αυτές
παραμέτρους. Οι κυριότερες είναι:
 CREATE DATABASE για δημιουργία μιας νέας βάσης δεδομένων, ALTER DATABASE για τροποποίηση
μιας ΒΔ, DROP DATABASE για διαγραφή μιας ΒΔ
 CREATE TABLE για δημιουργία πίνακα, ALTER TABLE για τροποποίηση πίνακα και DROP TABLE για
διαγραφή πίνακα
 CREATE INDEX για δημιουργία ευρετηρίου, DROP INDEX για διαγραφή ευρετηρίου
 Τα αλφαριθμητικά μπαίνουν πάντα μέσα σε ' και ' . Οι αριθμοί όχι.
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 4 - Βάσεις Δεδομένων Ι
Δεδομένα Παραδειγμάτων
 Τα παραδείγματα εντολών που παρατίθενται στη συνέχεια αφορούν στην database
myBeersDB που έχει το ακόλουθο schema:
 Beers(name, manf)  Likes(drinker, beer)
 Bars(name, license, city, phone, addr)  Sells(bar, beer, price)
 Drinkers(name, city, phone, addr)  Frequents(drinker, bar)
 Τα υπογραμμισμένα πεδία σε κάθε
σχέση ορίζουν το πρωτεύον κλειδί.
 Το schema έχει όπως στην εικόνα. Οι
γραμμές που ενώνουν τους πίνακες
είναι οι συσχετίσεις ξένων κλειδιών.
 πχ το πεδίο bar στη σχέση Sells παίρνει
τιμές όπως το πεδίο name που είναι το
πρωτεύον κλειδί στη σχέση Bars.
 Τα αρχεία της database (schema σε
MySQL Workbench file, SQL κώδικας
για δημιουργία της database, SQL
κώδικας για εισαγωγή δεδομένων)
βρίσκονται και στο: https://dl.dropboxusercontent.com/u/2690181/keep/myBeersDB.zip
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 5 - Βάσεις Δεδομένων Ι
SELECT ... FROM ... WHERE
 Αυτή είναι η δομή μια τυπικής εντολής SELECT:
SELECT <επιθυμητά γνωρίσματα>
FROM <ένας ή περισσότεροι πίνακες>
WHERE <περιορισμοί επιλογής πλειάδων>
 Παραδείγματα (δοκιμάστε τα στο Workbench, αφού φτιάξετε την database):
SELECT name FROM Beers WHERE manf='Anheuser-Busch';
 Επιλογή του γνωρίσματος name από τη σχέση Beers για όσες πλειάδες
της σχέσης Beers έχουν στο γνώρισμα manf τιμή 'Anheuser-Busch'.
 σε απλά Ελληνικά: ποιες μπύρες φτιάχνει ο Anheuser-Busch;
 Η απάντηση είναι μια σχέση (relation) με ένα μοναδικό γνώρισμα (το
name) και πλειάδες με το όνομα κάθε μπύρας που φτιάχνει ο κατασκευ-
αστής Anheuser-Busch, όπως Budweiser, κτλ. (βλ. πίνακα με
αποτελέσματα δεξιά).
 Γενική Ερμηνεία Ερωτήματος:
 από τη σχέση στη δήλωση FROM...
 εφαρμόζουμε το κριτήριο επιλογής που ορίζει η δήλωση WHERE...
 και συλλέγουμε τα δεδομένα που ορίζει η δήλωση SELECT
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 6 - Βάσεις Δεδομένων Ι
Λειτουργική Επεξήγηση Ερωτήματος SELECT
 Φανταστείτε μια πλειάδα-μεταβλητή (t) να επισκέπτεται κάθε πλειάδα της σχέσης
που μνημονεύεται στη δήλωση FROM.
 Γίνεται έλεγχος αν η τρέχουσα πλειάδα ικανοποιεί τις απαιτήσεις που ορίζει η
δήλωση WHERE.
 Αν τις ικανοποιεί, υπολογίζονται οι τιμές για τα γνωρίσματα (ή εκφράσεις) που βρί-
σκονται μετά το SELECT, χρησιμοποιώντας τα δεδομένα της τρέχουσας πλειάδας.
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 7 - Βάσεις Δεδομένων Ι
Το * στις δηλώσεις SELECT
 Αν στη δήλωση FROM υπάρχει μόνο μια σχέση τότε το * στη
δήλωση SELECT σημαίνει "όλα τα γνωρίσματα αυτής της σχέσης".
SELECT * FROM Beers WHERE manf = 'Anheuser-Busch';
 Τώρα στο αποτέλεσμα εμπεριέχονται όλα τα γνωρίσματα της σχέσης Beers.
AS: Ορισμός ονόματος σε γνώρισμα αποτελεσμάτων
 Μπορούμε να αλλάξουμε όνομα σε γνώρισμα στον πίνακα
αποτελεσμάτων χρησιμοποιώντας τη δήλωση: AS <νέο όνομα>
(χωρίς τα < και > )
SELECT name AS beer, manf FROM Beers WHERE manf = 'Anheuser-Busch'
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 8 - Βάσεις Δεδομένων Ι
Υπολογιζόμενα (Calculated) & Σταθερά Πεδία
 Μπορούμε να ενσωματώσουμε υπολογισμούς ως
στοιχεία (calculated elements) στις δηλώσεις SELECT:
SELECT bar, beer, price*340.75 AS priceInDrachmas
FROM Sells;
 το πεδίο priceInDrachmas υπολογίζεται δυναμικά με βάση το πεδίο price
 Προσθήκη σταθερών εκφράσεων: απλά παραθέτουμε την σταθερή
τιμή, πιθανώς ορίζοντας και κάποιο τίτλο (με χρήση του AS):
SELECT drinker,'likes Bud' AS whoLikesBud FROM Likes
WHERE beer = 'Budweiser';
Πιο Πολύπλοκες Συνθήκες στο WHERE
 Επιτρέπεται η χρήση των λογικών τελεστών AND, OR, NOT
 Επιτρέπεται η χρήση τελεστών που παράγουν λογικό αποτέλεσμα
όπως π.χ. οι τελεστές σύγκρισης: =, <>, <, >, <=, >=
SELECT price FROM Sells WHERE bar = 'Gecko Grill' AND beer = 'Budweiser';
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 9 - Βάσεις Δεδομένων Ι
Patterns στο WHERE
(ισχύουν σε MySQL Server και σε MS SQL Server)
 Τι είναι ένα pattern: αλφαριθμητικό που περιέχει τα σύμβολα % ή/και _
 % (οποιοδήποτε αλφαριθμητικό – μηδέν ή περισσότεροι χαρακτήρες)
 _ (οποιοσδήποτε (ένας) χαρακτήρας)
 Σε μια συνθήκη (δήλωση WHERE) μπορούμε να συγκρίνουμε αλφαριθμητικά με
κάποιο pattern ως εξής:
 <γνώρισμα> LIKE <pattern>
 <γνώρισμα> NOT LIKE <pattern>
 Παράδειγμα: στις πλειάδες της σχέσης Drinkers(name, addr, phone)
θέλουμε να βρούμε πελάτες με 234 στον αριθμό τηλεφώνου.
 Σημείωση: παράδειγμα τηλεφώνου στην database: 415-234-6789
SELECT name, phone FROM Drinkers WHERE phone LIKE '%234%';
 Με δεδομένη τη δομή των αριθμών τηλεφώνων, η επόμενη έκφραση είναι ισοδύναμη (γιατι;):
SELECT name, phone FROM Drinkers WHERE phone LIKE '%234-_ ___';
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 10 - Βάσεις Δεδομένων Ι
Τιμές NULL σε Στήλες (1/2)
 Το NULL ως τιμή σε μια στήλη προκύπτει όταν αυτή δεν έχει τιμή.
 Προσοχή: άλλο το NULL και άλλο το '' (2 κολλητά μονά εισαγωγικά).
Το '' είναι το αλφαριθμητικό μηδενικού μήκους.
 Η ερμηνεία του NULL εξαρτάται από εμάς και πρέπει να γίνεται με συνέπεια (όχι μια
"έτσι" και μια "αλλιώς"!). Συνήθεις περιπτώσεις:
 ελλιπής τιμή (missing value)
 Ξέρουμε ότι το bar Caravan (στην myBeersDB) έχει κάποια διεύθυνση αλλά δεν την γνωρίζουμε
 μη εφαρμόσιμο (inapplicable)
 πχ το γνώρισμα spouse (σύζυγος) δεν έχει νόημα για κάποιον(-α) που δεν είναι παντρεμένος(-η)
 Στην SQL δεν μπορούμε να εμπλέξουμε το NULL σε ελέγχους και συνθήκες στο WHERE
τμήμα εκφράσεων, καθώς το αποτέλεσμα θα είναι πάντα UKNOWN.
 Η λογική των WHERE συνθηκών στην SQL είναι τρί-τιμη: TRUE, FALSE, UNKNOWN
 Μια πλειάδα είναι στα αποτελέσματα ερωτήματος μόνο αν δίνει TRUE για τις συνθήκες
του WHERE και όχι για FALSE ή UNKNOWN
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 11 - Βάσεις Δεδομένων Ι
Τιμές NULL σε Στήλες (2/2)
 Μπορούμε να ελέγξουμε για την τιμή NULL με τη βοήθεια
των εκφράσεων IS NULL και IS NOT NULL
 Ποια bar στον πίνακα Bars δεν έχουν διεύθυνση;
SELECT name, addr FROM Bars WHERE addr IS NULL;
 Ποια bar στον πίνακα Bars δεν έχουν NULL για διεύθυνση;
SELECT name, addr FROM Bars WHERE addr IS ΝΟΤ NULL;
 Προσέξτε τα αποτελέσματα δεξιά! Υπάρχουν bar (2η
, 4η
, κτλ
πλειάδες) που δεν έχουν διεύθυνση αλλά είναι στα
αποτελέσματα. Τι συμβαίνει;
 NULL vs Zero Length String: έχει δοθεί ως τιμή το
αλφαριθμητικό μηδενικού μήκους (το οποίο ΔΕΝ είναι NULL)
IFNULL() και ISNULL()
 Πρόκειται για συνάρτηση της SQL (MySQL: ifnull(), MS SQL
Server: isnull()) μέσω της οποίας ελέγχουμε αν η τιμή μιας στήλης
είναι NULL και εφόσον είναι την αντικαθιστούμε με κάτι άλλο,
δίνοντας έτσι την ερμηνεία που θέλουμε στο NULL.
SELECT name, ifnull(addr,'άγνωστη') AS address FROM Bars WHERE addr IS NULL;
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 12 - Βάσεις Δεδομένων Ι
Ταξινόμηση Αποτελεσμάτων - ORDER BY
 Το ORDER BY χρησιμοποιείται στο τέλος μιας SELECT ερώτησης για να ταξινο-
μήσουμε τα αποτελέσματα με βάση τις τιμές μιας ή περισσότερων στηλών.
 Η ταξινόμηση εξ ορισμού είναι αύξουσα (ASC – ascending=αύξουσα) αλλά
μπορούμε να την κάνουμε και φθίνουσα με το DESC (descending=φθίνουσα).
SELECT name FROM Bars ORDER BY name ASC;
 Στην αύξουσα ταξινόμηση, τα NULL προηγούνται των
αλφαριθμητικών μηδενικού μήκους και αυτά των μη μηδενικών
αλφαριθμητικών (βλ. αποτελέσματα δεξιά).
SELECT name, addr FROM Bars ORDER BY addr;
SELECT TOP (ή LIMIT)
 Μπορούμε να επιλέξουμε τις πρώτες Ν πλειάδες από
το σύνολο των αποτελεσμάτων, ως εξής:
 MySQL: SELECT name FROM Bars LIMIT 4;
 MS SQL Server: SELECT TOP 4 name FROM Bars;
 με ποσοστό: SELECT TOP 50% name FROM Bars;
 Oracle: SELECT name FROM Bars WHERE ROWNUM<=4;
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 13 - Βάσεις Δεδομένων Ι
Επιλογή Υποσυνόλου Αποτελεσμάτων (Πλειάδων)
 Σε MySQL, μπορούμε να επιλέξουμε πλειάδες με χρήση του τελεστή
LIMIT N,K ο οποίος από το αρχικό σύνολο αποτελεσμάτων επιστρέφει τις
πρώτες Κ εγγραφές, αρχίζοντας από την εγγραφή με δείκτη Ν.
 SELECT name FROM Bars LIMIT 0,4;
 επιστρέφει τις εγγραφές 1η
, 2η
, 3η
και 4η
(δηλαδή 4 στο πλήθος),
αρχίζοντας από αυτή με δείκτη 0 (δηλ. την 1η
) )
 SELECT name FROM Bars LIMIT 19,10;
 επιστρέφει 10 εγγραφές αρχίζοντας από την εγγραφή με δείκτη 19,
δηλαδή την 20η
, 21η
, ...., 29η
Τελεστής ΙΝ
 Επιτρέπει να ορίσουμε πολλαπλές τιμές στο WHERE.
 SELECT name, city FROM Bars WHERE city IN ('Chicago', 'New York');
 στα αποτελέσματα, το city θα είναι είτε Chicago ή New York
Τελεστής DISTINCT
 Αφαιρεί από τα αποτελέσματα τις πολλαπλές απαντήσεις!
 χωρίς DISTINCT: SELECT city FROM Bars;
 με DISTINCT: SELECT DISTINCT city FROM Bars;
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 14 - Βάσεις Δεδομένων Ι
INSERT INTO (εισαγωγή πλειάδας)
 Το χρησιμοποιούμε για εισαγωγή πλειάδων. Έχει δύο τρόπους σύνταξης:
 με απαρίθμηση πεδίων
INSERT INTO beers (name, manf) VALUES ('Mythos', 'AZ AE');
 Χρησιμοποιείται όταν δεν δίνουμε τιμές σε όλα τα πεδία της σχέσης, οπότε
πρέπει να πούμε για ποιες στήλες δίνουμε.
 Υπενθυμίζεται ότι επιτρέπεται να μην δώσουμε τιμή αν κάποιο γνώρισμα, σε επίπεδο
σχεδίασης της σχέσης, έχει δηλωμένη default τιμή ή επιτρέπεται να πάρει τιμή NULL.
 Μπορούμε να βάλουμε τα πεδία με όποια σειρά θέλουμε, αρκεί να την τηρήσουμε στο VALUES
 χωρίς απαρίθμηση πεδίων
INSERT INTO beers VALUES ('Mythos', 'Αθηναϊκή AE');
 ο δεύτερος τρόπος είναι εφικτός μόνο εάν παρέχουμε τιμή σε όλες τις στήλες της πλειάδας
 Σε κάθε περίπτωση, αν το επιθυμούμε, μπορούμε να δώσουμε και τιμή NULL ως εξής:
INSERT INTO beers VALUES ('Amstel', 'Αθηναϊκή AE', NULL, NULL);
 Αν κατά την εκτέλεση μιας εντολής INSERT προκύψει ότι η πλειάδα που πάει να
δημιουργηθεί έχει ίδιο πρωτεύων κλειδί με άλλη υπάρχουσα πλειάδα, η εντολή
αποτυγχάνει με σχετικό μήνυμα (primary key violation).
 Επιτρέπεται να καταχωρήσουμε ταυτόχρονα πολλαπλές πλειάδες:
INSERT INTO beers VALUES ('Amstel','xyzw'), ('Amstel Black','abcd');
 Σε στήλες με ρύθμιση auto incremental δεν δίνουμε τιμή.
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 15 - Βάσεις Δεδομένων Ι
DELETE FROM (διαγραφή πλειάδας)
 Το χρησιμοποιούμε για διαγραφή πλειάδων.
DELETE FROM Beers WHERE Name='Mythos'
 ΠΡΟΣΟΧΗ: το WHERE τμήμα είναι βασικό καθώς προσδιορίζει (μέσω κάποιας
συνθήκης) ποια ή ποιες πλειάδες διαγράφουμε.
 Δεν είναι όμως υποχρεωτικό – εξαρτάται τι θέλουμε να διαγράψουμε!
 Μπορούμε να διαγράψουμε όλες τις εγγραφές ως εξής (ο πίνακας θα απομείνει άδειος):
DELETE FROM <όνομα πίνακα> ή DELETE * FROM <όνομα πίνακα>
UPDATE (ενημέρωση/μεταβολή πλειάδας)
 Χρησιμοποιείται για να μεταβάλουμε την τιμή σε κάποιο ή κάποια πεδία
σε μία ή περισσότερες εγγραφές.
 Οι εγγραφές προσδιορίζονται μέσω συνθήκης WHERE.
UPDATE bars SET city='Chicago', addr='106st Addison' WHERE name='The Blank Club';
 ΠΡΟΣΟΧΗ: το WHERE τμήμα είναι βασικό καθώς προσδιορίζει (μέσω κάποιας συνθήκης)
ποια ή ποιες πλειάδες διαγράφουμε. Δεν είναι όμως υποχρεωτικό – εξαρτάται τι θέλουμε να
μεταβάλουμε!
Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 16 - Βάσεις Δεδομένων Ι
Γενική Παρατήρηση
 Οι ενέργειες εισαγωγή/INSERT, ενημέρωση/UPDATE και διαγραφή/DELETE δεν
επιστρέφουν κάποιο αποτέλεσμα (όπως για παράδειγμα η επιλογή/SELECT) αλλά
τροποποιούν με κάποιο τρόπο τα δεδομένα της database.
Η επιτυχής εκτέλεση εντολών INSERT, DELETE και UPDATE
προϋποθέτει ότι δεν παραβιάζεται κάποιος άλλος περιορισμός
που τυχόν υπάρχει, όπως πχ περιορισμοί ξένου κλειδιού.
 Στην πράξη, μετά την εκτέλεση τέτοιων εντολών, οφείλουμε να ελέγξουμε τυχόν
σφάλματα που καταγράφηκαν στον database server.
 το MySQL Workbench ανακοινώνει εξ ορισμού τέτοια σφάλματα
 αν η πρόσβαση στην database γίνεται προγραμματιστικά, οι γλώσσες προγραμματισμού
παρέχουν κατάλληλες δομές και εντολές για έλεγχο του τι συνέβη.
...

More Related Content

What's hot

SQL Joins With Examples | Edureka
SQL Joins With Examples | EdurekaSQL Joins With Examples | Edureka
SQL Joins With Examples | EdurekaEdureka!
 
Εισαγωγή στις Βάσεις Δεδομένων
Εισαγωγή στις Βάσεις ΔεδομένωνΕισαγωγή στις Βάσεις Δεδομένων
Εισαγωγή στις Βάσεις Δεδομένωνgkhglpzg
 
Tutorial On Database Management System
Tutorial On Database Management SystemTutorial On Database Management System
Tutorial On Database Management Systempsathishcs
 
Object-Oriented Design Heuristics
Object-Oriented Design HeuristicsObject-Oriented Design Heuristics
Object-Oriented Design Heuristicskim.mens
 
Key and its different types
Key and its different typesKey and its different types
Key and its different typesUmair Shakir
 
Degree of relationship set
Degree of relationship setDegree of relationship set
Degree of relationship setMegha Sharma
 
Rdbms
RdbmsRdbms
Rdbmsrdbms
 
Types Of Keys in DBMS
Types Of Keys in DBMSTypes Of Keys in DBMS
Types Of Keys in DBMSPadamNepal1
 
Normalization
NormalizationNormalization
Normalizationmomo2187
 
MySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs AcademyMySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs Academythewebsacademy
 
Working with Databases and MySQL
Working with Databases and MySQLWorking with Databases and MySQL
Working with Databases and MySQLNicole Ryan
 
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσειςΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσειςGeorge Papaloukas
 
Database Keys & Relationship
Database Keys & RelationshipDatabase Keys & Relationship
Database Keys & RelationshipBellal Hossain
 

What's hot (20)

SQL Joins With Examples | Edureka
SQL Joins With Examples | EdurekaSQL Joins With Examples | Edureka
SQL Joins With Examples | Edureka
 
Εισαγωγή στις Βάσεις Δεδομένων
Εισαγωγή στις Βάσεις ΔεδομένωνΕισαγωγή στις Βάσεις Δεδομένων
Εισαγωγή στις Βάσεις Δεδομένων
 
Tutorial On Database Management System
Tutorial On Database Management SystemTutorial On Database Management System
Tutorial On Database Management System
 
Object-Oriented Design Heuristics
Object-Oriented Design HeuristicsObject-Oriented Design Heuristics
Object-Oriented Design Heuristics
 
Key and its different types
Key and its different typesKey and its different types
Key and its different types
 
Normal forms
Normal formsNormal forms
Normal forms
 
Degree of relationship set
Degree of relationship setDegree of relationship set
Degree of relationship set
 
Rdbms
RdbmsRdbms
Rdbms
 
 Mwa class custom_files
 Mwa class custom_files Mwa class custom_files
 Mwa class custom_files
 
Types Of Keys in DBMS
Types Of Keys in DBMSTypes Of Keys in DBMS
Types Of Keys in DBMS
 
SQL subquery
SQL subquerySQL subquery
SQL subquery
 
Normalization
NormalizationNormalization
Normalization
 
MySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs AcademyMySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs Academy
 
Relational model
Relational modelRelational model
Relational model
 
Working with Databases and MySQL
Working with Databases and MySQLWorking with Databases and MySQL
Working with Databases and MySQL
 
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσειςΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
ΑΕΠΠ, Δομή Επανάληψης, Μεθοδολογία & υποδειγματικά λυμένες ασκήσεις
 
Sql commands
Sql commandsSql commands
Sql commands
 
View & index in SQL
View & index in SQLView & index in SQL
View & index in SQL
 
Database Keys & Relationship
Database Keys & RelationshipDatabase Keys & Relationship
Database Keys & Relationship
 
RDBMS concepts
RDBMS conceptsRDBMS concepts
RDBMS concepts
 

Similar to 03 - SQL (μέρος 1)

04 - SQL (μέρος 2)
04 - SQL (μέρος 2)04 - SQL (μέρος 2)
04 - SQL (μέρος 2)Fotis Kokkoras
 
06 - Ευρετήρια και Όψεις
06 - Ευρετήρια και Όψεις06 - Ευρετήρια και Όψεις
06 - Ευρετήρια και ΌψειςFotis Kokkoras
 
HTML [from web] epilogis a kai b lyceiou - bmichal version 1
HTML [from web]   epilogis a kai b lyceiou - bmichal version 1HTML [from web]   epilogis a kai b lyceiou - bmichal version 1
HTML [from web] epilogis a kai b lyceiou - bmichal version 1Vassilis Michalopoulos
 
08 - Λογαριασμοί και Δικαιώματα σε Database Server
08 - Λογαριασμοί και Δικαιώματα σε Database Server08 - Λογαριασμοί και Δικαιώματα σε Database Server
08 - Λογαριασμοί και Δικαιώματα σε Database ServerFotis Kokkoras
 
10 - Οντοσυσχετιστική Μοντελοποίηση
10 - Οντοσυσχετιστική Μοντελοποίηση10 - Οντοσυσχετιστική Μοντελοποίηση
10 - Οντοσυσχετιστική ΜοντελοποίησηFotis Kokkoras
 
05 - SQL (μέρος 3)
05 - SQL (μέρος 3)05 - SQL (μέρος 3)
05 - SQL (μέρος 3)Fotis Kokkoras
 
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝAnastasia Stathopoulou
 
Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6Michael Ntallas
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8Ιωάννου Γιαννάκης
 
Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationISSEL
 

Similar to 03 - SQL (μέρος 1) (17)

04 - SQL (μέρος 2)
04 - SQL (μέρος 2)04 - SQL (μέρος 2)
04 - SQL (μέρος 2)
 
06 - Ευρετήρια και Όψεις
06 - Ευρετήρια και Όψεις06 - Ευρετήρια και Όψεις
06 - Ευρετήρια και Όψεις
 
SQL Injection
SQL InjectionSQL Injection
SQL Injection
 
HTML [from web] epilogis a kai b lyceiou - bmichal version 1
HTML [from web]   epilogis a kai b lyceiou - bmichal version 1HTML [from web]   epilogis a kai b lyceiou - bmichal version 1
HTML [from web] epilogis a kai b lyceiou - bmichal version 1
 
Εισαγωγή στην SQL
Εισαγωγή στην SQLΕισαγωγή στην SQL
Εισαγωγή στην SQL
 
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
 
08 - Λογαριασμοί και Δικαιώματα σε Database Server
08 - Λογαριασμοί και Δικαιώματα σε Database Server08 - Λογαριασμοί και Δικαιώματα σε Database Server
08 - Λογαριασμοί και Δικαιώματα σε Database Server
 
10 - Οντοσυσχετιστική Μοντελοποίηση
10 - Οντοσυσχετιστική Μοντελοποίηση10 - Οντοσυσχετιστική Μοντελοποίηση
10 - Οντοσυσχετιστική Μοντελοποίηση
 
SQL1v3
SQL1v3SQL1v3
SQL1v3
 
05 - SQL (μέρος 3)
05 - SQL (μέρος 3)05 - SQL (μέρος 3)
05 - SQL (μέρος 3)
 
Sql select clause 15 min-5
Sql select clause 15 min-5Sql select clause 15 min-5
Sql select clause 15 min-5
 
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
 
Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8
 
Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentation
 
SQL0v4
SQL0v4SQL0v4
SQL0v4
 
Στατιστική Επεξεργασία με SPSS
Στατιστική Επεξεργασία με SPSSΣτατιστική Επεξεργασία με SPSS
Στατιστική Επεξεργασία με SPSS
 

Recently uploaded

Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptxΜοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx36dimperist
 
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...Areti Arvithi
 
ΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptx
ΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptxΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptx
ΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptxtheologisgr
 
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...Irini Panagiotaki
 
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfΟδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfIrini Panagiotaki
 
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxtheologisgr
 
Το άγαλμα που κρύωνε
Το άγαλμα που                       κρύωνεΤο άγαλμα που                       κρύωνε
Το άγαλμα που κρύωνεDimitra Mylonaki
 
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfssuserf9afe7
 
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHRODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHROUT Family
 
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥΜαρία Διακογιώργη
 
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxssuserb0ed14
 
Οι στόχοι των παιδιών
Οι στόχοι των                       παιδιώνΟι στόχοι των                       παιδιών
Οι στόχοι των παιδιώνDimitra Mylonaki
 
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΜαρία Διακογιώργη
 
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-242lykkomo
 
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYEKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYssuser369a35
 
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων -  Βυζαντινή ΑυτοκρατορίαΗ Δυναστεία των Παλαιολόγων -  Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορίαeucharis
 
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docxΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docxeucharis
 
Διαχείριση χρόνου παιδιών
Διαχείριση χρόνου                    παιδιώνΔιαχείριση χρόνου                    παιδιών
Διαχείριση χρόνου παιδιώνDimitra Mylonaki
 
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΜαρία Διακογιώργη
 
Σχολικός εκφοβισμός
Σχολικός                             εκφοβισμόςΣχολικός                             εκφοβισμός
Σχολικός εκφοβισμόςDimitra Mylonaki
 

Recently uploaded (20)

Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptxΜοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
 
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
 
ΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptx
ΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptxΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptx
ΣΔΕ Ιεράπετρας παρουσίαση - ecomobility.pptx
 
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
 
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfΟδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
 
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
 
Το άγαλμα που κρύωνε
Το άγαλμα που                       κρύωνεΤο άγαλμα που                       κρύωνε
Το άγαλμα που κρύωνε
 
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
 
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHRODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
 
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
 
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
 
Οι στόχοι των παιδιών
Οι στόχοι των                       παιδιώνΟι στόχοι των                       παιδιών
Οι στόχοι των παιδιών
 
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
 
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
 
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYEKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
 
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων -  Βυζαντινή ΑυτοκρατορίαΗ Δυναστεία των Παλαιολόγων -  Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
 
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docxΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
 
Διαχείριση χρόνου παιδιών
Διαχείριση χρόνου                    παιδιώνΔιαχείριση χρόνου                    παιδιών
Διαχείριση χρόνου παιδιών
 
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
 
Σχολικός εκφοβισμός
Σχολικός                             εκφοβισμόςΣχολικός                             εκφοβισμός
Σχολικός εκφοβισμός
 

03 - SQL (μέρος 1)

  • 1. Βάσεις Δεδομένων Ι - 03 SQL – Μέρος 1ο Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας
  • 2. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 2 - Βάσεις Δεδομένων Ι Γιατί SQL;  Η SQL είναι γλώσσα πολύ υψηλού επιπέδου  Επιτρέπει να λέμε εύκολα τι θέλουμε να κάνουμε και όχι πώς θα το κάνουμε.  Αποφεύγουμε τις πολλές λεπτομέρειες που υπεισέρχονται στη διαχείριση δεδομένων με γλώσσες προγραμματισμού όπως C++ ή Java.  Είναι σχετικά απλή γλώσσα, απόρροια του ότι το σύνολο των πράξεων που προβλέπει το Σχεσιακό Πρότυπο Δεδομένων είναι μικρό.  Το ΣΔΒΣ μετασχηματίζει τα SQL ερωτήματα σε πιο χαμηλού επιπέδου εντολές και τις οργανώνει με τέτοιο τρόπο ώστε να εκτελούνται βέλτιστα.  Η διαδικασία ονομάζεται βελτιστοποίηση ερωτημάτων (query optimization) και είναι όπως λέμε "διάφανη" διαδικασία (transparent), δηλ. ο χρήστης δεν το αντιλαμβάνεται!  H γλώσσα SQL είναι ISO standard και, έστω και με μικρές παραλλαγές, χρησιμοποι- είται σε όλα τα ΣΔΒΔ (MySQL, Oracle, MS SQL, DB2, Postgres, κτλ). Γιατί τώρα SQL; 1. Το επιτρέπει η απλότητα της γλώσσας! 2. Η γρήγορη εξοικείωση με την SQL θα επιτρέψει τη γρηγορότερη κατανόηση των "πολύ θεωρητικών" των Βάσεων Δεδομένων. 3. Θα είναι πιο ενδιαφέροντα τα πρώτα εργαστήρια.
  • 3. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 3 - Βάσεις Δεδομένων Ι First things first...  H SQL δεν είναι case sensitive. π.χ. είτε πείτε SELECT ή select είναι το ίδιο.  Προσοχή! σε ονόματα πινάκων και στηλών σε Linux, είναι case sensitive!!!  Μια εντολή SQL τερματίζει συνήθως με το χαρακτήρα ; (ελληνικό ερωτηματικό).  Κάποια ΣΔΒΔ δεν το απαιτούν (πχ MS SQL Server, Access).  Όπως έχουμε ήδη πει, η SQL χωρίζεται σε δύο ομάδες εντολών:  DQL (Data Query Language) ή DML (Data Manipulation Language).  Περιλαμβάνει τις εντολές διαχείρισης των δεδομένων και τις σχετικές με αυτές παραμέτρους. Οι κυριότερες είναι:  SELECT για υποβολή ερωτήσεων, INSERT για εισαγωγή δεδομένων στην database, UPDATE για μεταβολή δεδομένων, DELETE για διαγραφή δεδομένων  πολλές παράμετροι στις παραπάνω εντολές - θα δούμε τις περισσότερες αναλυτικά  DDL (Data Definition Language)  Περιλαμβάνει τις εντολές διαχείρισης των βάσεων δεδομένων και τις σχετικές με αυτές παραμέτρους. Οι κυριότερες είναι:  CREATE DATABASE για δημιουργία μιας νέας βάσης δεδομένων, ALTER DATABASE για τροποποίηση μιας ΒΔ, DROP DATABASE για διαγραφή μιας ΒΔ  CREATE TABLE για δημιουργία πίνακα, ALTER TABLE για τροποποίηση πίνακα και DROP TABLE για διαγραφή πίνακα  CREATE INDEX για δημιουργία ευρετηρίου, DROP INDEX για διαγραφή ευρετηρίου  Τα αλφαριθμητικά μπαίνουν πάντα μέσα σε ' και ' . Οι αριθμοί όχι.
  • 4. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 4 - Βάσεις Δεδομένων Ι Δεδομένα Παραδειγμάτων  Τα παραδείγματα εντολών που παρατίθενται στη συνέχεια αφορούν στην database myBeersDB που έχει το ακόλουθο schema:  Beers(name, manf)  Likes(drinker, beer)  Bars(name, license, city, phone, addr)  Sells(bar, beer, price)  Drinkers(name, city, phone, addr)  Frequents(drinker, bar)  Τα υπογραμμισμένα πεδία σε κάθε σχέση ορίζουν το πρωτεύον κλειδί.  Το schema έχει όπως στην εικόνα. Οι γραμμές που ενώνουν τους πίνακες είναι οι συσχετίσεις ξένων κλειδιών.  πχ το πεδίο bar στη σχέση Sells παίρνει τιμές όπως το πεδίο name που είναι το πρωτεύον κλειδί στη σχέση Bars.  Τα αρχεία της database (schema σε MySQL Workbench file, SQL κώδικας για δημιουργία της database, SQL κώδικας για εισαγωγή δεδομένων) βρίσκονται και στο: https://dl.dropboxusercontent.com/u/2690181/keep/myBeersDB.zip
  • 5. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 5 - Βάσεις Δεδομένων Ι SELECT ... FROM ... WHERE  Αυτή είναι η δομή μια τυπικής εντολής SELECT: SELECT <επιθυμητά γνωρίσματα> FROM <ένας ή περισσότεροι πίνακες> WHERE <περιορισμοί επιλογής πλειάδων>  Παραδείγματα (δοκιμάστε τα στο Workbench, αφού φτιάξετε την database): SELECT name FROM Beers WHERE manf='Anheuser-Busch';  Επιλογή του γνωρίσματος name από τη σχέση Beers για όσες πλειάδες της σχέσης Beers έχουν στο γνώρισμα manf τιμή 'Anheuser-Busch'.  σε απλά Ελληνικά: ποιες μπύρες φτιάχνει ο Anheuser-Busch;  Η απάντηση είναι μια σχέση (relation) με ένα μοναδικό γνώρισμα (το name) και πλειάδες με το όνομα κάθε μπύρας που φτιάχνει ο κατασκευ- αστής Anheuser-Busch, όπως Budweiser, κτλ. (βλ. πίνακα με αποτελέσματα δεξιά).  Γενική Ερμηνεία Ερωτήματος:  από τη σχέση στη δήλωση FROM...  εφαρμόζουμε το κριτήριο επιλογής που ορίζει η δήλωση WHERE...  και συλλέγουμε τα δεδομένα που ορίζει η δήλωση SELECT
  • 6. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 6 - Βάσεις Δεδομένων Ι Λειτουργική Επεξήγηση Ερωτήματος SELECT  Φανταστείτε μια πλειάδα-μεταβλητή (t) να επισκέπτεται κάθε πλειάδα της σχέσης που μνημονεύεται στη δήλωση FROM.  Γίνεται έλεγχος αν η τρέχουσα πλειάδα ικανοποιεί τις απαιτήσεις που ορίζει η δήλωση WHERE.  Αν τις ικανοποιεί, υπολογίζονται οι τιμές για τα γνωρίσματα (ή εκφράσεις) που βρί- σκονται μετά το SELECT, χρησιμοποιώντας τα δεδομένα της τρέχουσας πλειάδας.
  • 7. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 7 - Βάσεις Δεδομένων Ι Το * στις δηλώσεις SELECT  Αν στη δήλωση FROM υπάρχει μόνο μια σχέση τότε το * στη δήλωση SELECT σημαίνει "όλα τα γνωρίσματα αυτής της σχέσης". SELECT * FROM Beers WHERE manf = 'Anheuser-Busch';  Τώρα στο αποτέλεσμα εμπεριέχονται όλα τα γνωρίσματα της σχέσης Beers. AS: Ορισμός ονόματος σε γνώρισμα αποτελεσμάτων  Μπορούμε να αλλάξουμε όνομα σε γνώρισμα στον πίνακα αποτελεσμάτων χρησιμοποιώντας τη δήλωση: AS <νέο όνομα> (χωρίς τα < και > ) SELECT name AS beer, manf FROM Beers WHERE manf = 'Anheuser-Busch'
  • 8. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 8 - Βάσεις Δεδομένων Ι Υπολογιζόμενα (Calculated) & Σταθερά Πεδία  Μπορούμε να ενσωματώσουμε υπολογισμούς ως στοιχεία (calculated elements) στις δηλώσεις SELECT: SELECT bar, beer, price*340.75 AS priceInDrachmas FROM Sells;  το πεδίο priceInDrachmas υπολογίζεται δυναμικά με βάση το πεδίο price  Προσθήκη σταθερών εκφράσεων: απλά παραθέτουμε την σταθερή τιμή, πιθανώς ορίζοντας και κάποιο τίτλο (με χρήση του AS): SELECT drinker,'likes Bud' AS whoLikesBud FROM Likes WHERE beer = 'Budweiser'; Πιο Πολύπλοκες Συνθήκες στο WHERE  Επιτρέπεται η χρήση των λογικών τελεστών AND, OR, NOT  Επιτρέπεται η χρήση τελεστών που παράγουν λογικό αποτέλεσμα όπως π.χ. οι τελεστές σύγκρισης: =, <>, <, >, <=, >= SELECT price FROM Sells WHERE bar = 'Gecko Grill' AND beer = 'Budweiser';
  • 9. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 9 - Βάσεις Δεδομένων Ι Patterns στο WHERE (ισχύουν σε MySQL Server και σε MS SQL Server)  Τι είναι ένα pattern: αλφαριθμητικό που περιέχει τα σύμβολα % ή/και _  % (οποιοδήποτε αλφαριθμητικό – μηδέν ή περισσότεροι χαρακτήρες)  _ (οποιοσδήποτε (ένας) χαρακτήρας)  Σε μια συνθήκη (δήλωση WHERE) μπορούμε να συγκρίνουμε αλφαριθμητικά με κάποιο pattern ως εξής:  <γνώρισμα> LIKE <pattern>  <γνώρισμα> NOT LIKE <pattern>  Παράδειγμα: στις πλειάδες της σχέσης Drinkers(name, addr, phone) θέλουμε να βρούμε πελάτες με 234 στον αριθμό τηλεφώνου.  Σημείωση: παράδειγμα τηλεφώνου στην database: 415-234-6789 SELECT name, phone FROM Drinkers WHERE phone LIKE '%234%';  Με δεδομένη τη δομή των αριθμών τηλεφώνων, η επόμενη έκφραση είναι ισοδύναμη (γιατι;): SELECT name, phone FROM Drinkers WHERE phone LIKE '%234-_ ___';
  • 10. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 10 - Βάσεις Δεδομένων Ι Τιμές NULL σε Στήλες (1/2)  Το NULL ως τιμή σε μια στήλη προκύπτει όταν αυτή δεν έχει τιμή.  Προσοχή: άλλο το NULL και άλλο το '' (2 κολλητά μονά εισαγωγικά). Το '' είναι το αλφαριθμητικό μηδενικού μήκους.  Η ερμηνεία του NULL εξαρτάται από εμάς και πρέπει να γίνεται με συνέπεια (όχι μια "έτσι" και μια "αλλιώς"!). Συνήθεις περιπτώσεις:  ελλιπής τιμή (missing value)  Ξέρουμε ότι το bar Caravan (στην myBeersDB) έχει κάποια διεύθυνση αλλά δεν την γνωρίζουμε  μη εφαρμόσιμο (inapplicable)  πχ το γνώρισμα spouse (σύζυγος) δεν έχει νόημα για κάποιον(-α) που δεν είναι παντρεμένος(-η)  Στην SQL δεν μπορούμε να εμπλέξουμε το NULL σε ελέγχους και συνθήκες στο WHERE τμήμα εκφράσεων, καθώς το αποτέλεσμα θα είναι πάντα UKNOWN.  Η λογική των WHERE συνθηκών στην SQL είναι τρί-τιμη: TRUE, FALSE, UNKNOWN  Μια πλειάδα είναι στα αποτελέσματα ερωτήματος μόνο αν δίνει TRUE για τις συνθήκες του WHERE και όχι για FALSE ή UNKNOWN
  • 11. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 11 - Βάσεις Δεδομένων Ι Τιμές NULL σε Στήλες (2/2)  Μπορούμε να ελέγξουμε για την τιμή NULL με τη βοήθεια των εκφράσεων IS NULL και IS NOT NULL  Ποια bar στον πίνακα Bars δεν έχουν διεύθυνση; SELECT name, addr FROM Bars WHERE addr IS NULL;  Ποια bar στον πίνακα Bars δεν έχουν NULL για διεύθυνση; SELECT name, addr FROM Bars WHERE addr IS ΝΟΤ NULL;  Προσέξτε τα αποτελέσματα δεξιά! Υπάρχουν bar (2η , 4η , κτλ πλειάδες) που δεν έχουν διεύθυνση αλλά είναι στα αποτελέσματα. Τι συμβαίνει;  NULL vs Zero Length String: έχει δοθεί ως τιμή το αλφαριθμητικό μηδενικού μήκους (το οποίο ΔΕΝ είναι NULL) IFNULL() και ISNULL()  Πρόκειται για συνάρτηση της SQL (MySQL: ifnull(), MS SQL Server: isnull()) μέσω της οποίας ελέγχουμε αν η τιμή μιας στήλης είναι NULL και εφόσον είναι την αντικαθιστούμε με κάτι άλλο, δίνοντας έτσι την ερμηνεία που θέλουμε στο NULL. SELECT name, ifnull(addr,'άγνωστη') AS address FROM Bars WHERE addr IS NULL;
  • 12. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 12 - Βάσεις Δεδομένων Ι Ταξινόμηση Αποτελεσμάτων - ORDER BY  Το ORDER BY χρησιμοποιείται στο τέλος μιας SELECT ερώτησης για να ταξινο- μήσουμε τα αποτελέσματα με βάση τις τιμές μιας ή περισσότερων στηλών.  Η ταξινόμηση εξ ορισμού είναι αύξουσα (ASC – ascending=αύξουσα) αλλά μπορούμε να την κάνουμε και φθίνουσα με το DESC (descending=φθίνουσα). SELECT name FROM Bars ORDER BY name ASC;  Στην αύξουσα ταξινόμηση, τα NULL προηγούνται των αλφαριθμητικών μηδενικού μήκους και αυτά των μη μηδενικών αλφαριθμητικών (βλ. αποτελέσματα δεξιά). SELECT name, addr FROM Bars ORDER BY addr; SELECT TOP (ή LIMIT)  Μπορούμε να επιλέξουμε τις πρώτες Ν πλειάδες από το σύνολο των αποτελεσμάτων, ως εξής:  MySQL: SELECT name FROM Bars LIMIT 4;  MS SQL Server: SELECT TOP 4 name FROM Bars;  με ποσοστό: SELECT TOP 50% name FROM Bars;  Oracle: SELECT name FROM Bars WHERE ROWNUM<=4;
  • 13. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 13 - Βάσεις Δεδομένων Ι Επιλογή Υποσυνόλου Αποτελεσμάτων (Πλειάδων)  Σε MySQL, μπορούμε να επιλέξουμε πλειάδες με χρήση του τελεστή LIMIT N,K ο οποίος από το αρχικό σύνολο αποτελεσμάτων επιστρέφει τις πρώτες Κ εγγραφές, αρχίζοντας από την εγγραφή με δείκτη Ν.  SELECT name FROM Bars LIMIT 0,4;  επιστρέφει τις εγγραφές 1η , 2η , 3η και 4η (δηλαδή 4 στο πλήθος), αρχίζοντας από αυτή με δείκτη 0 (δηλ. την 1η ) )  SELECT name FROM Bars LIMIT 19,10;  επιστρέφει 10 εγγραφές αρχίζοντας από την εγγραφή με δείκτη 19, δηλαδή την 20η , 21η , ...., 29η Τελεστής ΙΝ  Επιτρέπει να ορίσουμε πολλαπλές τιμές στο WHERE.  SELECT name, city FROM Bars WHERE city IN ('Chicago', 'New York');  στα αποτελέσματα, το city θα είναι είτε Chicago ή New York Τελεστής DISTINCT  Αφαιρεί από τα αποτελέσματα τις πολλαπλές απαντήσεις!  χωρίς DISTINCT: SELECT city FROM Bars;  με DISTINCT: SELECT DISTINCT city FROM Bars;
  • 14. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 14 - Βάσεις Δεδομένων Ι INSERT INTO (εισαγωγή πλειάδας)  Το χρησιμοποιούμε για εισαγωγή πλειάδων. Έχει δύο τρόπους σύνταξης:  με απαρίθμηση πεδίων INSERT INTO beers (name, manf) VALUES ('Mythos', 'AZ AE');  Χρησιμοποιείται όταν δεν δίνουμε τιμές σε όλα τα πεδία της σχέσης, οπότε πρέπει να πούμε για ποιες στήλες δίνουμε.  Υπενθυμίζεται ότι επιτρέπεται να μην δώσουμε τιμή αν κάποιο γνώρισμα, σε επίπεδο σχεδίασης της σχέσης, έχει δηλωμένη default τιμή ή επιτρέπεται να πάρει τιμή NULL.  Μπορούμε να βάλουμε τα πεδία με όποια σειρά θέλουμε, αρκεί να την τηρήσουμε στο VALUES  χωρίς απαρίθμηση πεδίων INSERT INTO beers VALUES ('Mythos', 'Αθηναϊκή AE');  ο δεύτερος τρόπος είναι εφικτός μόνο εάν παρέχουμε τιμή σε όλες τις στήλες της πλειάδας  Σε κάθε περίπτωση, αν το επιθυμούμε, μπορούμε να δώσουμε και τιμή NULL ως εξής: INSERT INTO beers VALUES ('Amstel', 'Αθηναϊκή AE', NULL, NULL);  Αν κατά την εκτέλεση μιας εντολής INSERT προκύψει ότι η πλειάδα που πάει να δημιουργηθεί έχει ίδιο πρωτεύων κλειδί με άλλη υπάρχουσα πλειάδα, η εντολή αποτυγχάνει με σχετικό μήνυμα (primary key violation).  Επιτρέπεται να καταχωρήσουμε ταυτόχρονα πολλαπλές πλειάδες: INSERT INTO beers VALUES ('Amstel','xyzw'), ('Amstel Black','abcd');  Σε στήλες με ρύθμιση auto incremental δεν δίνουμε τιμή.
  • 15. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 15 - Βάσεις Δεδομένων Ι DELETE FROM (διαγραφή πλειάδας)  Το χρησιμοποιούμε για διαγραφή πλειάδων. DELETE FROM Beers WHERE Name='Mythos'  ΠΡΟΣΟΧΗ: το WHERE τμήμα είναι βασικό καθώς προσδιορίζει (μέσω κάποιας συνθήκης) ποια ή ποιες πλειάδες διαγράφουμε.  Δεν είναι όμως υποχρεωτικό – εξαρτάται τι θέλουμε να διαγράψουμε!  Μπορούμε να διαγράψουμε όλες τις εγγραφές ως εξής (ο πίνακας θα απομείνει άδειος): DELETE FROM <όνομα πίνακα> ή DELETE * FROM <όνομα πίνακα> UPDATE (ενημέρωση/μεταβολή πλειάδας)  Χρησιμοποιείται για να μεταβάλουμε την τιμή σε κάποιο ή κάποια πεδία σε μία ή περισσότερες εγγραφές.  Οι εγγραφές προσδιορίζονται μέσω συνθήκης WHERE. UPDATE bars SET city='Chicago', addr='106st Addison' WHERE name='The Blank Club';  ΠΡΟΣΟΧΗ: το WHERE τμήμα είναι βασικό καθώς προσδιορίζει (μέσω κάποιας συνθήκης) ποια ή ποιες πλειάδες διαγράφουμε. Δεν είναι όμως υποχρεωτικό – εξαρτάται τι θέλουμε να μεταβάλουμε!
  • 16. Φ. Κόκκορας / Τμ. Μηχανικών Πληροφορικής ΤΕ / ΤΕΙ Θεσσαλίας - 16 - Βάσεις Δεδομένων Ι Γενική Παρατήρηση  Οι ενέργειες εισαγωγή/INSERT, ενημέρωση/UPDATE και διαγραφή/DELETE δεν επιστρέφουν κάποιο αποτέλεσμα (όπως για παράδειγμα η επιλογή/SELECT) αλλά τροποποιούν με κάποιο τρόπο τα δεδομένα της database. Η επιτυχής εκτέλεση εντολών INSERT, DELETE και UPDATE προϋποθέτει ότι δεν παραβιάζεται κάποιος άλλος περιορισμός που τυχόν υπάρχει, όπως πχ περιορισμοί ξένου κλειδιού.  Στην πράξη, μετά την εκτέλεση τέτοιων εντολών, οφείλουμε να ελέγξουμε τυχόν σφάλματα που καταγράφηκαν στον database server.  το MySQL Workbench ανακοινώνει εξ ορισμού τέτοια σφάλματα  αν η πρόσβαση στην database γίνεται προγραμματιστικά, οι γλώσσες προγραμματισμού παρέχουν κατάλληλες δομές και εντολές για έλεγχο του τι συνέβη. ...