Sobes.tech
Junior

Τι γνωρίζεις για δείγματα και ενώσεις σε βάσεις δεδομένων;

sobes.tech AI

Απάντηση από AI

Οι δείγματα (ερωτήματα SELECT) εξάγουν δεδομένα από έναν ή περισσότερους πίνακες. Οι ενώσεις (JOIN) συνδυάζουν γραμμές από δύο ή περισσότερους πίνακες βάσει μιας σχετικής στήλης μεταξύ τους.

Τύποι ενώσεων:

  • INNER JOIN: Επιστρέφει γραμμές που έχουν αντιστοιχίσεις και στους δύο πίνακες.
  • LEFT JOIN (LEFT OUTER JOIN): Επιστρέφει όλες τις γραμμές από τον αριστερό πίνακα και τις αντίστοιχες γραμμές από τον δεξιό. Αν δεν υπάρχουν αντιστοιχίσεις, επιστρέφεται NULL για τον δεξιό πίνακα.
  • RIGHT JOIN (RIGHT OUTER JOIN): Επιστρέφει όλες τις γραμμές από τον δεξιό πίνακα και τις αντίστοιχες γραμμές από τον αριστερό. Αν δεν υπάρχουν αντιστοιχίσεις, επιστρέφεται NULL για τον αριστερό πίνακα.
  • FULL JOIN (FULL OUTER JOIN): Επιστρέφει όλες τις γραμμές που έχουν αντιστοιχίσεις σε τουλάχιστον έναν από τους πίνακες. Αν δεν υπάρχουν αντιστοιχίσεις, επιστρέφεται NULL για τα ελλείποντα πεδία. (Δεν υποστηρίζεται από όλους τους SGBD, π.χ., MySQL χρησιμοποιεί UNION για εξομοίωση).
  • CROSS JOIN: Επιστρέφει το καρτεσιανό γινόμενο των γραμμών και των δύο πινάκων (κάθε γραμμή του πρώτου πίνακα συνδυάζεται με κάθε γραμμή του δεύτερου).

Παραδείγματα σύνταξης:

-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;
-- LEFT JOIN
SELECT customer.name, order.order_id
FROM customer
LEFT JOIN order ON customer.id = order.customer_id;

Λέξεις-κλειδιά για ερωτήματα:

  • SELECT: Ορίζει τις στήλες που θα εξαχθούν.
  • FROM: Υποδεικνύει τον(ους) πίνακα(ες).
  • WHERE: Φιλτράρει τις γραμμές βάσει μιας δοθείσας συνθήκης.
  • GROUP BY: Ομαδοποιεί γραμμές με ίσες τιμές σε μια συνοπτική γραμμή.
  • HAVING: Φιλτράρει τις ομάδες μετά το GROUP BY.
  • ORDER BY: Ταξινομεί το αποτέλεσμα.
  • LIMIT / OFFSET: Περιορίζει τον αριθμό των γραμμών που επιστρέφονται.

Η βελτιστοποίηση ερωτημάτων και ενώσεων είναι σημαντική για την απόδοση της βάσης δεδομένων. Χρησιμοποιούνται δείκτες, σωστή ορισμός τύπων δεδομένων, αποφυγή SELECT * (όπου είναι δυνατό), βελτιστοποίηση των συνθηκών στο WHERE.

Στην PHP, για εργασία με ερωτήματα και ενώσεις, χρησιμοποιούνται επεκτάσεις όπως PDO ή MySQLi, που παρέχουν API για την εκτέλεση SQL ερωτημάτων.