Sobes.tech
Middle+

Comment concevriez-vous une requête SQL pour la base de données sans utiliser d'ORM?

sobes.tech IA

Réponse de l'IA

Pour extraire des données de la table users, où le champ is_active est true et role est 'admin':

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

Pour insérer une nouvelle entrée dans la table products:

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

Pour mettre à jour une entrée dans la table orders, en définissant le statut 'shipped' pour la commande avec id = 100:

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

Pour supprimer une entrée de la table comments par id:

DELETE FROM comments
WHERE id = 500;

Pour une jointure simple entre les tables users et orders par 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;

Lors de la conception, il est important de considérer:

  • Sécurité: Utiliser des requêtes paramétrées pour éviter les injections SQL.
  • Performance: Optimiser les requêtes en utilisant des index, en évitant SELECT * et en vérifiant les plans d'exécution.
  • Lisibilité: Formater les requêtes, utiliser des alias pour les tables et les colonnes.
  • Test: Vérifier les requêtes dans différents scénarios et volumes de données.

Exemple de requête paramétrée (conceptuelle, la mise en œuvre dépend du langage et du driver):

// Exemple pour récupérer un utilisateur par ID
SELECT id, username FROM users WHERE id = ?;