Alejandro González Reyes
José Martín Miret
Gerardo Alberto Soto Alvarez del Castillo
Antonio Jose Gonzalez Liñan
Johan Marcel Fernandez Castillo
Cesar Bautista Mejia
Fabián Villalobos Rojas
José Eduardo Ramos Silva
Facundo Nicolás García Martoni
ProfesorAlberto Perdomo
Emerson Y
Diego Hernández Delgado
Nicolas Rocha
Jesus Gaviria Rubio
Andrés David Ríos Ramirez
Daniel Prol
Cesar A Rivera O
Rodolfo Venegas Contreras
Sebastian Calderón Araque
Diego Hernández Delgado
Pryscilla Sanchez
Ibrahim Guzmán
Alicia Rivas
Wilson Fernando Antury Torres
Eduardo Romero
Francisco Ponce
Eduardo Romero
Cristian Orozco Benjumea
Johan Marcel Fernandez Castillo
Christopher Federico Ulloa Montenegro
Angel de Jesus Quintero Pereira
Angel de Jesus Quintero Pereira
pablo doblas
Omar Daniel Centeno
Daniel Andrés Giraldo Benites
Es mejor hacer pruebas antes de ejecutar instrucciones que puedan afectar la integridad de nuestra data
Iniciamos una transacción
BEGIN
Ahora supongamos que elimino información de una tabla y se me olvida el WHERE
DELETE FROM authors;
Rayos ya perdí todo, haa pero como estoy dentro de una transacción debo confirmar las operaciones hechas a la base de datos, de lo contrario no se ejecutarán.
Si confirmo, entonces no hay vuelta atras. Se eliminarían todos los datos de dicha tabla
COMMIT
pero si hago un retroceso de dichos cambios. Entonces es como si nunca hubiese pasado nada.
ROLLBACK
Fiuuu, que alivio.
Gran aporte, pero hay que recordar ademas que **Truncate **no es transaccional, hay que tener cuidado con eso.
Excelente aporte para evitar la perdida de información!!!
¿Cuál es la diferencia entre TRUNCATE y DELETE?
Aca encontre una expliacion:
Buen articulo.
Simple y resumido, en una aplicación ya compilada, es muy raro que se utilice TRUNCATE, casi siempre se utiliza DELETE.
WHEN realizas un select de las personas que te han gustado durante toda tu vida:
9999 row in set(0.50 sec)
BUT repites el select pero a la inversa:
Empty set (0.00 sec)
😅😅
.-.
Que sad man
Como aporte. ALTER es a las columnas lo que UPDATE es a las filas DROP es a las columnas lo que DELETE es a las filas
Y la siguiente canción para nunca olvidar poner el WHERE en el DELETE FROM. https://www.youtube.com/watch?v=i_cVJgIz_Cs
Resumen de la clase:
-- DELETE: borra el registro. -- Adicionalmente filtrar con WHERE por id y limitarlo. DELETE FROM authors WHERE author_id = 161 LIMIT 1; -- UPDATE: actualizar datos de una tupla existente. -- También se debe filtrar con WHERE UPDATE clients SET active = 0 WHERE client_id = 80 LIMIT 1; UPDATE clients SET active = 0 WHERE client_id IN (1,6,8,27,90) OR NAME like '%Lopez%'; -- TRUNCATE: Borra todo el contenido de una tabla TRUNCATE transactions;
> select client_id, name from clients order by rand() limit 10; en está sentencia RAND() permite ordenar de forma aleatoria, no recomendado hacerlo en producción.
> select client_id, name from clients where active <> 1; en donde <> significa que es diferente
Para eliminar todo el contenido de una tabla y dejarla vacía:
TRUNCATE nameTable;
Pero si quieres eliminar toda la tabla, estructura y datos:
DROP nameTable;
Resumen de la Clase: Tips:
Comandos:
Código:
-- Clase 19 UPDATE Y DELETE -- Ejemplos de Delete y Update DELETE FROM authors WHERE author_id = 161 LIMIT 1; SELECT client_id, name FROM clients WHERE active <> 1; UPDATE clients SET active = 0 WHERE client_id = 80 LIMIT 1; UPDATE clients SET email = 'javier@gmail.com' WHERE client_id = 7 LIMIT 1; --Desactivar clientes con ID especifica y apellido lopez UPDATE clients SET active = 0 WHERE client_id IN (1,6,8,27) OR name like '%Lopez%'; -- Buscar con ID y Lopez SELECT client_id, name FROM clients WHERE client_id IN (1,6,8,27) OR name like '%Lopez%';```
Me encanta que @Alberto Alcocer siempre comparte las "buenas prácticas" eso no se ve en todos los cursos.
Vamos a modificar uno de los valores de la BBDD
UPDATE clients SET active = 0 WHERE client_id = 80 LIMIT 1;
UPDATE clients SET email = javier@gmail.com WHERE client_id = 7 LIMIT 1;
UPDATE clients SET active = 0 WHERE client_id IN (1, 6, 8, 27, 90) OR name like "%Lopez%";
El operador de comparación diferente o no igual en mysql, se puede utilizar cualquiera de los dos que el menciona, != o <>, yo suelo utilizar !=, utilizar el uno u otro va en cada quien, son gustos o costumbres.
Les dejo la fuente:
tengo entendido que en Mysql no sirve el != como en lenguajes de programacion, saludos
Es verdad, ambos funcionan!
Beco, tu historia del periódico sí que motiva a no olvidar ell uso del WHERE. jaja
Hasta ahorita el MEJOR curso ,y el MEJOR DOCENTE :)
Coincido contigo totalmente. Amé su metodología y su estilo.
![](
El comando truncate [nombre de tabla] borra el contenido de la tabla, pero no borra la tabla.
Hola, el profesor Alberto Alcocer tienes mas cursos de SQL?
Hola Eduardo, me parece que este es el más actual. Este es del 2016.
Pero tiene otros cursos como el de Curso de expresiones regulares.
OK. Muchas gracias!
Las tablas que creadas en clase no se definió ninguna FOREIGN KEY. No són obligatorias siempre?
Si las tienen. En la seccion de archivos encontradas las tablas usadas con las Foreign key.
Las llaves foraneas no siempre son requeridas, usted puede crear una tabla sin llaves foraneas, pero el concepto de bases de datos relacionales indican que todas las tablas deben estar relacionadas. Saludos.
DELETE en una bases de datos no debería ocurrir siempre y cuando sea legal, ético y vaya de acuerdo con los términos que se tienen con los clientes.
Cuando se realiza un UPDATE y un DELETE se recomienda hacerlo con un campo que identifica de manera puntual a esa registro utilizando el WHERE. Otra buena práctica que se le puede añadir a esto es utilizar un LIMIT 1 para que sólo actualice ese registro puntual
DELETE borra la tabla, TRUNCATE borra el contenido de la tabla, pero no la tabla.
Buena
excelente aclaración muchas gracias