Go

Database/SQL

Domina el acceso a bases de datos SQL en Go con el paquete database/sql: conexiones, consultas, transacciones, prepared statements y gestión del pool de conexiones.

22 preguntas de entrevista·
Mid-Level
1

¿Cuál es la diferencia principal entre DB.Query y DB.Exec?

Respuesta

DB.Query se usa para ejecutar consultas SELECT que devuelven filas de datos, mientras que DB.Exec sirve para ejecutar comandos SQL que no devuelven resultados (INSERT, UPDATE, DELETE). Query devuelve un objeto Rows que debe iterarse y cerrarse con rows.Close(), mientras que Exec devuelve un Result que contiene el número de filas afectadas y el último ID insertado.

2

¿Por qué es importante cerrar el objeto Rows después de una consulta?

Respuesta

Cerrar Rows con rows.Close() libera los recursos de la conexión database, permitiendo que la conexión vuelva al pool. Sin cerrarla, las conexiones permanecen ocupadas y el pool puede agotarse, provocando bloqueos. Se recomienda usar defer rows.Close() inmediatamente después de comprobar el error de Query para garantizar el cierre incluso si ocurre un error posterior.

3

¿Qué método debe usarse para recuperar una sola fila de resultados?

Respuesta

DB.QueryRow está diseñado específicamente para recuperar una sola fila y devuelve un objeto Row (en singular). A diferencia de Query, que devuelve Rows y requiere iteración con rows.Next(), QueryRow simplifica el código al permitir un scan directo. El manejo de errores ocurre durante el Scan, donde sql.ErrNoRows indica que no se encontró ninguna fila.

4

¿Cómo abrir una conexión a una base de datos con database/sql?

5

¿Qué devuelve el método rows.Scan()?

+19 preguntas de entrevista

Domina Go para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis