From fcde4713455551bf6cb24b76c6fb6b557a3a7130 Mon Sep 17 00:00:00 2001 From: Armando Ceballos Date: Mon, 17 Jan 2022 01:01:12 -0600 Subject: [PATCH] Subo cambios de los ultimos dias del curso --- 00.Temas.md | 14 ++- conjuntos/assets/20220105_030256_1.png | Bin 0 -> 28176 bytes conjuntos/assets/20220116_173701_Circle1.png | Bin 0 -> 10417 bytes .../assets/20220116_173735_word-image-416.png | Bin 0 -> 14800 bytes conjuntos/assets/20220116_174115_Circle2.png | Bin 0 -> 13599 bytes .../assets/20220116_174156_word-image-419.png | Bin 0 -> 9977 bytes conjuntos/conjuntos.md | 103 ++++++++++++++++ conjuntos/consultas.sql | 25 ++++ .../assets/20220116_191801_img_innerjoin.gif | Bin 0 -> 6871 bytes joins/assets/20220116_192640_img_leftjoin.gif | Bin 0 -> 7286 bytes .../assets/20220116_192835_img_rightjoin.gif | Bin 0 -> 7477 bytes joins/assets/20220116_204403_img_fulljoin.gif | Bin 0 -> 8135 bytes joins/consultas.sql | 8 ++ joins/joins.md | 87 +++++++++++++ optimizacion/indices.md | 31 +++++ optimizacion/rendimiento.md | 114 ++++++++++++++++++ {Vistas => optimizacion}/vistas.md | 0 transacciones/transacciones.md | 81 +++++++++++++ triggers/triggers.md | 59 +++++++++ 19 files changed, 521 insertions(+), 1 deletion(-) create mode 100644 conjuntos/assets/20220105_030256_1.png create mode 100644 conjuntos/assets/20220116_173701_Circle1.png create mode 100644 conjuntos/assets/20220116_173735_word-image-416.png create mode 100644 conjuntos/assets/20220116_174115_Circle2.png create mode 100644 conjuntos/assets/20220116_174156_word-image-419.png create mode 100644 conjuntos/conjuntos.md create mode 100644 conjuntos/consultas.sql create mode 100644 joins/assets/20220116_191801_img_innerjoin.gif create mode 100644 joins/assets/20220116_192640_img_leftjoin.gif create mode 100644 joins/assets/20220116_192835_img_rightjoin.gif create mode 100644 joins/assets/20220116_204403_img_fulljoin.gif create mode 100644 joins/consultas.sql create mode 100644 joins/joins.md create mode 100644 optimizacion/indices.md create mode 100644 optimizacion/rendimiento.md rename {Vistas => optimizacion}/vistas.md (100%) create mode 100644 transacciones/transacciones.md create mode 100644 triggers/triggers.md diff --git a/00.Temas.md b/00.Temas.md index 5204637..0bcd2cc 100644 --- a/00.Temas.md +++ b/00.Temas.md @@ -22,10 +22,22 @@ - Querys Avanzados. - Uso de JOIN y diferencias con los operadores de conjuntos - + - INNER JOIN + - LEFT JOIN + - RIGHT JOIN + - FULL OUTER JOIN + - Transacciones. + - Triggers. + - Procedimientos almacenados. + - Funciones. + - Optimización. + - Vistas + - Indices + - Rendimiento + - Técnicas avanzadas. diff --git a/conjuntos/assets/20220105_030256_1.png b/conjuntos/assets/20220105_030256_1.png new file mode 100644 index 0000000000000000000000000000000000000000..05a24c30a0b206dc53f808ef751f3a9a4e33e16f GIT binary patch literal 28176 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 literal 0 HcmV?d00001 diff --git a/conjuntos/assets/20220116_173701_Circle1.png b/conjuntos/assets/20220116_173701_Circle1.png new file mode 100644 index 0000000000000000000000000000000000000000..c475fe4f8c7969e4446cb88cd3752fcbb86448ea GIT binary patch literal 10417 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 aWwf2KbuPe&%LlE9C{L8Nls+g}hW`($)}_q= literal 0 HcmV?d00001 diff --git a/conjuntos/assets/20220116_173735_word-image-416.png b/conjuntos/assets/20220116_173735_word-image-416.png new file mode 100644 index 0000000000000000000000000000000000000000..688c250bd093562691dd5bb98713c7e4374d54ce GIT binary patch literal 14800 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 F{|C~?*%kl* literal 0 HcmV?d00001 diff --git a/conjuntos/assets/20220116_174115_Circle2.png b/conjuntos/assets/20220116_174115_Circle2.png new file mode 100644 index 0000000000000000000000000000000000000000..a41f737f3e6b86db63672629945e22ebe83c24fa GIT binary patch literal 13599 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�^yLPB&bN!bU^;~Y7Kk&;J|^_q0B?s-;k;!`>>I3~SwapF z$u7u)><93OJ;r|DyZ~;94 literal 0 HcmV?d00001 diff --git a/conjuntos/assets/20220116_174156_word-image-419.png b/conjuntos/assets/20220116_174156_word-image-419.png new file mode 100644 index 0000000000000000000000000000000000000000..b73c4a404f1782edd8f68710e7c4df19ae7cb57f GIT binary patch literal 9977 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 U!B^7x;4T}AvVw*@LKYJKKRD@)U;qFB literal 0 HcmV?d00001 diff --git a/conjuntos/conjuntos.md b/conjuntos/conjuntos.md new file mode 100644 index 0000000..5d8a0cd --- /dev/null +++ b/conjuntos/conjuntos.md @@ -0,0 +1,103 @@ +# Operadores de conjuntos + +En sql se pueden tomar dos conjuntos de datos y hacer operaciones de conjuntos como union, interseccion o resta, para ello se utiliza loq ue se conoce como operadores de conjunto y existen varios de ellos. Haremos una revision general. + +![](assets/20220105_030256_1.png) + +## UNION y UNION ALL + +Esete operador permite unir o sumar dos conjuntos de datos. + +*Sintaxis* + +``` +SELECT campo from tabla +UNION +SELECT otrocampo from otratabla +``` + +Esta unión se puede hacer de dos tablas diferentes, con la única condición de que el número de campos y tipos de datos sean compatibles entre un SELECT y el otro. + +![](assets/20220116_173701_Circle1.png) + +En las operaciones de conjuntos equivale, el ejemplo anterior equivale a +A ∪ B. + +### Implementación + +*Sintaxis* + +``` +select id from categorias c +union +select id from productos p +``` + + +![](assets/20220116_173735_word-image-416.png) + +Además, se puede hacer una diferenciación entre UNION y un UNION ALL permitiendo o no duplicados que además influye en el tiempo o número de registros que regresa cada uno de ellos, pero en general se trata de la unión de conjuntos. + +## INTERSECT + +Toma dos consultas de entrada (mismo número de campos y tipos de datos compatibles) y genera una salida con los registros que están en ambas entradas. + +En las operaciones de conjuntos tradicionales, la intersección de A y B se denota como A ∩ B y se codifica en términos generales como. + + +![](assets/20220116_174156_word-image-419.png) + +*Sintaxis* + +``` +SELECT campo from tabla +INTERSECT +SELECT otrocampo from otratabla +``` + +En mysql no se encuentra la instruccion except en algunos otros dbms se utiliza minus en mysql se suele usar para esta tarea NOT IN, NOT EXIST o inluso con un LEFT OUTER JOIN + +*Sintaxis* + +``` +SELECT campo from tabla +WHERE campo IN +(SELECT otrocampo from otratabla) +``` + +### Implementación + +*Sintaxis* + +``` +select id from tabla1 +where id in (select id from tabla2) +``` + + +# EXCEPT + +Toma dos consultas y genera una salida con los registros que se encuentren en la primera pero que no se encuentren en la segunda. + +Si UNION equivale a una suma de conjuntos, EXCEPT equivaldría a una resta en terminos generales se escribe como. + + +![](assets/20220116_174115_Circle2.png) + +*Sintaxis* + +``` +SELECT campo from tabla +EXCEPT +SELECT otrocampo from otratabla +``` + +En mysql no se encuentra la instruccion except en algunos otros dbms se utiliza minus en mysql se suele usar para esta tarea NOT IN, NOT EXIST o inluso con un LEFT OUTER JOIN + +*Sintaxis* + +``` +SELECT campo from tabla +WHERE campo NOT IN +(SELECT otrocampo from otratabla) +``` diff --git a/conjuntos/consultas.sql b/conjuntos/consultas.sql new file mode 100644 index 0000000..4754125 --- /dev/null +++ b/conjuntos/consultas.sql @@ -0,0 +1,25 @@ +CREATE TABLE tabla1 ( + id INT PRIMARY KEY +); + +CREATE TABLE tabla2 ( + id INT PRIMARY KEY +); + + +INSERT INTO tabla1(id) VALUES(1),(2),(3); + +INSERT INTO tabla2(id) VALUES(2),(3),(4); + +#union +select id from tabla1 +union +select id from tabla2 + +#intersec +select id from tabla1 +where id in (select id from tabla2) + +#except +select id from tabla1 +where id not in (select id from tabla2) diff --git a/joins/assets/20220116_191801_img_innerjoin.gif b/joins/assets/20220116_191801_img_innerjoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..db001269a461e6412665fd335d114e74b93c71aa GIT binary patch literal 6871 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 literal 0 HcmV?d00001 diff --git a/joins/assets/20220116_192640_img_leftjoin.gif b/joins/assets/20220116_192640_img_leftjoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..f205846ad7cbda5e1f7e1230e6df4eb9f4c0ec7f GIT binary patch literal 7286 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 as8i~icA0ljM)3w*T=>AjG#wBG=KT+gST$n+ literal 0 HcmV?d00001 diff --git a/joins/assets/20220116_192835_img_rightjoin.gif b/joins/assets/20220116_192835_img_rightjoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34c021f65ec5bd38c5222b316de56c97f4d5ef6 GIT binary patch literal 7477 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 literal 0 HcmV?d00001 diff --git a/joins/assets/20220116_204403_img_fulljoin.gif b/joins/assets/20220116_204403_img_fulljoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..ace249e019eb2fba2ab2c9307ddfb1c27194a28f GIT binary patch literal 8135 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 literal 0 HcmV?d00001 diff --git a/joins/consultas.sql b/joins/consultas.sql new file mode 100644 index 0000000..35797dc --- /dev/null +++ b/joins/consultas.sql @@ -0,0 +1,8 @@ +select * +from categorias c +join categoria_producto cp on c.id = cp.categoria_id +join productos p on p.id = cp.producto_id + +select c.id, c.nombre, c.categoria_id ,c2.nombre from categorias c +join categorias c2 on c2.id = c.categoria_id + diff --git a/joins/joins.md b/joins/joins.md new file mode 100644 index 0000000..658b65e --- /dev/null +++ b/joins/joins.md @@ -0,0 +1,87 @@ +# JOINS + +Los join se usan para recuperar datos de varias tablas al mismo tiempo y las tablas tienen que estar relacionadas de algún modo, normalmente mediante un id. + +En Mysql, como en la mayoría de las bases de datos relacionales hay diferentes tipos de join. + +## INNER JOIN + +También se puede usar como **join** sin nada más. En este caso la sentencia va a devolver los datos que existen las dos tablas que se comparan. + +![](assets/20220116_191801_img_innerjoin.gif) + +*Sintaxis* + +``` +SELECT column_name(s) +FROM table1 +INNER JOIN table2 +ON table1.column_name = table2.column_name; +``` + +### Implementación + +*Sintaxis* + +``` +select c.id, c.nombre, c.categoria_id ,c2.nombre from categorias c +join categorias c2 on c2.id = c.categoria_id +``` + +Tambien se pueden relacionar mas de dos tablas + +``` +select * +from categorias c +join categoria_producto cp on c.id = cp.categoria_id +join productos p on p.id = cp.producto_id +``` + +## LEFT JOIN + +En este caso la sentencia va a devolver los datos que tiene en la primera tabla con los datos que tiene en común con la segunda tabla. + +![](assets/20220116_192640_img_leftjoin.gif) + +*Sintaxis* + +``` +SELECT column_name(s) +FROM table1 +LEFT JOIN table2 +ON table1.column_name = table2.column_name; +``` + +## RIGHT JOIN + +Este caso es como el anterior pero a la inversa, la sentencia va a devolver los datos que tiene en la segunda tabla con los datos que tiene en común con la primera tabla. + +![](assets/20220116_192835_img_rightjoin.gif) + +*Sintaxis* + +``` +SELECT column_name(s) +FROM table1 +RIGHT JOIN table2 +ON table1.column_name = table2.column_name; +``` + +## OUTER JOIN o FULL OUTER JOIN + +En este caso se recuperan todos los datos de ambas tablas. Este tipo de join no es compatible con MySQL y para conseguir un OUTER JOIN hay que usar la unión de sentencias con UNION del INNER JOIN y del LEFT JOIN.En MySQL los UNION tienen que tener el mismo número de campos en el SELECT sino dará error. + + +![](assets/20220116_204403_img_fulljoin.gif) + +*Sintaxis* + +``` +SELECT column_name(s) +FROM table1 +FULL OUTER JOIN table2 +ON table1.column_name = table2.column_name +WHERE condition; +``` + +Para implementarlo en MYSQl tendriamos que usar la union del left join y del right join diff --git a/optimizacion/indices.md b/optimizacion/indices.md new file mode 100644 index 0000000..b58f1da --- /dev/null +++ b/optimizacion/indices.md @@ -0,0 +1,31 @@ +# Indices + +Indexar un campo en una tabla de la base de datos solo sirve para mejorar la velocidad de busqueda y querys donde se relacione ese campo. + +Para hacerlo hay dos maneras. + +- Indexar permitiendo valores duplicados + +*Sintaxis* + +``` +CREATE INDEX index_name +ON table_name (column1, column2, ...); +``` + +- Indexar solo permitiendo valores unicos + +*Sintaxis* + +``` +CREATE UNIQUE INDEX index_name +ON table_name (column1, column2, ...); +``` + +Para eliminar un indices + +*Sintaxis* +``` +ALTER TABLE table_name +DROP INDEX index_name; +``` \ No newline at end of file diff --git a/optimizacion/rendimiento.md b/optimizacion/rendimiento.md new file mode 100644 index 0000000..ef8e0cc --- /dev/null +++ b/optimizacion/rendimiento.md @@ -0,0 +1,114 @@ +# Saber peso de nuestras base de datos + +Es importante poder conocer el tamaño que ocupan nuestras base de datos y tablas para poder definir donde hay gran cantidad de datos y por ende hay que realizar optimizacion + +*Sintaxis* +``` +SELECT table_schema AS "Base de datos", +ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Tamaño (MB)" +FROM information_schema.TABLES +GROUP BY table_schema; +``` + +Saber el peso de una tablas + +*Sintaxis* +``` +SELECT table_name AS "Tabla", +ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Tamaño (MB)" +FROM information_schema.TABLES +WHERE table_schema = "base_de_datos" +ORDER BY (data_length + index_length) DESC; +``` + +# Mejorar rendimiento de campos que guardan UUID + +Lo estandar es guardar campos que guardar uuid en varchar de 32 o incluso en char de 32 pero por alguna razon cuando se guarda en campos de tipo binario el rendimiento mejora considerablemente y si ademas indexamos el campos el rendimiento es hasta 160% mas rapido que si lo guardamos en tipo texto. + +# SLOW QUERY + +Para Permitirnos ver las querys que estan tomando mucho tiempo en realizarse en el servidor y que por ende nos estan causando problemas de rendimiento lo podremos activar en el archivo de configuracion my.cnf, pero tambien podremos activarlo desde una consulta. + +*Sintaxis* +``` +SET GLOBAL slow_query_log = 'ON'; +``` + +Por defaul cualqueir consulta que dure mas de 10 segunos sera registrada, podemos cambiar ese tiempo usando la siguiente instrucción. + +*Sintaxis* +``` +SET GLOBAL long_query_time = TIEMPO; +``` + +Para desactivarlo solo tendremos que hacer esta consulta. Cuando + +*Sintaxis* +``` +SET GLOBAL slow_query_log = 'OFF'; +``` + +# Reparación de bases de datos dañadas + +Mysql tiene basicamente dos motores de base de datos MyISAM e InnoDB por desgracia la forma de repararlas no es la misma asi que listo rapidamente las dos maneras de realizar estas tareas + +## AMBOS + +Tendras que detener el servicio de base de datos dependiedo de la distribucion de SO que tengas. + +En esta parte recomiendo en sacar un respaldo de los archivos data de tu base de datos, esto tambien dependera del SO anfitrion de tu servidor de base de datos. + +Si quieres verificar toda una base de datos usaras el siguiente comando. + +``` +mysqlcheck base_de_datos +``` + +Si solo quieres verificar una tabla seria el siguiente: + +``` +mysqlcheck base_de_datos tabla +``` + +En ambos casos indicara si la tabla contiene algun error si no mostrara ok alado de la tabla. + +En caso de requerir reparacion el mismo comando que usaste pero con el parametro -r hara la reparacion quedando d ela siguiente manera: + +``` +mysqlcheck -r base_de_datos tabla +``` + +## MyISAM + +Para una repacaion mas especializada podras en caso de usar este motor usar la herramienta **myisamchk** la cual trabbaja con archivos asi que tendras que indicar el archivo con extencion .MYI de la tabla que quieres reparar tambien puedes indicarle *.MYI para que lo haga en todas las tablas. + +Si el comando logra encontrar alguna tabla con fallo ejecutarias el siguiente comando para repararla. +``` +myisamchk --recover tabla +``` + +## InnoDB + +Para el caso de InnoDB se tiene que hacer un cmabio en el archivo de configuración, por supuesto con el servicio de la base de datos apagado. +``` +innodb_force_recovery=4 +``` +dentro del archivo de configuracion my.cnf + +luego usando **mysqldump** habria que respaldar las base de datos +``` +mysqldump --all-databases --add-drop-database --add-drop-table > bases_de_datos.sql +``` + +Despues abria que borra la base de datos y restaurar el respaldo que hicimos, para finalizar comentando de nuevo la configuracion hecha en el archivo my.cnf +``` +mysql < bases_de_datos.sql +``` +``` +#innodb_force_recovery=4 +``` + +para mas informacion el link de la documentación oficial + +[Documentacion Oficial](https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html) + diff --git a/Vistas/vistas.md b/optimizacion/vistas.md similarity index 100% rename from Vistas/vistas.md rename to optimizacion/vistas.md diff --git a/transacciones/transacciones.md b/transacciones/transacciones.md new file mode 100644 index 0000000..3333ef0 --- /dev/null +++ b/transacciones/transacciones.md @@ -0,0 +1,81 @@ +# Transacciones + +Una transacción en un Sistema de Gestión de Bases de Datos es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica. + +Se dice que un SGBD es transaccional si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado. Una transacción debe contar con ACID (un acrónimo inglés) que quiere decir: Atomicidad, consistencia, aislamiento y durabilidad. + +MySQL es compatible con varios motores de almacenamiento. InnoDB es totalmente compatible con ACID. Las transacciones confiables deben ser compatibles con estas cuatro propiedades. + +Las operaciones dentro de una transacción deben ser atómicas. Esto significa que todas las operaciones tienen éxito o fallan. Esta es la regla de todo o nada. La consistencia garantiza que la base de datos se encuentre en un estado consistente una vez finalizada la transacción, los datos son válidos y no hay registros a medio terminar. Por ejemplo, no quedan clientes sin registros de pago o no hay registros de pago sin clientes. + +El aislamiento es el requisito de que otras operaciones no puedan acceder a los datos que se han modificado durante una transacción que aún no se ha completado, el aislamiento ocurre en caso de transacciones concurrentes. Sin aislamiento, los datos pueden terminar en un estado inconsistente. La durabilidad es la capacidad del sistema de base de datos para poder recuperarse en caso que se presenten transacciones comprometidas contra cualquier tipo de falla del sistema. + +## Niveles de aislamiento + +Pues bien, repasado este concepto ya podemos mostrar los problemas asociados a los distintos tipos de transacciones: + +* ### Dirty reads (Lecturas sucias) + +Es el problema más importante de todos. Supone que las transacciones en curso puedan leer el resultado de otras transacciones aún no confirmadas. Por ejemplo, vamos a suponer que tenemos dos transacciones activas (A y B). + +Inicialmente la transacción A lee un valor X de una tabla que, por ejemplo, es 0. Durante dicha transacción el valor de X se cambia a 10, pero aún la transacción no se ha completado, por lo que en la tabla X = 0. Ahora la transacción B accede al valor X y obtiene X = 10 un valor que está usando A y que aún no se ha cometido. Supongamos que ahora se anula la transacción A. El resultado sería X = 0 en la tabla y X = 10 en la transacción B por lo que hemos llegado a un estado muy grave de inconsistencia. + +* ### Non-Repeatable reads (Lecturas no repetibles) + +Ocurre cuando una transacción activa vuelve a leer un dato cuyo valor difiere con respecto al de la anterior lectura. Lo vemos más claro con un ejemplo. + +Supongamos que una transacción activa, A, lee un valor X = 0. En este momento otra transacción B modifica el valor de X, por ejemplo X = 10, y se comete dicha transacción. Si ahora durante la transacción A se vuelve a leer el valor X obtendríamos 10 en lugar del 0 que se esperaba. Aunque a primera vista este problema no parezca muy importante en realidad sí que lo es, sobre todo cuando X es una clave primaria o ajena. En este caso se puede originar una gran pérdida de consistencia en nuestra base de datos. + +* ### Phantom reads (Lecturas fantasma) + +Este supone el menor problema que se nos puede plantear con respecto a las transacciones. Sucede cuando una transacción en un momento lanza una consulta de selección con una condición y recibe en ese momento N filas y posteriormente vuelve a lanzar la misma consulta junto con la misma condición y recibe M filas con M > N. Esto es debido a que durante el intervalo que va de la primera a la segunda lectura se insertaron nuevas filas que cumplen la condición impuesta en la consulta. + +Debido a estos problemas el ANSI establece diferentes niveles de aislamiento (isolations levels) para solventarlos. Hay que tener en cuenta que a mayor nivel de aislamiento mayores son los sacrificios que se hacen con respecto a la concurrencia y al rendimiento. Vamos a enumerar los niveles de aislamiento desde el menor hasta el mayor: + +- Read uncommitted (Lectura sin confirmación): En la práctica casi no se suele utilizar este nivel de aislamiento ya que es propenso a sufrir todos los problemas anteriormente descritos. En este nivel una transacción puede ver los resultados de transacciones aún no cometidas. Podemos apreciar que en este nivel no existe aislamiento alguno entre transacciones. +- Read committed (Lectura confirmada): Es el predeterminado para la mayoría de gestores de bases de datos relacionales. Supone que dentro de una transacción únicamente se pueden ver los cambios de las transacciones ya cometidas. Soluciona el problema de las lecturas sucias, pero no el de las lecturas no repetibles ni tampoco el de las lecturas fantasmas. +- Repeatable read (Lectura repetible): Define que cualquier tupla leída durante el transcurso de una transacción es bloqueada. De esta forma se soluciona, además de las lecturas sucias, el problema de las lecturas no repetibles. Aunque en dicho nivel se siguen dando las lecturas fantasmas. +- Serializable (Lecturas en serie): Soluciona todos los problemas descritos. Para ello ordena las transacciones con el objetivo de que no entren en conflicto. Este nivel de aislamiento es bastante problemático ya que es, con diferencia, el que más sacrifica en rendimiento y concurrencia. + + + +| Nivel de aislamientocol | Lecturas fantasma | Lecturas no repetibles | Lecturas sucias | +| :---------------------- | :---------------: | :--------------------: | :-------------: | +| Serializable | No | No | No | +| Repeatable read | Si | No | No | +| Read committed | Si | Si | No | +| Read uncommitted | Si | Si | Si | + +Para consultar que nivel de aislamiento se esta usando + +``` +SELECT @@tx_isolation; +``` + +Para cambiarlo por otro por: + +``` +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +``` + +## Autocommit + +MySQL ejecuta automáticamente las consultas que no son parte de una transacción. Los resultados de cualquier consulta ya sea ACTUALIZAR o INSERTAR que no esté precedida por un START TRANSACTION (BEGIN) serán visibles inmediatamente para todas las conexiones. + +podemos ver el modo en el que se encuentra una conexion con esta consulta + +``` +SELECT @@autocommit; +``` + +con esta consulta podemos desactivarla + +``` +SET autocommit=0; +``` + +y colocando el valor 1 la activariamos de nuevo + +## Manejo de transacciones + +Con autocommit habilitado, cada instrucción SQL se ajusta automáticamente en su propia transacción. Para comenzar nuestra propia transacción, debemos ejecutar la instrucción START TRANSACTION (BEGIN). La transacción se termina más tarde con las instrucciones COMMIT o ROLLBACK. Se pueden ejecutar múltiples declaraciones en el cuerpo de la transacción. diff --git a/triggers/triggers.md b/triggers/triggers.md new file mode 100644 index 0000000..7315dbd --- /dev/null +++ b/triggers/triggers.md @@ -0,0 +1,59 @@ +# Triggers + +Técnicamente, un trigger es un objeto de una base de datos que está asociado a una tabla, y que será activado cuando la acción que tiene asociada tiene lugar. + +El trigger se puede ejecutar cuando tiene lugar una acción INSERT, UPDATE o DELETE, siendo posible su ejecución tanto antes como después del evento. + +*Sintaxis* + +``` +CREATE + [DEFINER = { user | CURRENT_USER }] + TRIGGER trigger_name + trigger_time trigger_event + ON tbl_name FOR EACH ROW + [trigger_order] + trigger_body +``` +**Explicación** +* DEFINER: Especifica el usuario de BBDD con privilegios para desencadenar un TRIGGER. Por defecto es el usuario que crea el TRIGGER. +* trigger_name: Nombre del TRIGGER/disparador. +* trigger_time: Especifica cuando se ha de ejecutar el TRIGGER, antes o después del evento detectado. +* trigger_event: Evento que activa el TRIGGER –> INSERT, UPDATE y DELETE. +* tbl_name: Nombre de la tabla en la que detectaremos el trigger_event. +* trigger_order: Una tabla puede tener asociados varios TRIGGER, por defecto la ejecución de cada uno es el orden en el que fuero creados. Para alterar ese orden podemos definirlos con FOLLOWS (depués de nombre trigger) y con PRECEDE (antes de nombre_trigger). +* trigger_body: Código del TRIGGER. + +## Implementación + +hagamos un triger que al definir un precio de compra indique que el precio de venta es un 16% mas para incrementarle el IVA del producto. + +``` +DELIMITER $$ +$$ +CREATE TRIGGER actualizar_precio_productos +BEFORE UPDATE +ON productos FOR EACH row +BEGIN + IF NEW.preciocompra <> OLD.preciocompra + THEN + SET NEW.precio = NEW.preciocompra * 1.16; + END IF ; +END +$$ +DELIMITER ; +``` + +Verificar que este funcionando el trigger + +``` +SELECT * FROM productos WHERE id = 6; +UPDATE productos SET preciocompra = 100 WHERE id = 6; +SELECT * FROM productos WHERE id = 6; +``` + +## Eliminar un trigger + +``` +DROP TRIGGER nombre_del_trigger +``` \ No newline at end of file