# Database/SQL (Go) > Maîtrisez l'accès aux bases de données SQL en Go avec le package database/sql : connexions, requêtes, transactions, prepared statements et gestion du pool de connexions. - 22 questions d'entretien - Confirmé - [Questions d'entretien: Go](https://sharpskill.dev/fr/technologies/go/questions-entretien.md) ## 1. Quelle est la différence principale entre DB.Query et DB.Exec ? **Réponse** DB.Query est utilisé pour exécuter des requêtes SELECT qui retournent des lignes de données, tandis que DB.Exec sert à exécuter des commandes SQL qui ne retournent pas de résultats (INSERT, UPDATE, DELETE). Query retourne un objet Rows qu'il faut parcourir et fermer avec rows.Close(), alors qu'Exec retourne un Result contenant le nombre de lignes affectées et le dernier ID inséré. ## 2. Pourquoi est-il important de fermer l'objet Rows après une requête ? **Réponse** Fermer Rows avec rows.Close() libère les ressources de la connexion database, permettant à la connexion de retourner dans le pool. Sans fermeture, les connexions restent occupées et le pool peut s'épuiser, causant des blocages. Il est recommandé d'utiliser defer rows.Close() immédiatement après avoir vérifié l'erreur de Query pour garantir la fermeture même en cas d'erreur ultérieure. ## 3. Quelle méthode utiliser pour récupérer une seule ligne de résultat ? **Réponse** DB.QueryRow est conçu spécifiquement pour récupérer une seule ligne et retourne un objet Row (au singulier). Contrairement à Query qui retourne Rows et nécessite une itération avec rows.Next(), QueryRow simplifie le code en permettant un scan direct. La gestion d'erreur se fait lors du Scan, où sql.ErrNoRows indique qu'aucune ligne n'a été trouvée. ## 19 questions supplémentaires disponibles - Comment ouvrir une connexion à une base de données avec database/sql ? - Que retourne la méthode rows.Scan() ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien Go - [Les bases de Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-basics.md): 25 questions, Junior - [Structures de données Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-data-structures.md): 20 questions, Junior - [Interfaces Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-interfaces.md): 18 questions, Junior - [Gestion des erreurs](https://sharpskill.dev/fr/technologies/go/questions-entretien/error-handling.md): 20 questions, Junior - [Goroutines basiques](https://sharpskill.dev/fr/technologies/go/questions-entretien/goroutines-basics.md): 20 questions, Junior - [Channels](https://sharpskill.dev/fr/technologies/go/questions-entretien/channels.md): 22 questions, Junior - [Go Modules](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-modules.md): 18 questions, Confirmé - [Serveur HTTP](https://sharpskill.dev/fr/technologies/go/questions-entretien/http-server.md): 24 questions, Confirmé - [Client HTTP](https://sharpskill.dev/fr/technologies/go/questions-entretien/http-client.md): 18 questions, Confirmé - [Encodage JSON](https://sharpskill.dev/fr/technologies/go/questions-entretien/json-encoding.md): 20 questions, Confirmé - [Package context](https://sharpskill.dev/fr/technologies/go/questions-entretien/context-package.md): 20 questions, Confirmé - [Testing](https://sharpskill.dev/fr/technologies/go/questions-entretien/testing.md): 22 questions, Confirmé - [Patterns de concurrence](https://sharpskill.dev/fr/technologies/go/questions-entretien/concurrency-patterns.md): 24 questions, Confirmé - [Primitives de synchronisation](https://sharpskill.dev/fr/technologies/go/questions-entretien/sync-primitives.md): 22 questions, Confirmé - [Frameworks web Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-web-frameworks.md): 20 questions, Confirmé - [Design d'API REST](https://sharpskill.dev/fr/technologies/go/questions-entretien/rest-api-design.md): 20 questions, Confirmé - [gRPC](https://sharpskill.dev/fr/technologies/go/questions-entretien/grpc.md): 22 questions, Confirmé - [Reflection](https://sharpskill.dev/fr/technologies/go/questions-entretien/reflection.md): 20 questions, Senior - [Gestion mémoire](https://sharpskill.dev/fr/technologies/go/questions-entretien/memory-management.md): 24 questions, Senior - [Optimisation des performances](https://sharpskill.dev/fr/technologies/go/questions-entretien/performance-optimization.md): 22 questions, Senior - [Generics](https://sharpskill.dev/fr/technologies/go/questions-entretien/generics.md): 20 questions, Senior - [Design Patterns Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/design-patterns.md): 24 questions, Senior - [Microservices](https://sharpskill.dev/fr/technologies/go/questions-entretien/microservices.md): 24 questions, Senior - [Sécurité & Authentication](https://sharpskill.dev/fr/technologies/go/questions-entretien/security-authentication.md): 24 questions, Senior - [Docker & Containerization](https://sharpskill.dev/fr/technologies/go/questions-entretien/docker-containerization.md): 20 questions, Senior - [Kubernetes Basics](https://sharpskill.dev/fr/technologies/go/questions-entretien/kubernetes-basics.md): 22 questions, Senior - [Go Avancé](https://sharpskill.dev/fr/technologies/go/questions-entretien/advanced-go.md): 20 questions, Senior - [Développement CLI](https://sharpskill.dev/fr/technologies/go/questions-entretien/cli-development.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/go/questions-entretien/database-sql