SQL Server Fundamentals 3ra Sesion

29
Julián Castiblanco P. http:// julycastiblanco.blogspot.com/ [email protected] MCT-MCITP-MCTS SQL Server 2008/2005 Líder ITPros-DC SESIÓN 3

Transcript of SQL Server Fundamentals 3ra Sesion

Page 1: SQL Server Fundamentals 3ra Sesion

Julián Castiblanco P.http://julycastiblanco.blogspot.com/[email protected] SQL Server 2008/2005

Líder ITPros-DC

SESIÓN 3

Page 2: SQL Server Fundamentals 3ra Sesion

CONTENIDO DEL CURSO

Page 3: SQL Server Fundamentals 3ra Sesion

CONTENIDO DEL CURSO

Page 4: SQL Server Fundamentals 3ra Sesion

• Teoría Procedimientos Almacenados (2da Sesión)• Consultas Simples• Consultas Complejas• Inserción de datos• Actualización de datos• Eliminación de datos

Agenda Tercera Sesión

Page 5: SQL Server Fundamentals 3ra Sesion

Entendiendo Procedimientos Almacenados

Page 6: SQL Server Fundamentals 3ra Sesion

Procedimientos

• Son sentencias de T-SQL que se almacenan en el servidor. Utilizado para almacenar tareas repetitivas que se ejecutan eficientemente en el servidor.

• Aceptan parámetros y retornan parámetros cuando son invocados.• Las reglas de negocio encapsuladas en un procedimiento puede ser cambiada en un solo

objeto y todos los clientes utilizan el mismo objeto lo que asegura la consistencia en acceso y modificación de datos

• El modelo ER puede ser oculto a los usuarios finales.• Se pueden otorgar privilegios de ejecución aún si estos no tienen acceso a las tablas y

vistas referenciadas.• Se reduce el tráfico de datos en la red.• Puede mejorar el desempeño de las aplicaciones.

Page 7: SQL Server Fundamentals 3ra Sesion

Procedimientos

• Existen propiedades adicionales para los procedimientos como las siguientes:– With Recompile: Cada vez que se ejecuta se recrea el plan de ejecución– With Encryption: Oculta la lógica (TSQL statement) que genera el dataset de respuesta.– Execute AS: La consulta interna en el procedimiento se ejecuta con los privilegios de un usuario diferente al que lo

invocó.

CREATE Procedure pGetEmployeeLogin@NationalIDNumber nvarchar(15)ASSELECT NationalIDNumber,LoginIDFROM HumanResources.Employee WHERE NationalIDNumber = @NationalIDNumber GO

Page 8: SQL Server Fundamentals 3ra Sesion

Procedimientos

• Porque mejoran el performance de las aplicaciones?– Todo se basa en los planes de ejecución de SQL Server

Parcing Resolving Optimizing Compiling Executing

Cuando se ejecuta un procedimiento almacenado, este utiliza los planes de ejecución creados con anterioridad, lo que reduce el tiempo de ejecución de las consultas.

Page 9: SQL Server Fundamentals 3ra Sesion

Procedimientos

Sql Server se divide en 2 motores principales Storage (SE)y Relational (query processor RE).• RE: Optimización y ejecución de

sentencias. Contiene un Cmd Parser que verifica la sintaxis y prepara el árbol de consulta, un Optimizador que es el valor de un DBMS y un QE responsable de la ejecución.

• SE: es responsable de la gestión del I/O y contiene los métodos de acceso que manejan las peticiones de I/O de filas, índices, paginas, bloqueo de filas y al Buffer Manager el cual maneja que información deberá estar disponible en memoria, también maneja al log transaccional.

Page 10: SQL Server Fundamentals 3ra Sesion

Consultas Simples

Page 11: SQL Server Fundamentals 3ra Sesion

Consultas simples – Filtros Básicos

• Se utilizan para limitar las filas que serán devueltas en una consultan.

Comparación: =,<,>,>=,<=,!=

Cadenas: LIKE, CONTAINTS, FREETEXT

Logical: AND, OR, NOT, IN, ALL, ANY, SOME, EXISTS

Page 12: SQL Server Fundamentals 3ra Sesion

Consultas simples – Group By

• Se utiliza para agrupar información por una o varias columnas.• Se aprovecha normalmente para sacar totales, promedios, encontrar valores

máximos y mínimos.• Resuelve preguntas como ¿Cuál es el costo total de la factura?

Page 13: SQL Server Fundamentals 3ra Sesion

Consultas simples – Having

• Se utiliza para condicionar los registros de salida resultantes de una agrupación.• Resuelve preguntas como ¿Devuelva los clientes y el promedio de valor de sus

facturas, siempre y cuando el cliente haya realizado compras superiores a $15.000 pesos?

Page 14: SQL Server Fundamentals 3ra Sesion

Consultas simples – Roll Up y CUBE

• Generan subtotales para cada una de las combinaciones de la consulta.

Page 15: SQL Server Fundamentals 3ra Sesion

Consultas simples – Rank

• Son funciones de Clasificación que permite entregar diferentes análisis de información.• RANK• DENSE_RANK• NTILE• ROW_NUMBER

Page 16: SQL Server Fundamentals 3ra Sesion

Consultas simples – Rank

Page 17: SQL Server Fundamentals 3ra Sesion

Consultas Complejas

Page 18: SQL Server Fundamentals 3ra Sesion

Consultas simples – Subconsultas

• Consultas anidadas dentro de un SELECT, INSERT, UPDATE o DELETE• Puede ser utilizada en cualquier expresión que lo necesite.

Page 19: SQL Server Fundamentals 3ra Sesion

Consultas simples – EXISTS

• Devuelve los registros solo si existen en un resultset anterior..

Page 20: SQL Server Fundamentals 3ra Sesion

Consultas simples – Tablas Temporales

• Permiten almacenar información en tablas de sesión de usuario.• Estas se almacenan en la base de datos TEMPDB• Pueden ser locales o Globales

Page 21: SQL Server Fundamentals 3ra Sesion

Inserción de datos

Page 22: SQL Server Fundamentals 3ra Sesion

Inserción de datos

Page 23: SQL Server Fundamentals 3ra Sesion

Actualización de datos

Page 24: SQL Server Fundamentals 3ra Sesion

Actualización de datos

Page 25: SQL Server Fundamentals 3ra Sesion

Actualización de datos

Page 26: SQL Server Fundamentals 3ra Sesion

Eliminación de datos

Page 27: SQL Server Fundamentals 3ra Sesion

Eliminación de datos

Page 28: SQL Server Fundamentals 3ra Sesion

Eliminación de datos

TRUNCATE TABLE se diferencia del comando DELETE por:

1. Utiliza menos espacio en el log transaccional2. Realiza menos bloqueos en la base de datos3. Ninguna página queda en la tabla

Page 29: SQL Server Fundamentals 3ra Sesion

Bibliografía

• http://msdn.microsoft.com/en-us/library/aa933206(v=sql.80).aspx• http://msdn.microsoft.com/en-us/library/ms189835.aspx• http://msdn.microsoft.com/en-us/library/aa260662(v=sql.80).aspx• http://msdn.microsoft.com/en-us/library/ms189575.aspx• http://msdn.microsoft.com/en-us/library/ms189872.aspx• http://msdn.microsoft.com/en-us/library/ms189305(v=sql.90).aspx• Course 2778A, Writing Queries Using Microsoft® SQL Server® 2008

Transact-SQL