Sobes.tech
Middle+

Πώς θα σχεδίαζες ένα ερώτημα SQL στη βάση δεδομένων χωρίς να χρησιμοποιήσεις ORM;

sobes.tech AI

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

Για την ανάκτηση δεδομένων από τον πίνακα users, όπου το πεδίο is_active είναι true και το role είναι 'admin':

SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';

Για την εισαγωγή μιας νέας εγγραφής στον πίνακα products:

INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);

Για την ενημέρωση μιας εγγραφής στον πίνακα orders, ορίζοντας την κατάσταση σε 'shipped' για την παραγγελία με id = 100:

UPDATE orders
SET status = 'shipped'
WHERE id = 100;

Για τη διαγραφή μιας εγγραφής από τον πίνακα comments βάσει id:

DELETE FROM comments
WHERE id = 500;

Για μια βασική ένωση των πινάκων users και orders βάσει user_id:

SELECT u.username, o.order_date, o.total_amount
FROM users AS u
JOIN orders AS o ON u.id = o.user_id;

Κατά το σχεδιασμό, είναι σημαντικό να λαμβάνονται υπόψη:

  • Ασφάλεια: Χρησιμοποιήστε παραμετροποιημένα ερωτήματα για την αποτροπή SQL injection.
  • Απόδοση: Βελτιστοποιήστε τα ερωτήματα χρησιμοποιώντας δείκτες, αποφεύγοντας το SELECT * και ελέγξτε τα σχέδια εκτέλεσης.
  • Αναγνωσιμότητα: Μορφοποιήστε τα ερωτήματα, χρησιμοποιήστε ψευδώνυμα για πίνακες και πεδία.
  • Δοκιμές: Ελέγξτε τα ερωτήματα σε διαφορετικά σενάρια και όγκους δεδομένων.

Παραδείγματα παραμετροποιημένων ερωτημάτων (εννοιολογικά, η υλοποίηση εξαρτάται από τη γλώσσα και τον οδηγό):

// Παράδειγμα για ανάκτηση χρήστη βάσει ID
SELECT id, username FROM users WHERE id = ?;