MYSQL 2 Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Γ. Εήλδξνο Σρνιή Ζιεθηξνιόγσλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ
Σηόρνο ηεο ώξαο Πεξηζζόηεξα ζέκαηα MySQL Ταμηλόκεζε Πεξηνξηζκνί Παξάδεηγκα δεκηνπξγίαο ζρήκαηνο Τειεζηέο LIKE, IN, BETWEEN Κσδηθνπνίεζε Χεπδώλπκα Ζκεξνκελίεο Απιή έλσζε Αξηζηεξή έλσζε
Ταμηλόκεζε απνηειέζκαηνο ORDER BY: Ταμηλνκεί ην απνηέιεζκα κε βάζε έλα πεδίν ASC: Αύμνπζα ηαμηλόκεζε (πξνεπηινγή) DESC: Φζίλνπζα ηαμηλόκεζε Ο όξνο ORDER BY αθνινπζεί ηνλ όξν WHERE (To WHERE δελ απαηηείηαη) Μνξθή: SELECT πεδία FROM πίνακας WHERE ζσνθήκη ORDER BY πεδίο ASC; SELECT πεδία FROM πίνακας WHERE ζσνθήκη ORDER BY πεδίο DESC;
Ταμηλόκεζε απνηειέζκαηνο Απνζεθεπκέλνο πίλαθαο students student_id name surname dob email 1 Γηνλύζεο Εήλδξνο 1987-11-30 dionyziz@kamibu.com 2 Πέηξνο Αγγειάηνο 1991-10-10 petros@kamibu.com 3 Γηάλλεο Παλαξέηνπ 1985-09-07 george@gmail.com 4 Αλέζηεο Παηάθεο 1990-01-01 a.patakis@ptakis.gr 5 Γηώξγνο Τδνύκαο 1980-07-27 joomla@hotmail.com 6 Οδπζζέαο Παππάο 1995-12-31 odycore@gmail.com 8 Φξήζηνο Πηπεξάγθαο 1996-01-14 chris14@hotmail.com
SELECT student_id, name, surname, dob FROM students ORDER BY dob ASC; student_id name surname dob 5 Γηώξγνο Τδνύκαο 1980-07-27 3 Γηάλλεο Παλαξέηνπ 1985-09-07 1 Γηνλύζεο Εήλδξνο 1987-11-30 4 Αλέζηεο Παηάθεο 1990-01-01 2 Πέηξνο Αγγειάηνο 1991-10-10 6 Οδπζζέαο Παππάο 1995-12-31 8 Φξήζηνο Πηπεξάγθαο 1996-01-14
SELECT student_id, name, surname, dob FROM students ORDER BY dob DESC; student_id name surname dob 8 Φξήζηνο Πηπεξάγθαο 1996-01-14 6 Οδπζζέαο Παππάο 1995-12-31 2 Πέηξνο Αγγειάηνο 1991-10-10 4 Αλέζηεο Παηάθεο 1990-01-01 1 Γηνλύζεο Εήλδξνο 1987-11-30 3 Γηάλλεο Παλαξέηνπ 1985-09-07 5 Γηώξγνο Τδνύκαο 1980-07-27
SELECT student_id, name, surname, dob FROM students WHERE name = Χρήζηος OR name = Οδσζζέας ORDER BY dob; student_id name surname dob 6 Οδπζζέαο Παππάο 1995-12-31 8 Φξήζηνο Πηπεξάγθαο 1996-01-14
Πεξηνξηζκόο απνηειέζκαηνο LIMIT: Πεξηνξίδεη ην πιήζνο ησλ εγγξαθώλ ζηνλ πίλαθα απνηειέζκαηνο. Όξνο αθνινπζεί ηνλ όξν ORDER BY Τν ORDER BY δελ απαηηείηαη Κξαηάεη ηα πξώηα n ζηνηρεία Μνξθή: SELECT πεδία FROM πίνακας WHERE ζσνθήκη ORDER BY πεδίο LIMIT n;
SELECT student_id, name, surname, dob FROM students ORDER BY dob DESC LIMIT 3; student_id name surname dob 8 Φξήζηνο Πηπεξάγθαο 1996-01-14 3 6 Οδπζζέαο Παππάο 1995-12-31 2 Πέηξνο Αγγειάηνο 1991-10-10 Οη επόκελεο εγγξαθέο παξαιείπνληαη από ηνλ πίλαθα απνηειέζκαηνο
Πνην είλαη ην εξώηεκα; Τν επώλπκν ηνπ λεόηεξνπ αηόκνπ; SELECT surname FROM students ORDER BY dob DESC LIMIT 1;
Πεξηνξηζκνί Τo LIMIT εθαξκόδεηαη θαη ζε εξσηήκαηα UPDATE θαη DELETE Καιή πξαθηηθή: LIMIT 1 ζε εξσηήκαηα πνπ πεξηκέλνπκε λα ελεκεξώζνπλ/δηαγξάςνπλ κία εγγξαθή Θα ζώζεη ην ηνκάξη ζνπ αλ μεράζεηο έλα WHERE DELETE FROM students WHERE student_id = 5 LIMIT 1;
Πεξηνξηζκνί Πιήξεο LIMIT: Παξαιείπεη εγγξαθέο από ηελ αξρή ηνπ απνηειέζκαηνο Πεξηνξίδεη ην πιήζνο ησλ εγγξαθώλ Μνξθή: LIMIT offset, N Παξαιείπεη offset γξακκέο από ηελ αξρή offset = 0: θακία παξάιεςε Κξαηάεη Ν γξακκέο
SELECT student_id, name, surname, dob FROM students ORDER BY dob DESC LIMIT 2, 3; 2 εγγξαθέο παξαιείπνληαη από ηελ αξρή 3 student_id name surname dob 8 Φξήζηνο Πηπεξάγθαο 1996-01-14 6 Οδπζζέαο Παππάο 1995-12-31 2 Πέηξνο Αγγειάηνο 1991-10-10 4 Αλέζηεο Παηάθεο 1990-01-01 1 Γηνλύζεο Εήλδξνο 1987-11-30 3 Γηάλλεο Παλαξέηνπ 1985-09-07 5 Γηώξγνο Τδνύκαο 1980-07-27
Πνην είλαη ην εξώηεκα; Τν επώλπκν ηνπ δεύηεροσ λεόηεξνπ αηόκνπ; SELECT surname FROM students ORDER BY dob DESC LIMIT 1, 1;
Αλαδήηεζε κέζα ζε αιθαξηζκεηηθά Τειεζηήο LIKE Μνξθή: αλθαριθμηηικό LIKE έκφραση έκφραση: Αιθαξηζκεηηθό πνπ πεξηέρεη % σο ραξαθηήξα-κπαιαληέξ Σεκαίλεη «νπνηνζδήπνηε ραξαθηήξαο»
Δθθξάζεηο κε κπαιαληέξ Hello%world : Αξρίδεη από Hello θαη ηειεηώλεη ζε world Hello, world ΝΑΙ Hello, what a wonderful world ΝΑΙ Hello the world is a great place ΟΧΙ an% : Αξρίδεη από an anastasios ΝΑΙ ANASTASIOS ΝΑΙ aanastasios ΟΧΙ
Πνην είλαη ην εξώηεκα; Τν επώλπκν ελόο καζεηή πνπ αξρίδεη από Ε ; SELECT surname FROM students WHERE surname LIKE Z% LIMIT 1;
Τειεζηήο IN Διέγρεη αλ κία ηηκή αλήθεη ζε έλα ζύλνιν Μνξθή: ηιμή IN ( ζηοιτείο1, ζηοιτείο2,..., ζηοιτείον )
SELECT student_id, name, surname, dob FROM students WHERE name IN ( Γιάννης, Γιώργος, Χρήζηος ); student_id name surname dob 5 Γηώξγνο Τδνύκαο 1980-07-27 3 Γηάλλεο Παλαξέηνπ 1985-09-07 8 Φξήζηνο Πηπεξάγθαο 1996-01-14
Ηζνδύλακα: SELECT FROM WHERE student_id, name, surname, dob students name = Γιάννης OR name = Γιώργος OR name = Χρήζηος ;
Σύγθξηζε Οη ηειεζηέο =, <, >, <=, >= ιεηηνπξγνύλ ζε: Αξηζκνύο 3 < 4 5 = 5 12.2 > -9 Αιθαξηζκεηηθά (ιεμηθνγξαθηθά) Αγγελάηος >= Ζήνδρος Ζκεξνκελίεο (ρξνλνινγηθά) 2001-09-11 > 1987-11-30 2010-11-22 00:00:00 <= 2010-11-22 01:01:01
Τειεζηήο BETWEEN AND Διέγρεη αλ κία ηηκή βξίζθεηαη αλάκεζα ζε δύν θξάγκαηα (κεγαιύηεξν ή ίζν / κηθξόηεξν ή ίζν) Μνξθή: ηιμή BETWEEN κάηφ_θράγμα AND άνφ_θράγμα
SELECT student_id, name, surname, dob FROM students WHERE surname BETWEEN Αγγελάηος AND Παηάκης student_id name surname dob 3 Γηάλλεο Παλαξέηνπ 1985-09-07 1 Γηνλύζεο Εήλδξνο 1987-11-30 4 Αλέζηεο Παηάθεο 1990-01-01 2 Πέηξνο Αγγειάηνο 1991-10-10 6 Οδπζζέαο Παππάο 1995-12-31
Χεπδώλπκα ζηειώλ Αιιάδνπλ ην όλνκα κίαο ζηήιεο ηνπ απνζεθεπκέλνπ πίλαθα ζηνλ πίλαθα απνηειέζκαηνο Δηζάγνληαη κε ην AS Μνξθή: ζηήλη AS υεσδώνσμο
SELECT student_id AS am, name, surname, dob AS date_of_birth FROM students LIMIT 5; am name surname date_of_birth 3 Γηάλλεο Παλαξέηνπ 1985-09-07 1 Γηνλύζεο Εήλδξνο 1987-11-30 4 Αλέζηεο Παηάθεο 1990-01-01 2 Πέηξνο Αγγειάηνο 1991-10-10 6 Οδπζζέαο Παππάο 1995-12-31
NULL Δηδηθή ηηκή Αληηπξνζσπεύεη ηελ απνπζία ηηκήο Έλα πεδίν κπνξεί λα έρεη ηελ δπλαηόηεηα λα απνζεθεύζεη NULL; Καη λαη θαη όρη Τν θαζνξίδνπκε ζην ζρήκα Έιεγρνο γηα NULL κε ηνλ ηειεζηή IS NULL
Πξάμεηο θαηά ηελ επηινγή To SELECT επηηξέπεη θαη πξάμεηο θαηά ηελ επηινγή Γειαδή ηα πεδία ζηελ πξαγκαηηθόηεηα είλαη παραζηάζεις SELECT (student_id + 100) AS points, name, surname, dob FROM students LIMIT 3; points name surname dob 108 Φξήζηνο Πηπεξάγθαο 1996-01-14 106 Οδπζζέαο Παππάο 1995-12-31 102 Πέηξνο Αγγειάηνο 1991-10-10
Κσδηθνπνίεζε Ζ θσδηθνπνίεζε ζηελ MySQL κπνξεί λα γίλεη πνλνθέθαινο Δπίπεδα θσδηθνπνίεζεο: Βάζε δεδνκέλσλ Πίλαθαο Πεδίν Σύλδεζε Καζεαπηά δεδνκέλα Collation: Meta-ηδηόηεηα πνπ «ζπκάηαη» ηη είδνπο θσδηθνπνίεζε έρνπκε απνζεθεύζεη
Κσδηθνπνίεζε Φξνληίδνπκε: Τα δεδνκέλα πνπ ζηέιλνπκε ζηελ MySQL λα είλαη UTF-8 Δειαδή ην αιθαξηζκεηηθό ηνπ εξσηήκαηνο Τν ζρήκα λα έρεη collation utf8_unicode_ci Ζ ζύλδεζε λα έρεη θσδηθνπνίεζε UTF-8 Με ην εξώηεκα: SET NAMES utf8; Τξέρεη πξηλ από όια ηα άιια
Τειεζηέο ζε εκεξνκελίεο Λέμε-θιεηδί INTERVAL Λέμεηο-θιεηδηά δηάξθεηαο: SECOND MINUTE HOUR DAY MONTH YEAR Μνξθή: INTERVAL Ν διάρκεια Μπνξεί λα πξνζηεζεί / αθαηξεζεί από εκεξνκελία γηα λα δώζεη κία άιιε
5 ε Δξγαζία Βειηίσζε ηεο 4 εο εξγαζίαο Παξάδνζε κέζσ SSH (Secure SHell) Αλεβάζηε.php,.html,.css, εηθόλεο θιπ. ζην home ζαο Αλεβάζηε έλα Export ηνπ ζρήκαηόο ζαο ζε κνξθή.sql Μέρξη 6/12/2010 Να βειηηώζεηε ην file uploader ζαο Απιό ζύζηεκα ρξεζηώλ Register Login Logout Βάζε δεδνκέλσλ Απνζήθεπζε ρξεζηώλ Όλνκα & θσδηθόο πξόζβαζεο Απνζήθεπζε meta-πιεξνθνξηώλ αξρείσλ Ζκεξνκελία απνζηνιήο Φξήζηεο Θα ρξεηαζηεί λα εγθαηαζηήζεηε MySQL + phpmyadmin
SELECT name, surname, dob + INTERVAL 10 YEAR FROM students LIMIT 3; name surname dob Φξήζηνο Πηπεξάγθαο 2006-01-14 Οδπζζέαο Παππάο 2005-12-31 Πέηξνο Αγγειάηνο 2001-10-10
Τειεζηέο ζε εκεξνκελίεο Σπλάξηεζε NOW(): Δπηζηξέθεη ηελ ησξηλή εκεξνκελία/ώξα NOW(): 2010-11-22 17:49:00
Online now Πώο ζα δείμσ πνηνη ρξήζηεο είλαη online; Σηήιε lastactive ζηνλ πίλαθα users Δλεκέξσζε θάζε θνξά πνπ αλνίγεη έλα PHP αξρείν: UPDATE users SET lastactive = NOW() WHERE userid = 5 LIMIT 1; Δξώηεκα γηα λα πάξσ ηνπο online ρξήζηεο: SELECT username FROM users WHERE lastactive + INTERVAL 5 MINUTE > NOW();
Έλσζε πηλάθσλ Σπλδπαζκόο δεδνκέλσλ από πνιινύο απνζεθεπκέλνπο πίλαθεο Ο πίλαθαο απνηειέζκαηνο έρεη ζηνρεία από όινπο
Καξηεζηαλό γηλόκελν Α x B θάζε εγγξαθή ηνπ πίλαθα Α ζπλδπάδεηαη κε θάζε εγγξαθή ηνπ πίλαθα Β
Καξηεζηαλό γηλόκελν student_id firstname surname school 5 Γηώξγνο Τδνύκαο 1 3 Γηάλλεο Παλαξέηνπ 1 8 Φξήζηνο Πηπεξάγθαο 3 people school_id schoolname 1 ΔΜΠ 2 ΑΠΘ 3 ΑΣΟΔΔ x schools
Καξηεζηαλό γηλόκελν = student_id firstname surname school school_id schoolname 5 Γηώξγνο Τδνύκαο 1 1 ΔΜΠ 5 Γηώξγνο Τδνύκαο 1 2 ΑΠΘ 5 Γηώξγνο Τδνύκαο 1 3 ΑΣΟΔΔ 3 Γηάλλεο Παλαξέηνπ 1 1 ΔΜΠ 3 Γηάλλεο Παλαξέηνπ 1 2 ΑΠΘ 3 Γηάλλεο Παλαξέηνπ 1 3 ΑΣΟΔΔ 8 Φξήζηνο Πηπεξάγθαο 3 1 ΔΜΠ 8 Φξήζηνο Πηπεξάγθαο 3 2 ΑΠΘ 8 Φξήζηνο Πηπεξάγθαο 3 3 ΑΣΟΔΔ
Καξηεζηαλό γηλόκελν Σηνλ όξν FROM γξάθνπκε ηνπο δύν πίλαθεο ρσξηζκέλνπο κε θόκκαηα: SELECT surname, schoolname FROM students, schools; surname Τδνύκαο Τδνύκαο Τδνύκαο Παλαξέηνπ Παλαξέηνπ Παλαξέηνπ Πηπεξάγθαο Πηπεξάγθαο Πηπεξάγθαο schoolname ΔΜΠ ΑΠΘ ΑΣΟΔΔ ΔΜΠ ΑΠΘ ΑΣΟΔΔ ΔΜΠ ΑΠΘ ΑΣΟΔΔ
Καξηεζηαλό γηλόκελν Από κόλν ηνπ άρξεζην Σπλδπαζκέλν κε έλαλ όξν WHERE ρξήζηκν SELECT surname, schoolname FROM students, schools WHERE schoolid = school; surname Τδνύκαο Παλαξέηνπ Πηπεξάγθαο schoolname ΔΜΠ ΔΜΠ ΑΣΟΔΔ
student_id firstname surname school school_id schoolname 5 Γηώξγνο Τδνύκαο 1 1 ΔΜΠ 5 Γηώξγνο Τδνύκαο 1 2 ΑΠΘ 5 Γηώξγνο Τδνύκαο 1 3 ΑΣΟΔΔ 3 Γηάλλεο Παλαξέηνπ 1 1 ΔΜΠ 3 Γηάλλεο Παλαξέηνπ 1 2 ΑΠΘ 3 Γηάλλεο Παλαξέηνπ 1 3 ΑΣΟΔΔ 8 Φξήζηνο Πηπεξάγθαο 3 1 ΔΜΠ 8 Φξήζηνο Πηπεξάγθαο 3 2 ΑΠΘ 8 Φξήζηνο Πηπεξάγθαο 3 3 ΑΣΟΔΔ
Αλαθνξά ζε ζηήιεο πίλαθα Γύν ζηήιεο κπνξεί λα έρνπλ ην ίδην όλνκα Αλαθεξόκαζηε ζε ζπγθεθξηκέλε πίλαθα κε ηελ ζύληαμε: πίνακας.ζηήλη student_id name surname school_id 5 Γηώξγνο Τδνύκαο 1 3 Γηάλλεο Παλαξέηνπ 1 8 Φξήζηνο Πηπεξάγθαο 3 school_id name 1 ΔΜΠ 2 ΑΠΘ 3 ΑΣΟΔΔ
SELECT students.name AS firstname, surname, schools.name AS schoolname FROM students, schools WHERE schools.school_id = students.school_id;
Δλαιιαθηηθή ζύληαμε Αληί γηα: FROM A, B WHERE A.x = B.y Δίλαη πην επαλάγλσζην λα γξάθνπκε: A CROSS JOIN B on A.x = B.y Έηζη ην WHERE δεζκεύεηαη γηα θηιηξάξηζκα
SELECT students.name AS firstname, surname, schools.name AS schoolname FROM students CROSS JOIN schools ON schools.school_id = student.school_id;
Πνην είλαη ην εξώηεκα; Τν ζρνιείν κε ηνλ καζεηή πνπ έρεη ηελ κεγαιύηεξε ειηθία; SELECT schools.name FROM schools CROSS JOIN students ON school.school_id = students.school_id ORDER BY dob LIMIT 1;
student_id name surname school_id 5 Γηώξγνο Τδνύκαο 1 3 Γηάλλεο Παλαξέηνπ 1 8 Φξήζηνο Πηπεξάγθαο 3 school_id name 1 ΔΜΠ 2 ΑΠΘ 3 ΑΣΟΔΔ Ολόκαηα όισλ ησλ καζεηώλ θαη ην ζρνιείν ηνπο; SELECT students.name AS firstname, school.name AS schoolname FROM students CROSS JOIN schools ON students.school_id = schools.school_id;
firstname Γηώξγνο Γηάλλεο Φξήζηνο schoolname ΔΜΠ ΔΜΠ ΑΣΟΔΔ
Αξηζηεξή έλσζε Τη γίλεηαη αλ δεν έτοσμε πληροθορίες γηα έλα ζρνιείν; Καξηεζηαλό γηλόκελν: student_id name surname school_id school_id name 5 Γηώξγνο Τδνύκαο 1 1 ΔΜΠ 5 Γηώξγνο Τδνύκαο 1 2 ΑΠΘ 3 Γηάλλεο Παλαξέηνπ 1 1 ΔΜΠ 3 Γηάλλεο Παλαξέηνπ 1 2 ΑΠΘ 8 Φξήζηνο Πηπεξάγθαο 3 1 ΔΜΠ 8 Φξήζηνο Πηπεξάγθαο 3 2 ΑΠΘ
Πίλαθαο απνηειέζκαηνο: firstname Γηώξγνο Γηάλλεο schoolname ΔΜΠ ΔΜΠ Ο καζεηήο ιείπεη κόλν θαη κόλν επεηδή ιείπεη ην ζρνιείν ηνπ! Ζ ινγηθή πξόηαζε είλαη ςεπδήο κε όπνηα γξακκή θαη λα θάλνπκε ζπλδπαζκό Όκσο ζέινπκε ηηο πιεξνθνξίεο ηνπ αθόκε θαη αλ δελ βξεζεί ην ζρνιείν
Αξηζηεξή έλσζε Αιιάδνπκε ην CROSS JOIN ζε LEFT JOIN Αλ ηαηξηάδεη κία ή πεξηζζόηεξεο εγγξαθέο: θάλεη ην ίδην κε ηελ απιή έλσζε Αλ θακία εγγξαθή ηνπ δεμηνύ πίλαθα δελ ηαηξηάδεη κε ηελ εθάζηνηε ηνπ αξηζηεξνύ: θξαηάεη ηα ζηνηρεία ηεο εγγξαθήο ηνπ αξηζηεξνύ πίλαθα γεκίδεη ηα ζηνηρεία ησλ ζηειώλ ηνπ δεμηνύ πίλαθα ηνπ απνηειέζκαηνο κε NULL
student_id name surname school_id school_id name 5 Γηώξγνο Τδνύκαο 1 1 ΔΜΠ 5 Γηώξγνο Τδνύκαο 1 2 ΑΠΘ 3 Γηάλλεο Παλαξέηνπ 1 1 ΔΜΠ 3 Γηάλλεο Παλαξέηνπ 1 2 ΑΠΘ 8 Φξήζηνο Πηπεξάγθαο 3 1 ΔΜΠ 8 Φξήζηνο Πηπεξάγθαο 3 2 ΑΠΘ Κακία εγγξαθή ηνπ δεμηνύ πίλαθα δελ ηθαλνπνηεί ηελ ζρέζε students.school_id = schools.school_id γηα ηνλ καζεηή Φξήζην!
SELECT students.name AS firstname, school.name AS schoolname FROM students LEFT JOIN schools ON students.school_id = schools.school_id; firstname Γηώξγνο Γηάλλεο Φξήζηνο schoolname ΔΜΠ ΔΜΠ NULL
Πνιιαπιέο ελώζεηο Δλώλνπκε ην αποηέλεζμα ηεο έλσζεο κε άιιν πίλαθα Έρνπκε έλσζε ηξηώλ ή πεξηζζόηεξσλ πηλάθσλ
Παξάδεηγκα ζρήκαηνο users: - userid - username - password - email blogs: - blogid - title - text - userid comments: - commentid - text - blogid - userid - created
Πνην είλαη ην εξώηεκα; Οινη νη ηίηινη θαη ηα θείκελα από ηηο αλαξηήζεηο (blogs) ηνπ ρξήζηε #5 SELECT text, title FROM blogs WHERE userid = 5;
Πνην είλαη ην εξώηεκα; Τν θείκελν από όια ηα ζρόιηα πνπ έγηλαλ ζε όια ηα blogs ηνπ ρξήζηε #5 SELECT comment.text FROM comments CROSS JOIN blogs ON comments.blogid = blogs.blogid WHERE blogs.userid = 5;
Πνην είλαη ην εξώηεκα; Τν θείκελν θαη ν ρξήζηεο πνπ έγξαςε ην ζρόιην από όια ηα ζρόιηα πνπ έγηλαλ ζε όια ηα blogs ηνπ ρξήζηε #5 SELECT comment.text, users.name FROM comments CROSS JOIN blogs ON comments.blogid = blogs.blogid CROSS JOIN users ON users.userid = comment.userid WHERE blogs.userid = 5;
Πνην είλαη ην εξώηεκα; Τν θείκελν από ην πην πξόζθαην ζρόιην πνπ έγηλε ζε θάπνην blog ηνπ ρξήζηε #5 καδί κε ηνλ ηίηιν ηνπ blog; SELECT blog.title, comment.text FROM comments CROSS JOIN blogs ON comments.blogid = blogs.blogid ORDER BY comments.created DESC LIMIT 1
Μάζακε Ταμηλόκεζε Πεξηνξηζκνί Παξάδεηγκα δεκηνπξγίαο ζρήκαηνο Τειεζηέο LIKE, IN, BETWEEN Κσδηθνπνίεζε Χεπδώλπκα Ζκεξνκελίεο Απιή έλσζε Αξηζηεξή έλσζε
Αμηνιόγεζε Πείηε καο ηε γλώκε ζαο
Σπγραξεηήξηα! Μάζαηε MySQL. Μπνξείηε λα ρεηξηζηείηε απνζεθεπκέλα δεδνκέλα!
Τελ επόκελε θνξά... Πξνρσξεκέλα ζέκαηα PHP: Δκβάζπλζε κε πνιιά παξαδείγκαηα Λίγε ζεσξία, πεξηζζόηεξε πξάμε