2.2 - DML - Consultas SQL Ejercicios - Propuestos
2.2 - DML - Consultas SQL Ejercicios - Propuestos
2.2 - DML - Consultas SQL Ejercicios - Propuestos
BD Avanzada
Lenguaje de manipulacin de datos (DML)
El lenguaje de manipulacin de datos (en ingls Data Manipulation
Language, o DML), nos permite insertar, modificar, eliminar o
recuperar informacin de la base de datos.
Ejemplo:
Ejemplo:
Ejemplo:
Ejemplo:
BDNegocio
Consultar la cantidad de
clientes que se tiene en
cada pas. Mostrar los
pases ordenados
alfabticamente.
Consultas avanzadas
Temas:
Inner Join
Left Outer Join
Right Outer Join
Full Outer Join
Union
Funciones
Tablas Temporales
Variables tipo tabla
Consultas avanzadas
Las combinaciones que podemos realizar entre tablas podemos clasificarlas de la siguiente manera:
a) Combinaciones internas:
- INNER JOIN O JOIN : Se incluyen los registros en los que haya correspondencia en
ambas tablas segn la condicin de la combinacin.
b) Combinaciones externas:
- LEFT OUTER JOIN O LEFT JOIN: Se incluyen adems los registros de la tabla de la
izquierda que no tienen correspondencia segn la condicin de combinacin.
- RIGHT OUTER JOIN O RIGHT JOIN: Se incluyen adems los registros de la tabla de
la derecha que no tienen correspondencia segn la condicin de combinacin.
- FULL OUTER JOIN O FULL JOIN: Se Incluyen adems registros de la tabla de la
derecha y de la izquierda no tienen correspondencia segn la condicin de
combinacin.
Consultas avanzadas
INNER JOIN
SELECT *
FROM departamentos as d INNER JOIN
empleados as e ON d.deptoId = e.deptoId
SELECT *
FROM departamentos as d LEFT OUTER JOIN
empleados as e ON d.deptoId = e.deptoId
SELECT *
FROM departamentos as d RIGHT OUTER JOIN
empleados as e ON d.deptoId = e.deptoId
SELECT *
FROM departamentos as d FULL OUTER JOIN
empleados as e ON d.deptoId = e.deptoId
ORDER BY Producto.NombreProducto
UNION
El operador UNION une los resultados de dos o ms
sentencias SELECT en un solo conjunto de
resultados.
- SQL Server requiere que las consultas a las tablas
referenciales tengan el mismo nmero de columnas,
los mismos tipos de datos, y que las columnas se
encuentren en el mismo orden en la lista SELECT.
- SQL Server elimina las filas duplicadas en el
resultado. Sin embargo, si usa la opcin UNION ALL,
todas las filas (incluso las duplicadas) son incluidas en
el resultado.
UNION
-
UNION
Unin: Evita registros repetidos
Unin All: Considera registros repetidos
Funciones
-
Funciones de agregado:
En la lista de seleccin de una consulta de resumen aparecen
funciones de columna tambin denominadas funciones de dominio
agregadas. Una funcin de columna se aplica a una columna y
obtiene un valor que resume el contenido de la columna.
Funciones
- Funciones de fecha y hora:
Datepart:
Day, Month, year, weekday, etc.
Funcin
Ejemplo
Resultado
2010-01-06
10227
Octubre
DAY ( date )
Select DAY('25/10/2009)
25
10
Select YEAR('25/10/2009)
2009
MONTH ( date )
YEAR ( date )
Optimizacin de Consultas
Optimizacin de consultas
1.- No utilizar SELECT * por que el motor debe leer
primero la estructura de la tabla antes de ejecutar la
sentencia para ubicar los campos Seleccionar solo
aquellos campos que se necesiten, cada campo extra
genera tiempo extra.
2.- Deben Cualificar los campos, es decir especificar el
alias de la tabla o el nombre de la tabla delante de
cada campo definido en el select, esto le ahorra tiempo
al motor de tener que buscar a que tabla pertenece el
campo especificado. Select Tabla.campo, .
Optimizacin de consultas
3.- Utilizar Inner Join , left join , right join, para
unir las tablas en lugar del From Tabla1, Tabla2,
, que se usaba antiguamente, esto permite que
a medida que se declaran las tablas se unan,
mientras que si utilizamos el FROM Tabla1, Tabla
2 y luego en el where las relacionamos, el motor
genera primero el producto cartesiano de todos
los registros de las tablas para luego filtrar las
correctas, un trabajo definitivamente lento. Justo
para evitar esto surgen los JOIN
Optimizacin de consultas
4.- El orden de ubicacin de las tablas en el From se
sugiere que deberan ir en lo preferible de menor a mayor
segn el nmero de registros, de esta manera se dice
que reduce la cantidad de revisiones de registros que
realiza el motor al unir las tablas a medida que se
agregan.
5.- Evitar el uso de Like en la medida de lo posible en el
Where.
Optimizacin de consultas
6.-Evitar el uso de Subconsultas que generalmente se ponen con IN
(Select) y NOT IN (Select .), en lugar del IN usar Inner Join, y en
lugar de NOT IN usar Left Outer Join y en el Where le agregan una
condicin de nulidad.
7.- Evitar el uso de Convert, Cast y Formulas dentro de las consultas,
cada formula y casteo retrasan el motor considerablemente. Esto
hacerlo en la capa de cliente o presentacin.
Optimizacin de consultas
8.- No usar cursores, se recomienda en su lugar usar tablas temporales o
variables tipo tabla, El usar variables tipo tabla es ms optimo que el uso de
tablas temporales.
9.- Siempre el SQL SERVER buscar el mejor plan de ejecucin para las
consultas, pero para ello se basa en el registro de las estadsticas, por lo
que la recomendacin es que las estadsticas de las tablas que maneja el
SQL SERVER siempre estn actualizadas.
Optimizacin de consultas
10.- Crear ndices para tablas que tienen gran cantidad de registros y
que se consultan frecuentemente, pero tener cuidado con los ndices ya
que retrasan las actualizaciones y ocupan espacio en disco, se
recomienda generalmente para claves primarias que ya las crea
automticamente, para las claves forneas, pero sobre todo para
campos por los que se hacen bsquedas frecuentes en el Where.
Cuando la tabla no tiene muchos registros no son necesarios por que el
mejor plan de ejecucin que elegir el SQL SERVER ser el leer la tabla
directamente y no buscar en el ndice.
Optimizacin de consultas
Optimizacin de consultas
Gracias!