Operaciones CRUD
Cree, lea, actualice y elimine
Operaciones CRUD es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
CRUD con GORM
GORM convierte las cuatro operaciones básicas, Create, Read, Update, Delete, en llamadas a métodos sobre *gorm.DB. Se pasan punteros a estructuras y GORM genera el SQL.
Create
Create inserta un registro. Después de ejecutarse, GORM rellena la clave principal y las marcas de tiempo de la estructura con los valores de la base de datos.
user := User{Name: "Ada", Email: "ada@example.com"}
result := db.Create(&user)
fmt.Println(user.ID, result.RowsAffected)Lectura con First
First obtiene el primer registro coincidente, ordenado por clave principal. Pase un puntero para recibir el resultado; las condiciones se indican como argumentos adicionales.
var user User
db.First(&user, 1) // by primary key
db.First(&user, "email = ?", "ada@example.com")Lectura de varios registros con Find
Find carga varias filas en un slice. Sin condiciones, devuelve todas las filas; con Where, aplica un filtro.
var users []User
db.Where("age > ?", 18).Find(&users)Update
Save actualiza todos los campos de un registro. Update y Updates cambian columnas específicas, lo que evita sobrescribir campos que no pretendía modificar.
db.Model(&user).Update("name", "Ada L.")
db.Model(&user).Updates(User{Name: "Ada", Age: 36})La particularidad de los valores cero
Al actualizar con una estructura, GORM ignora los campos con valores cero (0, false, ""). Para actualizar una columna a un valor cero, pase un mapa en lugar de una estructura.
db.Model(&user).Updates(map[string]interface{}{"age": 0, "active": false})Delete
Delete elimina un registro. Si el modelo tiene un campo DeletedAt, se trata de una eliminación lógica: se establece la marca de tiempo en lugar de eliminar la fila.
db.Delete(&user, 1)Una simulación ejecutable de CRUD
GORM necesita una base de datos real, por lo que este ejemplo ejecutable modela las operaciones de creación, lectura, actualización y eliminación sobre un slice en memoria para mostrar el ciclo de vida.
package main
import "fmt"
type User struct {
ID int
Name string
}
func main() {
var users []User
next := 1
// Create
u := User{ID: next, Name: "Ada"}
users = append(users, u)
next++
// Read
fmt.Println("read:", users[0])
// Update
users[0].Name = "Ada L."
fmt.Println("updated:", users[0])
// Delete
users = users[:0]
fmt.Println("count after delete:", len(users))
}Comprobación de errores
Cada llamada de GORM devuelve un *gorm.DB cuyo campo Error contiene cualquier error producido. Si no se encuentra un registro, First devuelve gorm.ErrRecordNotFound.
if err := db.First(&user, 99).Error; err == gorm.ErrRecordNotFound {
fmt.Println("no such user")
}Encadenamiento de métodos
GORM utiliza un generador encadenable: db.Where(...).Order(...).Limit(...).Find(&users). Cada método acota la consulta y el método final (Find, First) la ejecuta.
Inserción por lotes
Pase un slice a Create para insertar muchas filas en una sola sentencia. CreateInBatches divide los slices muy grandes en bloques para mantenerse dentro de los límites.
db.Create(&[]User{{Name: "A"}, {Name: "B"}})Comprobación rápida
Ponga a prueba sus conocimientos sobre CRUD.
Resumen
Ha aprendido sobre las operaciones CRUD:
- Create inserta registros y completa la clave principal
- First y Find leen una fila o varias
- Save, Update y Updates modifican datos; los mapas fuerzan los valores cero
- Delete realiza una eliminación lógica cuando existe DeletedAt
- Compruebe el campo Error; encadene métodos para consultas complejas
Preguntas frecuentes
¿La lección «Operaciones CRUD» es gratis?
Sí — el texto completo de «Operaciones CRUD» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Operaciones CRUD»?
Cree, lea, actualice y elimine Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Go Academy?
No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Operaciones CRUD»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Go Academy?
Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Modelos y AutoMigrate
- Operaciones CRUD
- Asociaciones
- Hooks y scopes