-- ΜΕΡΟΣ A CREATE DATABASE ASKISI_1; USE ASKISI_1; CREATE TABLE STUD(S_AM INT NOT NULL, SNAME VARCHAR(14), PRIMARY KEY(S_AM)); CREATE TABLE COURSES(C_ID INT NOT NULL, TITLE VARCHAR(25), PRIMARY KEY(C_ID)); CREATE TABLE GRADES( S_AM INT NOT NULL, C_ID INT NOT NULL, GRADE INT, PRIMARY KEY (S_AM, C_ID), FOREIGN KEY(S_AM) REFERENCES STUD(S_AM), FOREIGN KEY(C_ID) REFERENCES COURSES(C_ID) ); INSERT INTO STUD(S_AM, SNAME) VALUES (1000, 'Nick'); INSERT INTO STUD(S_AM, SNAME) VALUES (1001, 'Teo’); INSERT INTO STUD(S_AM, SNAME) VALUES (1002, 'Sofia'); INSERT INTO STUD(S_AM, SNAME) VALUES (1003, 'Maria'); INSERT INTO COURSES(C_ID, TITLE) VALUES (101, 'Programming'); INSERT INTO COURSES(C_ID, TITLE) VALUES (435, 'Data Bases'); INSERT INTO COURSES(C_ID, TITLE) VALUES (876, 'Artificial Intelligence'); INSERT INTO COURSES(C_ID, TITLE) VALUES (222, 'Data mining'); INSERT INTO GRADES(S_AM, C_ID, GRADE) VALUES(1000,435,5); INSERT INTO GRADES(S_AM, C_ID, GRADE) VALUES(1002,876,7); INSERT INTO GRADES(S_AM, C_ID, GRADE) VALUES(1003,876,10); INSERT INTO GRADES(S_AM, C_ID, GRADE) VALUES(1003,222,6); -- ΜΕΡΟΣ Β -- Ποια είναι τα ονόματα και οι αριθμοί μητρώου των σπουδαστών; SELECT * FROM STUD; -- Τα ονόματα και οι αριθμοί μητρώου των σπουδαστών που έχουν βαθμό κάτω απο 10 SELECT SNAME, STUD.S_AM FROM STUD, GRADES WHERE STUD.S_AM = GRADES.S_AM AND GRADE<10; -- Η προηγούμενη δήλωση με ταξινόμηση των αποτελεσμάτων κατά όνομα σπουδαστή SELECT SNAME, STUD.S_AM FROM STUD, GRADES WHERE STUD.S_AM = GRADES.S_AM AND GRADE<10 ORDER BY SNAME; -- Οι τίτλοι μαθημάτων που έχει περάσει ο σπουδαστής “Nick” SELECT STUD.SNAME,COURSES.TITLE, GRADES.GRADE FROM COURSES,STUD, GRADES WHERE STUD.S_AM=GRADES.S_AM AND COURSES.C_ID = GRADES.C_ID AND SNAME='Nick' AND GRADE <= 5 ; -- Τα ονόματα και οι αριθμοί μητρώου των σπουδαστών που έχουν ΑΜ μεγαλύτερο ή ίσο του 1000 και μικρότερο ή ίσο του 1003 SELECT SNAME, S_AM FROM STUD WHERE S_AM >= 1000 AND S_AM <= 1003; -- Τα ονόματα και οι αριθμοί μητρώου των σπουδαστών που έχουν ΑΜ μεγαλύτερο του 1000 και μικρότερο ή ίσο του 1003 SELECT SNAME, S_AM FROM STUD WHERE S_AM > 1000 AND S_AM <= 1003; -- Γράψτε παράδειγμα δήλωσης SELECT που περιλαμβάνει «φωλιασμένη» δήλωση SELECT. Σημειώστε τι κάνει η δήλωση. SELECT * FROM GRADES WHERE GRADE >= (SELECT MAX(GRADE) FROM GRADES WHERE C_ID = 876) ; -- Γράψτε παράδειγμα δήλωσης SELECT της επιλογής σας χρησιμοποιώντας τελεστή GROUP BY SELECT COUNT(*) , S_AM FROM GRADES GROUP BY S_AM; -- Γράψτε παράδειγμα δήλωσης SELECT της επιλογής σας χρησιμοποιώντας GROUP BY …HAVING. SELECT COUNT(*) , S_AM FROM GRADES GROUP BY S_AM HAVING count(*)>1;