×
Κατασκευή Ιστοσελίδων WordPress Joomla wordpress vs html/css
×
Κατασκευή Eshop Woocommerce Opencart Magento Shopify
×
Προώθηση Ιστοσελίδων Digital Marketing Μαθήματα Facebook Σεμινάρια Linkedin Μαθήματα Instagram Σεμινάρια Twitter Μαθήματα Pinterest
×
Κατασκευή web εφαρμογών Σεμινάρια JAVA Μαθήματα PHP Σεμινάρια MySQL
×
Μαθήματα Excel Σεμινάρια VBA Σεμινάρια Photoshop Μαθήματα PowerPoint Σεμινάρια Word Μαθήματα Προγραμματισμού Πληροφορική στο δημοτικό

balatsoukas logo balatsoukas.com

Μαθήματα mysql

Μαθήματα mysql και σεμινάρια σε βάσεις δεδομένων. Ιδιαίτερα μαθήματα mysql. Εκπαίδευση ενηλίκων σε βάσεις δεδομένων. Εκπαιδευτής προγραμματιστής php mysql.

Εκπαιδευτής Ενηλίκων Νικόλαος Μπαλατσούκας Τηλ. (+30) 6977676785

Όταν υπάρχει ανάγκη δημιουργίας βάσης δεδομένων στο διαδίκτυο τότε η mysql αποτελεί την πιο δημοφιλή επιλογή. Η βάση δεδομένων mysql αποτελεί δωρεάν λογισμικό το οποίο χρησιμοποιείται πολύ συχνά στις web εφαρμογές. Για την ακρίβεια η σχεδίαση μιας web εφαρμογής ξεκινά με τη σχεδίαση της βάσης δεδομένων. Επίσης τα δημοφιλή προγράμματα κατασκευής ιστοσελίδων όπως είναι το wordpress, το joomla, το opencart και πολλά άλλα χρησιμοποιούν mysql για την αποθήκευση των δεδομένων. Γενικότερα θα λέγαμε ότι mysql αποτελεί ένα πολύ σημαντικό κομμάτι για τη διαδικασία κατασκευής ιστοσελίδων. Για αυτό πρέπει να αφιερώνουμε αρκετό χρόνο στα μαθήματα κατασκευής Ιστοσελίδων.

Mysql και PHP

Όταν έχουμε να κάνουμε με δημιουργία διαδικτυακής εφαρμογής τότε η βάση δεδομένων php συνδυάζεται συνήθως με τη γλώσσα προγραμματισμού PHP. Χρησιμοποιούμε τη γλώσσα php για να επεξεργαστούμε τα δεδομένα που βρίσκονται στη βάση δεδομένων Mysql. Αυτό ακριβώς συμβαίνει στο opencart, στο wordpress και στο joomla. Αυτό μπορούμε να κάνουμε και εμείς οι ίδιοι όταν φτιάξουμε τη δική μας web εφαρμογή. Η γνώση της γλώσσας php επιτρέπει στον προγραμματιστή να δημιουργήσει τη δική του εφαρμογή η οποία να επεξεργάζεται τα δεδομένα της βάσης δεδομένων που θα σχεδιάσει ο ίδιος. Καλό θα είναι ο εκπαιδευόμενος να συνδυάσει τα μαθήματα mysql με τα μαθήματα php.

Java και MySQL

Η σύνδεση στη βάση δεδομένων mysql με τη γλώσσα προγραμματισμού php αποτελεί το πρότυπο της αγοράς για διαδικτυακές εφαρμογές. Μια άλλη πολύ συνηθισμένη περίπτωση είναι όταν έχουμε εφαρμογές σε σταθερό υπολογιστή ή εφαρμογές που θα εκτελεστούν μέσα από κινητά τηλέφωνα smartphones. Τότε το πρότυπο της αγοράς είναι η σύνδεση στη mysql μέσω της γλώσσας προγραμματισμού java. Πρόκειται για έναν πολύ δημοφιλή συνδυασμό ο οποίος χρησιμοποιείται από πάρα πολλές εταιρείες στην ελληνική αγορά. Επίσης πρόκειται για ένα αντικείμενο το οποίο διδάσκεται σε αρκετές πανεπιστημιακές σχολές και μάλιστα αποτελεί αντικείμενο πολλών διπλωματικών εργασιών. Η σύνδεση γίνεται χρησιμοποιώντας το JAVA JDBC το οποίο μας επιτρέπει πρόσβαση σε δεδομένα κάθε τύπου σχεσιακής βάσης δεδομένων. Για να μπορέσει ο εκπαιδευόμενος να αποκτήσει ευχέρεια στην ανάπτυξη εφαρμογών βάσης δεδομένων με java Θα πρέπει πρώτα να αποκτήσει ευκαιρία με τις βασικές εντολές της γλώσσας προγραμματισμού java. Αυτό μπορεί να το πετύχει πολύ εύκολα παρακολουθώντας ένα βασικό σεμινάριο java. Εάν έχει ήδη προγραμματιστικές γνώσεις η εμπειρία σε κάποια άλλη γλώσσα προγραμματισμού τότε ενδεχομένως να διαρκούν 2-3 ιδιαίτερα μαθήματα java.

Σεμινάρια mysql

Σε ένα σεμινάριο mysql με ένα οργανωμένο και δομημένο τρόπο μαθαίνουμε να σχεδιάζουμε μια βάση δεδομένων. Το ζητούμενο κατά τη δημιουργία βάσης δεδομένων είναι να ικανοποιήσει τις ανάγκες του πελάτη με τον καλύτερο τρόπο. Στα μαθήματα mysql μέσα από απλά παραδείγματα ο εκπαιδευόμενος μαθαίνει να σχεδιάζει και να υλοποιεί τους πίνακες, τα πεδία αλλά και τη συσχέτιση μεταξύ των πινάκων σε μια βάση δεδομένων Mysql. Χρησιμοποιούμε παραδείγματα μέσα από πραγματικές ανάγκες που προκύπτουν πολύ συχνά κατά τη δημιουργία διαδικτυακών εφαρμογών. Κατά την εκπαίδευση ενηλίκων είναι πολύ σημαντικό να χρησιμοποιούνται παραδείγματα βγαλμένα από την εμπειρία σε πραγματικές διαδικτυακές εφαρμογές. Με αυτό τον τρόπο το όφελος είναι διπλό. Από τη μια το ενδιαφέρον του εκπαιδευόμενου παραμένει αμείωτο μέχρι το τέλος του σεμιναρίου Mysql. Και από την άλλη στο τέλος του μαθήματος mysql ο εκπαιδευόμενος έχει ήδη μια μικρή πρακτική εμπειρία.

Στον ακόλουθο σύνδεσμο θα βρείτε playlist που περιλαμβάνει αποκλειστικά βίντεο εκπαίδευσης με τεχνικές διαχείρισης βάσεων δεδομένων.

PLAYLIST YOUTUBE: Εκπαιδευτικά video που αφορούν βάσεις δεδομένων

Δημιουργία πινάκων στη βάση δεδομένων:

Το πρώτο βήμα για τη δημιουργία βάσης δεδομένων είναι να κάνετε εξάσκηση στη δημιουργία πινάκων:

  1. Να δημιουργηθεί πίνακας "Ομάδες" με τρια πεδία: id, ομάδα, χρώμα
  2. Να δημιουργηθεί πίνακας "Τροφές" με τρια πεδία: id, τροφή, θερμίδες (ανά κιλό)
  3. Να δημιουργηθεί πίνακας "Αθλήματα" με τρια πεδία: id, άθλημα, θερμίδες (ανά ώρα)
  4. Να δημιουργηθεί πίνακας "Χώρες" με τρια πεδία: id, χώρα, πρωτεύουσα
  5. Να δημιουργηθεί πίνακας "Νομοί" με τρια πεδία: id, νομός, πρωτεύουσα
  6. Να δημιουργηθεί πίνακας "Αυτοκίνητα" με τρια πεδία: id, μάρκα, χώρα
  7. Να δημιουργηθεί πίνακας "Αυτοκίνητα1" με τρια πεδία: id, μάρκα, μοντέλο

Στη συνέχεια να καταχωρήσετε περίπου 20 εγγραφές σε κάθε πίνακα.

Και μετά να εκτελέσετε εντολές SELECT σε κάθε πίνακα (π.χ. να βρείτε τροφές με λίγες θερμίδες, αθλήματα στ αοποία καταναλώνονται πολλές θερμίδες, πόλεις που αρχίζουν από "A", χώρες που αρχίζουν από "B", κλπ)

Δημιουργία βάσης δεδομένων MySQL

Για τις ανάγκες του παραδείγματος δημιουργήσαμε πίνακα στη βάση δεδομένων MySQL:

δημιουργία βάσης δεδομένων MYSQL

Στη συνέχεια κάναμε εισαγωγή εγγραφών στον πίνακα της MySQL:

εισαγωγή εγγραφών στη βάση δεδομένων MYSQL

Εδώ βρίσκεται ο κώδικας με τις εντολές SQL για τη δημιουργία της βάσης δεδομένων:

customers.sql

Ασκήσεις MySQL

Ακολουθούν ασκήσεις mysql. Στον ακόλουθο σύνδεσμο μπορείτε να κάνετε άμεση εφαρμογή των εντολών mysql. Η σελίδα δημιουργήθηκε με τη γλώσσα php:

http://22282212531.thesite.link/a1/4.php
  1. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers

  2. Να εμφανίσετε τα ονόματα όλων των εγγραφών του πίνακα Customers
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1 from customers

  3. Να εμφανίσετε τα ονόματα όλων των εγγραφών του πίνακα Customers με έτος γέννησης 1980
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1 from customers Where YearBirth = 2000

  4. Να εμφανίσετε τα ονόματα όλων των εγγραφών του πίνακα Customers με επώνυμο "Νικολάου"
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1 from customers where CustomersLastName = 'Νικολάου'

  5. Να εμφανίσετε όνομα και πόλη όλων των εγγραφών του πίνακα Customers με επώνυμο "Νικολάου"
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, City as field4 from customers where CustomersLastName = 'Νικολάου'

  6. Να εμφανίσετε όνομα και επώνυμο όλων των εγγραφών του πίνακα Customers με πόλη "Βόλος"
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2 from customers where city like "Βόλος"

  7. Να εμφανίσετε όνομα και επώνυμο όλων των εγγραφών του πίνακα Customers με έτος γέννησης μεγαλύτερο από 1970
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2 from customers Where YearBirth > 1970

  8. Να εμφανίσετε πόλη και επώνυμο όλων των εγγραφών του πίνακα Customers με έτος γέννησης μικρότερο από 1980
    ΑΠΑΝΤΗΣΗ:
    select CustomersLastName as field2, City as field4 from customers Where YearBirth < 1980

  9. Να εμφανίσετε πόλη και επώνυμο όλων των εγγραφών του πίνακα Customers με έτος γέννησης μικρότερο ή ίσο από 1980
    ΑΠΑΝΤΗΣΗ:
    select CustomersLastName as field2, City as field4 from customers Where YearBirth <= 1980

  10. Να εμφανίσετε πόλη και επώνυμο όλων των εγγραφών του πίνακα Customers με έτος γέννησης διαφορετικό από 1980
    ΑΠΑΝΤΗΣΗ:
    select CustomersLastName as field2, City as field4 from customers Where YearBirth <> 1980

  11. Να εμφανίσετε μοναδικές τιμές ονομάτων όλων των εγγραφών του πίνακα Customers
    ΑΠΑΝΤΗΣΗ:
    select DISTINCT CustomersName as field1 from customers

  12. Να εμφανίσετε μοναδικές τιμές των πόλεων όλων των εγγραφών του πίνακα Customers
    ΑΠΑΝΤΗΣΗ:
    select DISTINCT city as field1 from customers

  13. Να εμφανίσετε μοναδικές τιμές πόλεων στις οποίες μένουν άνθρωποι (εγγραφές) με έτος γέννησης μεγαλύτερο από το 1980
    ΑΠΑΝΤΗΣΗ:
    select DISTINCT city as field1 from customers Where YearBirth > 1980

  14. Να εμφανίσετε μοναδικές τιμές επωνύμων όλων των εγγραφών του πίνακα Customers με όνομα "Μαρία"
    ΑΠΑΝΤΗΣΗ:
    select DISTINCT CustomersLastName as field1 from customers where CustomersName = 'Μαρία'

  15. Να εμφανίσετε όλα τα ονόματα που αρχίζουν από A
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersLastName as field1 FROM customers Where CustomersLastName LIKE 'Α%'

  16. Να εμφανίσετε όλα τα επώνυμα που αρχίζουν από Γεω
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersLastName as field1 FROM customers Where CustomersLastName LIKE 'Γεω%'

  17. Να εμφανίσετε όλα τα ονόματα που τελειώνουν σε ος
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersLastName as field1 FROM customers Where CustomersLastName LIKE '%ος'

  18. Να εμφανίσετε όλα τα έτη γέννησης που περιέχουν το 97 σε οποιοδήποτε σημείο
    ΑΠΑΝΤΗΣΗ:
    SELECT YearBirth as field1 FROM customers Where YearBirth LIKE '%97%'

  19. Να εμφανίσετε όλα τα πεδία των εγγαρφών που γιορτάζουν στις 21 Μαϊου (Κώστας, Ελένη)
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers where CustomersName = 'Κώστας' OR CustomersName = 'Ελένη'

  20. Να γράψετε ΣΕ ΜΙΑ ΣΤΗΛΗ το όνομα και το επώνυμο (εντολή CONCAT)
    ΑΠΑΝΤΗΣΗ:
    SELECT CONCAT(CustomersName, " ", CustomersLastName) AS field2 from customers

  21. Να βρείτε το πλήθος των εγγραφών του πίνακα customers (δηλαδή πόσα ονόματα περιέχει ο πίνακας customers)
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(*) AS field2 FROM customers;

  22. Να βρείτε το πλήθος των εγγραφών του πίνακα customers με όνομα 'Σταυρούλα'
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(*) AS field2 FROM customers where CustomersName = 'Σταυρούλα'

  23. Να βρείτε το πλήθος των εγγραφών του πίνακα customers με έτος γέννησης μεγαλύτερο του 2000
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(*) AS field2 FROM customers Where YearBirth > 2000

  24. Να βρείτε το πλήθος των εγγραφών του πίνακα customers με έτος γέννησης μικρότερο του 1980
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(*) AS field2 FROM customers Where YearBirth < 1980

  25. Να βρείτε το πλήθος των εγγραφών του πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(CustomersName) AS field2 FROM customers

  26. Να βρείτε το πλήθος των μοναδικών ονομάτων του πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(DISTINCT CustomersName) AS field2 FROM customers

  27. Να βρείτε το πλήθος των ονομάτων του πίνακα customers με διαμονή στην Αθήνα
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(CustomersName) AS field2 FROM customers where city like "Αθήνα"

  28. Να βρείτε το πλήθος των μοναδικών ονομάτων του πίνακα customers με διαμονή στην Αθήνα
    ΑΠΑΝΤΗΣΗ:
    SELECT COUNT(DISTINCT CustomersName) AS field2 FROM customers where city like "Αθήνα"

  29. Να εμφανίσετε τα ονόματα του πίνακα customers με διαμονή στην Αθήνα
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersName AS field2 FROM customers where city like "Αθήνα"

  30. Να εμφανίσετε τα μοναδικά ονόματα του πίνακα customers με διαμονή στην Αθήνα
    ΑΠΑΝΤΗΣΗ:
    SELECT DISTINCT CustomersName AS field2 FROM customers where city like "Αθήνα"

  31. Να βρείτε το μεγαλύτερο έτος γέννησης του πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT MAX(YearBirth) AS field2 FROM customers

  32. Να βρείτε το μεγαλύτερο έτος γέννησης του πίνακα customers όσων μένουν στα Τρίκαλα
    ΑΠΑΝΤΗΣΗ:
    SELECT MAX(YearBirth) AS field2 FROM customers where city like "Τρίκαλα"

  33. Να εμφανίσετε τα έτη γέννησης του πίνακα customers όσων μένουν στα Τρίκαλα
    ΑΠΑΝΤΗΣΗ:
    SELECT YearBirth AS field2 FROM customers where city like "Τρίκαλα"

  34. Να βρείτε το μικρότερο έτος γέννησης του πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT MIN(YearBirth) AS field2 FROM customers

  35. Να βρείτε το μικρότερο έτος γέννησης του πίνακα customers όσων μένουν στο Βόλο
    ΑΠΑΝΤΗΣΗ:
    SELECT MIN(YearBirth) AS field2 FROM customers where city like "Βόλος"

  36. Να εμφανίσετε τα έτη γέννησης του πίνακα customers όσων μένουν στο Βόλο
    ΑΠΑΝΤΗΣΗ:
    SELECT YearBirth AS field2 FROM customers where city like "Βόλος"

  37. Να βρείτε το μέσο όρο για το έτος γέννησης του πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT AVG(YearBirth) AS field2 FROM customers

  38. Να βρείτε το μέσο όρο για το έτος γέννησης του πίνακα customers όσων μένουν στην Άρτα
    ΑΠΑΝΤΗΣΗ:
    SELECT AVG(YearBirth) AS field2 FROM customers where city like "Άρτα"

  39. Να εμφανίσετε τα έτη γέννησης του πίνακα customers όσων μένουν στην Άρτα
    ΑΠΑΝΤΗΣΗ:
    SELECT YearBirth AS field2 FROM customers where city like "Άρτα"

  40. Να βρείτε το μέσο όρο του έτους γέννησης ανά πόλη για τον πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, AVG(YearBirth) AS field2 FROM customers group by city

  41. Να βρείτε τη μεγαλύτερη τιμή του έτους γέννησης ανά πόλη για τον πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, MAX(YearBirth) AS field2 FROM customers group by city

  42. Να βρείτε την ελάχιστη τιμή του έτους γέννησης ανά πόλη για τον πίνακα customers
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, MIN(YearBirth) AS field2 FROM customers group by city

  43. Να βρείτε το πλήθος των ανθρώπων που μένουν σε κάθε πόλη
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, COUNT(*) AS field2 FROM customers group by city

  44. Να βρείτε το πλήθος των ανθρώπων ανά όνομα
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersName as field1, COUNT(*) AS field2 FROM customers group by CustomersName

  45. Να βρείτε το πλήθος των ανθρώπων ανά επώνυμο
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersLastName as field1, COUNT(*) AS field2 FROM customers group by CustomersLastName

  46. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες ως προς όνομα
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY CustomersName

  47. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες ως προς όνομα με αντίστροφη αλφαβητική σειρά (από το Ω ως το Α)
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY CustomersName desc

  48. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες ως προς επώνυμο
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY CustomersLastName

  49. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες ως προς επώνυμο με αντίστροφη αλφαβητική σειρά (από το Ω ως το Α)
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY CustomersLastName desc

  50. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες σε αύξουσα σειρά προς έτος γέννησης
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY YearBirth

  51. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες σε φθίνουσα σειρά προς έτος γέννησης
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY YearBirth desc

  52. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες ως προς πόλη
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY City

  53. Να εμφανίσετε όλες τις εγγραφές του πίνακα Customers ταξινομημένες ως προς πόλη με αντίστροφη αλφαβητική σειρά (από το Ω ως το Α)
    ΑΠΑΝΤΗΣΗ:
    select CustomersName as field1, CustomersLastName as field2, YearBirth as field3, City as field4 from customers ORDER BY City desc

  54. Να βρείτε το μέσο όρο του έτους γέννησης ανά πόλη για τον πίνακα customers και να τα παρουσιάσετε με αντίστροφη αλφαβητική σειρά ως προς την πόλη (από το Ω ως το Α)
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, AVG(YearBirth) AS field2 FROM customers group by city ORDER BY city desc

  55. Να βρείτε τη μεγαλύτερη τιμή του έτους γέννησης ανά πόλη για τον πίνακα customers και να τα παρουσιάσετε με αντίστροφη αλφαβητική σειρά ως προς την πόλη (από το Ω ως το Α)
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, MAX(YearBirth) AS field2 FROM customers group by city ORDER BY city desc

  56. Να βρείτε την ελάχιστη τιμή του έτους γέννησης ανά πόλη για τον πίνακα customers και να τα παρουσιάζετε με αύξουσα σειρά ως προς το έτος
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, MIN(YearBirth) AS field2 FROM customers group by city ORDER BY field2

  57. Να βρείτε το πλήθος των ανθρώπων που μένουν σε κάθε πόλη και να τα παρουσιάσετε με αύξουσα σειρά ως προς το πλήθος
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, COUNT(*) AS field2 FROM customers group by city ORDER BY field2

  58. Να βρείτε το πλήθος των ανθρώπων που μένουν σε κάθε πόλη και να τα παρουσιάσετε με φθίνουσα σειρά ως προς το πλήθος
    ΑΠΑΝΤΗΣΗ:
    SELECT city as field1, COUNT(*) AS field2 FROM customers group by city ORDER BY field2 desc

  59. Να βρείτε το πλήθος των ανθρώπων ανά όνομα και να τα παρουσιάσετε με αύξουσα σειρά ως προς το πλήθος
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersName as field1, COUNT(*) AS field2 FROM customers group by CustomersName ORDER BY field2

  60. Να βρείτε το πλήθος των ανθρώπων ανά επώνυμο και να τα παρουσιάσετε με φθίνουσα σειρά ως προς το πλήθος
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersLastName as field1, COUNT(*) AS field2 FROM customers group by CustomersLastName ORDER BY field2 desc

  61. Να βρείτε το μέσο όρο ηλικίας ανά όνομα
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersName as field1, AVG(YearBirth) AS field2 FROM customers group by CustomersName

  62. Να βρείτε το μέσο όρο ηλικίας ανά όνομα και να παρουσιάσετε αποτέλεσμα μόνο για τα ονόματα που έχουν μέσο όρο ηλικίας μεγαλύτερο του 1990
    ΑΠΑΝΤΗΣΗ:
    SELECT CustomersName as field1, AVG(YearBirth) AS field2 FROM customers group by CustomersName HAVING AVG(YearBirth) > 1990

  63. Να βρείτε τη μέγιστη ηλικία ανθρώπων ανά πόλη
    ΑΠΑΝΤΗΣΗ:
    SELECT City as field1, MAX(YearBirth) AS field2 FROM customers group by City

  64. Να βρείτε τη μέγιστη ηλικία ανθρώπων ανά πόλη και να παρουσιάσετε αποτέλεσμα μόνο για τα πόλεις που έχουν μέγιστη ηλικία μικρότερη του 1995
    ΑΠΑΝΤΗΣΗ:
    SELECT City as field1, MAX(YearBirth) AS field2 FROM customers group by City HAVING MAX(YearBirth) < 1995

  65. Να βρείτε τη μέγιστη ηλικία ανθρώπων ανά πόλη και να παρουσιάσετε αποτέλεσμα μόνο για τα πόλεις που έχουν μέγιστη ηλικία μικρότερη του 1995 ταξινομημένα σε φθίνουσα σειρά ως προς έτος
    ΑΠΑΝΤΗΣΗ:
    SELECT City as field1, MAX(YearBirth) AS field2 FROM customers group by City HAVING MAX(YearBirth) < 1995 ORDER BY field2 desc

Απλή εντολή SQL:

απλή εντολή SQL

Πλήρης εντολή SQL:

πλήρης εντολή SQL

Εντολή SQL ομαδοποίησης:

εντολή SQL ομαδοποίησης

Εάν θέλετε να κάνετε εξάσκηση στο δικό σας υπολογιστή τότε θα πρέπει να εγκαταστήσετε το xampp. Στον ακόλουθο σύνδεσμο δείχνουμε βήμα προς βημα τη διαδικασία για την εγκατάσταση του xampp

Ασκήσεις δημιουργίας βάσης δεδομένων

Ακολουθούν απλες ασκήσεις για τη δημιουργία τυπικών βάσεων δεδομένων που χρησιμοποιούνται σε πολλές εφαρμογές:

Πρώτη άσκηση στις βάσεις δεδομένων:

Να δημιουργηθεί βάση δεδομένων για εκδοτικό οίκο:

Δεύτερη άσκηση στις βάσεις δεδομένων:

Να βελτιωθεί η βάση δεδομένων για τον εκδοτικό οίκο:

Τρίτη άσκηση στις βάσεις δεδομένων:

Να δημιουργηθεί βάση δεδομένων για πωλήσεις:

Τέταρτη άσκηση στις βάσεις δεδομένων:

Να βελτιωθεί η βάση δεδομένων για πωλήσεις:

Πέμπτη άσκηση στις βάσεις δεδομένων:

Να δημιουργηθεί βάση δεδομένων για ηλεκτρονικό κατάστημα:

Έκτη άσκηση στις βάσεις δεδομένων:

Έχουμε κομμωτήριο το οποίο προμηθεύεται βαφές, σαμπουάν και καλλυντικά.
Προμηθεύεται από τρεις εταιρείες: Korres, wella και kerastase.
Θέλουμε να δημιουργήσουμε βάση δεδομένων η οποία να επιτρέπει:

  1. Να υπάρχει αποθήκη με απόθεμα για το κάθε προϊόν.
  2. Να βλέπουμε σε ποια προϊόντα μειώθηκε πολύ το απόθεμα.
  3. Κάθε φορά που πωλείται προϊόν να καταγράφεται η πώληση και να αφαιρείται από το απόθεμα.
  4. Κάθε Χριστούγεννα να στέλνουμε προσφορές στους πελάτες μέσω sms και email.
  5. Κάθε φορά που μας επισκέπτεται ο υπάλληλος του προμηθευτή να βλέπουμε ποια προϊόντα χρειαζόμαστε (μικρό απόθεμα).
  6. Κάθε εβδομάδα να βλέπουμε ποιοί πελάτες έχουν γενέθλια ή ονομαστική εορτή και να τους στέλνουμε χρόνια πολλά.
  7. Να ξέρουμε ποιος προμηθευτής πουλάει περισσότερο.
  8. Να ξέρουμε αν οι περισσότερες πωλήσεις είναι σε βαφές, σαμπουάν ή καλλυντικά.

Ασκήσεις SQL

Στη συνέχεια ακολουθούν ασκήσεις SQL τις οποίες μπορείτε να εκτελέσετε στον υπολογιστή σας με το xampp και το phpmyadmin. Περιλαμβάνονται οι εντολές δημιουργίας των πινάκων στις βάσεις δεδομένων (create) καθώς και οι εντολές SQL για την καταχώρηση των δεδομένων (insert). Εδώ θα βείτε τις υπόλοιπες ασκήσεις για τα μαθήματα sql.

Κατασκευή web εφαρμογής

Οι web εφαρμογές ή αλλιώς διαδικτυακές εφαρμογές είναι λογισμικό διαχείρισης βάσης δεδομένων που εκτελούνται στο διαδίκτυο. Η σημαντικότερη γνώση για να δημιουργήσουμε μία web εφαρμογή είναι ικανοποιητική χρήση της γλώσσας sql. Μία διαδικτυακή εφαρμογή βάσεις δεδομένων περιλαμβάνει πολλά αρχεία προγραμματισμού τα οποία συνδέονται με τη βάση δεδομένων και παρουσιάζουν τα αποτελέσματα αναζήτησης. Επίσης περιλαμβάνει αρχεία εισαγωγής επεξεργασίας και διαγραφής δεδομένων από τη βάση. Όταν αποκτήσουμε ικανοποιητικές γνώσεις mysql τότε το επόμενο βήμα είναι να κάνουμε μία δοκιμαστική κατασκευή web εφαρμογής.

Ενδεικτικές εφαρμογές βάσης δεδομένων mysql

Η βάση δεδομένων mysql είναι κατάλληλη για μία ευρεία γκάμα προγραμματιστικών εφαρμογών. Ένα τυπικό προγραμματισμού παράδειγμα που χρειάζεται βάση δεδομένων θα μπορούσε να είναι η ανάπτυξη εφαρμογής για ένα εμπορικό κατάστημα το οποίο θέλει να οργανώσει την αποθήκη του. Η πρόσβαση στη βάση δεδομένων μπορεί να γίνει με πολλές γλώσσες προγραμματισμού. Μία πολύ απλή γλώσσα την οποία μπορούμε να χρησιμοποιήσουμε για να αποκτήσουμε πρόσβαση στα δεδομένα είναι η γλώσσα προγραμματισμού vba. εκτελούμε πολύ απλά τη vba μέσα από το excel και χρησιμοποιούμε απευθείας τα δεδομένα στο φύλλο εργασίας. Το πώς μπορεί να γίνει αυτό μπορείτε να το μάθετε παρακολουθώντας ένα ένα σεμινάριο vba. Ως χαρακτηριστικό παράδειγμα που διδάσκεται σε αρκετές σχολές πληροφορικής μπορούμε να αναφέρουμε τη μηχανογράφηση ενός dvd club. Ένα δεύτερο παράδειγμα προγραμματισμού που απαιτεί βάση δεδομένων MySQL θα μπορούσε να είναι η μηχανογράφηση ενός λογιστικού γραφείου στο οποίο να έχει αποθηκευμένα τα στοιχεία των πελατών του τα οποία να χρησιμοποιεί και τις εκτυπώσεις των σχετικών λογιστικών εντύπων. Μπορούμε ακόμα να χρησιμοποιήσουμε τη mysql για να αποθηκεύσουμε τα ονόματα, τα τηλέφωνα και τις διευθύνσεις του προσωπικού μας τηλεφωνικού καταλόγου. Σε όλες αυτές τις εφαρμογές ο όγκος δεδομένων είναι μικρός όπως επίσης και η συχνότητα των συναλλαγών είναι μικρή. Για να παρακολουθήσει κάποιος ολόκληρη τη διαδικασία κατασκευής του προγράμματος πρέπει να διαθέτει προγραμματιστικές γνώσεις. Δεν γίνεται κατανοητή η ροή του προγράμματος εάν δεν έχει παρακολουθήσει κάποιος μαθήματα προγραμματισμού.

Πότε δεν ενδείκνυται η χρήση της mysql

Η mysql δεν ενδείκνυται για ιδιαίτερα απαιτητικές εφαρμογές βάσης δεδομένων. Σε περίπτωση που χρειάζεται να διαχειριστούμε πολύ μεγάλο όγκο δεδομένων η πολύ μεγάλη συχνότητα συναλλαγών τότε θα πρέπει να προχωρήσουμε σε μεγαλύτερα συστήματα διαχείρισης βάσεων δεδομένων. σε αυτή την κατηγορία των μεγαλύτερων συστημάτων διαχείρισης βάσης δεδομένων ανήκει ο SQL Server, η Oracle καθώς και η PostgreSQL. Ως φυσική συνέχεια της mysql όταν ανέβει πολύ ο όγκος των απαιτήσεων θεωρείται η PostgreSQL διότι είναι το πιο δημοφιλές Open Source Σύστημα Διαχείρισης Σχεσιακής Βάσης Δεδομένων. Ας πάρουμε για παράδειγμα τη δημιουργία eshop opencart. Όσο ο όγκος των συναλλαγών είναι σχετικά μικρός μας καλύπτει απόλυτα η mysql. Εάν όμως ανέβει σε πολύ υψηλά επίπεδα τότε πρέπει να αναπροσαρμόσουμε την κατασκευή eshop opencart σε άλλη βάση δεδομένων.

MySQL στην κατασκευή e-shop

Η MySQL χρησιμοποιείται σε όλες τις πλατφόρμες κατασκευής eshop. Οι δημοφιλέστερες πλατφόρμες κατασκευής eshop όπως είναι το Magento, το Openart και το Woocommerce χρησιμοποιούν τη mysql ως σύστημα διαχείρισης βάσης δεδομένων. Η γνώση της mysql είναι αναγκαία για τη δημιουργία eshop διότι μποεί να δώσει εύκολη και γρήγορη λύση σε προβλήματα που δεν μπορεί να λύσει εύκολα το Content Managment System. Η ικανότητα διαχείρισης της βάσης δεδομένων είναι μια ικανότητα που βοηθά πολύ στην κατασκευή e-shop.

Εφαρμογές που απαιτούν αναλυτική επεξεργασία συναλλαγών

Μία περίπτωση όπου είναι δύσκολο να χρησιμοποιηθεί η mysql είναι όταν απαιτείται αναλυτική επεξεργασία συναλλαγών. Παραδείγματα αυτής της κατηγορίας περιλαμβάνουν βάσεις δεδομένων για αεροπορικές εταιρείες η για μεγάλους οργανισμούς. Το πρόβλημα εδώ είναι η πολύ μεγάλη συχνότητα και το πολύ μεγάλο πλήθος στην εισαγωγή δεδομένων και στην ενημέρωση δεδομένων. Για παράδειγμα το πλήθος δεδομένων μπορεί να ανέρχεται σε αρκετά εκατομμύρια εγγράφων στη βάση δεδομένων ενώ το πλήθος ταυτόχρονων συναλλαγών μετριέται σε αρκετές εκατοντάδες. Προφανώς ο χρόνος απόκρισης είναι αρκετά μεγάλος και μετριέται σε κάποια λεπτά της ώρας. Κατάλληλο σύστημα για αυτές τις περιπτώσεις είναι ο SQL server.

Εφαρμογές data warehouse

Άλλη μία περίπτωση στην οποία δεν ενδείκνυται η χρήση της mysql είναι η ανάλυση μεγάλων όγκων δεδομένων στα λεγόμενα συστήματα data warehouse. Το πρόβλημα εδώ είναι ο τεράστιος όγκος δεδομένων ο οποίος συνήθως μετριέται σε πολλές εκατοντάδες εκατομμύρια εγγραφών στη βάση δεδομένων. Εδώ ο χρόνος απόκρισης είναι πάρα πολύ μεγάλος και μετριέται σε αρκετές ώρες. Δηλαδή για να δημιουργηθεί μία αναφορά απαιτούνται κάποιες ώρες. Αναφέρομαι εδώ αυτές τις περιπτώσεις ωστε να αποκτήσει μία εικόνα ο εκπαιδευόμενος σχετικά με το πότε μπορεί να χρησιμοποιήσει τη mysql και πότε όχι.

Περιεχόμενα σεμιναρίου mysql

Σε ένα σεμινάριο mysql ο εκπαιδευόμενος πρώτα από όλα πρέπει να κατανοήσει τις βασικές αρχές σχεδίασης βάσης δεδομένων. Τι είναι οι πίνακες, πώς θα επιλέξουμε τους τύπους πεδίων και πώς θα επιλέξουμε κύριο κλειδί. Με ποιο τρόπο μπορούμε να χρησιμοποιήσουμε τα κύρια και τα βοηθητικά κλειδιά ώστε να κάνουμε συσχέτιση μεταξύ των πινάκων. τι είναι η κανονικοποίηση βάσεις δεδομένων και με ποια διαδικασία μπορούμε να φέρουμε τη βάση στην πρώτη στη δεύτερη στην τρίτη κανονική μορφή. Στη συνέχεια καλό θα είναι ο εκπαιδευόμενος να αποκτήσει εμπειρία δημιουργώντας βάσεις δεδομένων οι οποίες να ικανοποιούν συνηθισμένες απαιτήσεις της αγοράς. Εδώ θα κληθεί να διαβάσει προσεκτικά τις απαιτήσεις του υποτιθέμενου πελάτη και να κρίνει ποιοι είναι οι κατάλληλοι τύποι για τις συνδέσεις πινάκων σε κάθε περίσταση. Στη συνέχεια ο εκπαιδευόμενος θα πρέπει να δημιουργήσει τις συνδέσεις πινάκων που αποφάσισε, δηλαδή είτε ένα προς ένα, είτε ένα προς πολλά ή πολλά προς πολλά. Ο εκπαιδευτής ενηλίκων θα πρέπει να επιμείνει ώστε ο εκπαιδευόμενος να κάνει σωστά την κανονικοποίηση της βάσης που σχεδίασε. Εάν υπάρχει ο χρόνος τότε ενδεχομένως να τεθούν ζητήματα βελτιστοποίησης της βάσης δεδομένων ώστε να μεγιστοποιηθεί η απόδοση.