ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ 4.10 Επαναφέρετε πάλι το είδος 20 (όλο το στιγμιότυπο) στον πίνακα products με τις εντολές INSERT INTO. 4.11 Διαγράψτε το είδος 12 (όλο το στιγμιότυπο) στον πίνακα products και επαναφέρετε το πάλι πίσω. Που μπήκε το είδος 12 ; 4.12 Αλλαγή του ΦΠΑ στον πίνακα ειδών από 24% σε 19% και επαναφορά σε 24%. Επιβεβαιώστε τις αλλαγές στον πίνακα. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; 4.13 Εμφάνιση της περιγραφής είδους, του προμηθευτή και της ημερομηνίας αγοράς των ειδών με ΦΠΑ 13%. SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9; 4.14 Ξαναγράψτε το ερώτημα 4.12 με περιορισμό σε 5 εγγραφές. Επαναφέρετε πίσω τις τιμές του πίνακα. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23 LIMIT 5; ΕΠΙΛΟΓΗ ΔΕΔΟΜΕΝΩΝ 5.13 Εμφάνιση πελατών που μένουν στην Αθήνα και το όνομά τους τελειώνει σε %ΟΣ. SELECT pel_id, pel_name FROM pelates WHERE pel_city='athina' AND pel_name LIKE %OS ; 5.14 Εμφάνιση των ειδών που κοστίζουν λιγότερο από 200 και ο προμηθευτής είναι η Infoquest. SELECT * FROM products WHERE (prod_price<200) AND (purchase='infoquest'); 1
5.15 Εμφάνιση των ειδών που κοστίζουν μεταξύ 50 και 200 και ο προμηθευτής είναι η Infoquest. SELECT * FROM products WHERE (prod_price BETWEEN 50 AND 200) AND purchase='infoquest'; 5.16 Εμφάνιση των παραγγελιών που θα πληρωθούν μετά την 01-01-2017 και κοστίζουν λιγότερο από 500. SELECT * FROM paragelies WHERE (date_par_paid>2017-01-01) AND (par_amount<500); 5.17 Εμφάνιση όλων των ειδών από τον προμηθευτή Infoquest που μετά από αύξηση 10 στην τιμή αγοράς τους θα ξεπεράσουν τα 500 SELECT prod_id, (prod_price+10) AS price FROM products WHERE (prod_price>200) AND (purchase='infoquest'); ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ 6.10 Εμφάνιση της ακριβότερης παραγγελίας που έγινε το έτος 2016. SELECT * FROM paragelies WHERE (par_date>'2016-01-01') AND (par_date<'2016-12-31') ORDER BY par_amount; Or SELECT * FROM paragelies WHERE par_date BETWEEN ('2016-01-01') AND ('2016-12-31') ORDER BY par_amount; 6.11 Εμφάνιση των τριών πιο ακριβών προϊόντων που προμηθευτήκαμε από την εταιρία rainbow το δεύτερο μισό του 2016. SELECT * FROM products WHERE purchase_date BETWEEN ('2016-07-01') AND ('2016-12-31') ORDER BY prod_price DESC LIMIT 3; 2
6.12 Εμφάνιση των ονομάτων, επωνύμων και των πόλεων των πελατών με αλφαβητική σειρά ως προς το επώνυμο φθίνουσα και ως προς την πόλη αύξουσα. SELECT pel_name, pel_surname, pel_city FROM pelates ORDER BY pel_surname DESC, pel_city ASC; 6.13 Εμφάνιση παραγγελιών με φθίνουσα ταξινόμηση στους κωδικούς πελάτη. SELECT * FROM paragelies ORDER BY pel_id DESC; 6.14 Εμφάνιση των παραγγελιών ανά πελάτη, με πρώτη την ακριβότερη σε αυτούς που έχουν πάνω από μία παραγγελία. SELECT * FROM paragelies ORDER BY pel_id ASC, par_amount DESC; ΣΥΖΕΥΞΗ (ΕΝΩΣΗ) ΠΙΝΑΚΩΝ 7.9 Να επιστραφούν όλες οι παραγγελίες μαζί με την συνολική πληροφορία των ειδών που περιλαμβάνουν (εσωτερική σύζευξη). Επιστρέφονται 20 εγγραφές. SELECT * FROM paragelies INNER JOIN products ON paragelies.prod_id = products.prod_id; 7.10 Να επιστραφεί η συνολική πληροφορία των ειδών ανά παραγγελία αλλά και αυτά που δεν έχουν χρησιμοποιηθεί σε παραγγελία (δεξιά εξωτερική σύζευξη). Επιστρέφονται 31 εγγραφές. SELECT * FROM paragelies RIGHT JOIN products ON paragelies.prod_id = products.prod_id; 7.11 Να επιστραφεί η πιο πρόσφατη παραγγελία σε μελάνια μαζί με την πληροφορία των ειδών της. SELECT paragelies.*, products.* FROM paragelies LEFT JOIN products USING(prod_id) WHERE par_description='incs' ORDER BY par_date DESC LIMIT 1; Επιστρέφεται 1 εγγραφή. 3
7.12 Να επιστραφούν οι ακριβότερες παραγγελίες του πελάτη 10 καθώς και τα στοιχεία του. SELECT paragelies.*, pelates.* FROM paragelies LEFT JOIN pelates USING(pel_id) WHERE pel_id=10 ORDER BY par_amount DESC; Επιστρέφονται 2 εγγραφές. 7.13 Να επιστραφούν οι 2 φθηνότερες παραγγελίες σε hardware καθώς και οι πελάτες που τις αγόρασαν. Επιστρέφονται 2 εγγραφές. SELECT paragelies.*, pelates.* FROM paragelies LEFT JOIN pelates USING(pel_id) WHERE par_description='hardware' ORDER BY par_amount ASC LIMIT 2; ΣΥΝΑΡΤΗΣΕΙΣ ΤΗΣ MySQL #1 8.7 Εκτελέστε το ερώτημα 8.2 με ψευδώνυμο megethos στη στήλη που μας επιστρέφει το μέγεθος του αλφαριθμητικού. SELECT LENGTH(contact_email) AS Mege8os, contact_email FROM pelates ORDER BY Mege8os DESC LIMIT 1; 8.8 Εμφάνιση των παραγγελιών (id, περιγραφή και έτος) του hardware με επιστροφή μόνο του έτους από την στήλη par_date με το ψευδώνυμο year στην στήλη. SELECT par_id, SUBSTRING(par_date, 1, 4) AS Υear FROM paragelies WHERE par_description='hardware'; 8.9 Εμφάνιση των στοιχείων των προϊόντων που αγοράσαμε από την infoquest ως μια στήλη με ψευδώνυμο InfoquestProducts. SELECT CONCAT(prod_id,',',prod_name, ',',prod_descr) AS infoquestproducts FROM products WHERE purchase='infoquest'; 4
8.10 Εμφάνιση των φθηνότερων παραγγελιών σε μελάνια μορφοποιημένες στο ποσό με 2 δεκαδικά και την λέξη Euro. SELECT par_id, CONCAT(FORMAT(par_amount, 2), ' Euro') AS amount FROM paragelies WHERE par_description='incs' ORDER BY par_amount ASC; ΣΥΝΑΡΤΗΣΕΙΣ ΤΗΣ MySQL #2 9.11 Να επιστραφούν ο κωδικός και το ποσό των 5 ακριβότερων παραγγελιών με μετονομασία της στήλης του κόστους παραγγελίας σε «poso» και με στρογγυλοποίηση ως προς το κόστος (βλέπε 9.1). SELECT par_id, ROUND(par_amount) AS poso FROM paragelies ORDER BY poso DESC LIMIT 5; 9.12 Επιλογή παραγγελιών που πληρώθηκαν την άνοιξή του 2017 (βλέπε 9.2). SELECT * FROM paragelies WHERE MONTH(date_par_paid) IN(3,4,5); ή SELECT * FROM paragelies WHERE MONTH(date_par_paid) BETWEEN 3 AND 5; 9.13 Να επιστραφεί το πλήθος των παραγγελιών με όνομα «prodappear» όπου και οι 4 στήλες των ειδών έχουν τιμή. SELECT COUNT(prod_id AND prod_id_2 AND prod_id_3 AND prod_id_4) AS prodappear FROM paragelies; 9.14 Προσδιορισμός του συνολικού ποσού σαν «synolo» για κάθε κατηγορία παραγγελίας τον μήνα Απρίλιο (βλέπε 9.7). SELECT SUM(par_amount) AS synolo, par_description FROM paragelies WHERE MONTH(par_date)=4 GROUP BY par_description; 9.15 Επιστροφή της ημερομηνίας της ακριβότερης παραγγελίας με την εξής μορφοποίηση π.χ. Saturday 18 th October 2008 με το ψευδώνυμο «hmeromhnia» καθώς και του ποσού σαν «poso» (βλέπε 9.4 και 9.6). 5
SELECT DATE_FORMAT(par_date, '%W, %D, %M, %Y') AS hmeromhnia, par_amount AS poso FROM paragelies ORDER BY par_amount DESC LIMIT 1; 6