Φωτογραφία Θωμάς Τζώρτζης
QUIZ
από Θωμάς Τζώρτζης - Monday, 11 June 2012, 8:12 AM
 
Στην ερώτηση (3) του quiz οι απαντήσεις είναι
a. (α) ή (β)
b. SELECT * FROM Employees
c. SELECT (Dept, LastName,FirstName) FROM Employees
d. SELECT (FirstName,LastName,Department) FROM Employees


Απ'τη στιγμή που οι σωστές απαντήσεις είναι οι b+d πως να επιλέξουμε την (a) που έχει τον εαυτό της και την σωστή b? Προσωπικά στην πρώτη προσπάθεια απάντησα το b και στη δεύτερη το d γιατι δεν ήταν σωστή η σειρά των απαντήσεων.
 
Φωτογραφία Σοφία Σκιαδά
Απάντηση: QUIZ
από Σοφία Σκιαδά - Tuesday, 12 June 2012, 12:14 AM
 
Κι εγώ προβληματίστηκα μ' αυτήν την ερώτηση αλλά τελικά απάντησα "(α) ή (β)" γιατί υπήρχαν 2 σωστές απαντήσεις. Υπέθεσα ότι δεν υπήρχε η σωστή αντιστοιχία των γραμμάτων "(α) ή (β)" με τις σωστές απαντήσεις, λόγω του ότι σε κάθε προσπάθεια οι απαντήσεις των ερωτήσεων βγαίνουν με διαφορετική σειρά.

Επίσης, ήθελα να ρωτήσω σχετικά με την ερώτηση του quiz "Ένα πρωτεύον κλειδί μπορεί να περιέχει NULLS":
Στην σελ. 146 του βιβλίου λέει ότι "...η προεπιλεγμένη τιμή του πεδίου user_id είναι NULL παρόλο που η στήλη ορίστηκε ως NΟ NULL. Αυτό δεν είναι λάθος και οφείλεται στο ότι το πεδίο user_id είναι πρωτεύον κλειδί αυτόματης αρίθμησης. Η MySQL συχνά κάνει κάποιες αλλαγές στον ορισμό των στηλών για να βελτιώσει την απόδοση ή για άλλους λόγους."
Επειδή με μπέρδεψε η συγκεκριμένη παράγραφος (κι αυτός ήταν ο λόγος που απάντησα στην ερώτηση ότι είναι σωστό) μπορείτε να μου εξηγήσετε πότε συμβαίνει αυτό;

Ευχαριστώ
Φωτογραφία Βασίλης Κόλιας
Απάντηση: QUIZ
από Βασίλης Κόλιας - Tuesday, 12 June 2012, 7:06 AM
 

Καλημέρα Θωμά και Σοφία,

Σχετικά με το quiz, όντως στην ερώτηση με το SQL υπήρχε πρόβλημα, αφού προεπιλεγμένα το quiz μπερδεύει τις ερωτήσεις. Προφανώς η απάντηση είναι ο συνδυασμός δυο απαντήσεων (άρα η απάντηση α) και β)) ωστόσο επειδή μπέρδευε τις απαντήσεις άλλοτε εμφάνιζε το σωστό συνδυασμό και άλλοτε όχι. Εν πάση περιπτώσει πρέπει να θυμάστε ότι:

α) Σε ένα SELECT * επιστρέφονται οι στήλες με τη σειρά που δηλώθηκαν στον πίνακα

β) Σε ένα SELECT x, y, ... επιστρέφονται οι στήλες με τη σειρά που δηλώθηκαν στο SELECT

Εννοείται εξαιτίας του θέματος αυτού δεν θα επηρεάσει ο βαθμός σας στο quiz.

Σχετικά με το ερώτημα που αναφέρει η Σοφία,

Ένα πρωτεύον κλειδί δεν μπορεί να περιέχει nulls εξ ορισμού αφού προορίζεται να αναγνωρίζει μοναδικά κάθε γραμμή. Αν ήταν δυνατόν να περιέχει nulls προφανώς περισσότερες τις μιας γραμμής θα μπορούσαν να είναι null, άρα χάνεται ο περιορισμός μοναδικότητας. Κατά συνέπεια η απάντηση είναι λάθος, ωστόσο, μπορεί να γίνει διόρθωση χωρίς να επηρεαστεί ο βαθμός σας.

Αυτό που αναφέρεται στο βιβλίο στη συγκεκριμένη σελίδα, αφορά την ίδια την MySQL η οποία δηλώνει ότι η default τιμή είναι NULL ωστόσο επειδή χειρίζεται η ίδια την αύξηση του κλειδιού (είναι auto increment) δεν θα αφήσει ποτέ τη συγκεκριμένη στήλη να έχει την τιμή NULL