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 = ?;