0
SQL SERVER 2008
                    Para desarrolladores




http://www.desarrolladoras.org.ar
SQL SERVER 2008
                              Para desarrolladores




Gabriela Marina Giles
MCT – MCTS
Instructor Senior ...
¿Que es SQL Server?
           ¿Que es SQL?
       ¿Qué es Transact-SQL?




http://www.desarrolladoras.org.ar
Bases de Datos
 • Sistema:
     – Master
     – Model
     – TemDB
     – MSDB
 • Usuarios:
     – AdventureWorks
     – N...
SQL es agrupado en 3
            categorías:
      1. DDL - Data Definition Language
      2. DCL - Data Control Language
...
Data Definition Language
      • CREATE
      • ALTER
      • DROP

      • EJEMPLO:
      CREATE TABLE / CREATE PROC / CR...
Los permisos para
   sentencias DDL
 • Pertenecer al roles:
     – Sysadmin (servidor)
     – Dbcreator (servidor) y db_ow...
DEMO DDL




http://www.desarrolladoras.org.ar
Los 4 nombres
 • SQL Server 2000
   – Servidor.base.propietario.objeto
 • SQL Server 2005-2008
   – Servidor.base.esquema....
Data Control Language
      •   GRANT
      •   DENY
      •   REVOKE
      •   Los permisos para poder ejecutar estas
   ...
DEMO DCL




http://www.desarrolladoras.org.ar
Data Manipulation Language
      •   INSERT
      •   UPDATE
      •   DELETE
      •   SELECT




http://www.desarrollado...
INSERT
 • Nueva sintaxis para cláusula VALUES
     – Ahora devuelve una tabla relacional con
       múltiples filas
 • Uso...
DEMO INSERT - UPDATE




http://www.desarrolladoras.org.ar
Tipos de datos
   Los tipos de datos de SQL Server se organizan en
     las siguientes categorías:
 Numéricos exactos     ...
Nuevos Tipos de datos

 • DATE
     – Almacena solamente fechas, sin la
       porción de tiempo.
     – Rango ampliado de...
Nuevos Tipos de datos
• TIME
   – Almacena solamente tiempo, sin la porción de
     fecha.
   – Rango ampliado de fracción...
Nuevos Tipos de datos
 • DATETIME2
     – Rango ampliado de fecha y fracción de segundos:
        • Enero 01, 0001 – Dicie...
Nuevos Tipos de datos
 •   DATETIMEOFFSET
      – Contiene todas las características de DATETIME2:
         • Enero 01, 00...
Demos Tipos de datos




http://www.desarrolladoras.org.ar
Variables
 • Las variables se declaran con un @
   delante del nombre.
    – DECLARE @city varchar(50)
 • Se pueden modifi...
Inicialización y asignación de
                 variables
 •   Una pequeña mejora introduce SQL Server 2008 al lenguaje T-...
Stored Procedures
         Código escrito en T-SQL, compilado y
             almacenado en el SQL Server




http://www.de...
Stored Procedures
                              Por qué ?

              Seguridad por encriptación
     Performance frent...
Stored Procedures
 • Definidos por el usuario
 • Los de sistema




http://www.desarrolladoras.org.ar
Stored Procedures
                         Operaciones posibles


               Crear           CREATE PROCEDURE

       ...
Parametros
 • INPUT
 • OUTPUT
 • RETURN VALUE




http://www.desarrolladoras.org.ar
DEMO SP




http://www.desarrolladoras.org.ar
Valores Tipo “Tabla” como
            Parámetros
• Escenarios
    – Actualización en lotes del servidor
    – Parámetros e...
Valores Tipo “Tabla” como
            Parámetros
• Tipo de tabla definida por el usuario
    – Nuevo tipo definido por el ...
Valores Tipo “Tabla” como
            Parámetros




http://www.desarrolladoras.org.ar
Valores Tipo “Tabla” como
                 Parámetros
• Rendimiento
  – Se puede especificar un ordenamiento y clave única...
DEMO PARAMETRO TABLA




http://www.desarrolladoras.org.ar
Merge
 • Permite procesar múltiples cambios en una
   sola instrucción
 • Sintáxis:
         MERGE <target>
             U...
Merge
 MERGE dbo.Tabla1 AS Target
    USING (SELECT ID,Campo1,Campo2,Campo3 FROM dbo.Tabla2)
    AS Source
    ON (Target....
Capturar salida:
 • Clausula OUTPUT que permite capturar todo lo que
   sucedió dentro de una operación
   INSERT/DELETE/U...
MERGE dbo.Tabla1 AS Target
   USING (SELECT ID,Campo1,Campo2,Campo3 FROM dbo.Tabla2) AS
   Source
   ON (Target.ID = Sourc...
DEMO MERGE




http://www.desarrolladoras.org.ar
Tipo de datos FileStream
 • Algunas de las características de
   este nuevo tipo de datos son:
 • Almacena grandes fichero...
características de FILESTREAM
 • Es un atributo de una columna varbinary(max).
 • Especifica que la columna se ha de almac...
¿Cuándo es recomendable
 utilizar el tipo de datos
      FILESTREAM?

 • Se necesita almacenar objetos que
   ocupan como ...
DEMO




http://www.desarrolladoras.org.ar
LINQ
 • El Lenguaje de Consultas Integrado LINQ, nos permite
   realizar consultas a una fuente de datos utilizando
   len...
Para otra presentación

 • Más de tipos de datos:
     – Soporte para datos Espaciales (geográficos /
       geométricos)
...
?
                                 Gracias!

Gabriela Marina Giles
MCT – MCTS
Instructor Senior .NET
Oradora Regional de I...
Upcoming SlideShare
Loading in...5
×

(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008

446

Published on

(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
446
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008"

  1. 1. SQL SERVER 2008 Para desarrolladores http://www.desarrolladoras.org.ar
  2. 2. SQL SERVER 2008 Para desarrolladores Gabriela Marina Giles MCT – MCTS Instructor Senior .NET Oradora Regional de INETALatam Líder y co-fundadora del Grupo desarrollador@s gilesgabriela@yahoo.com.ar http://www.desarrolladoras.org.ar
  3. 3. ¿Que es SQL Server? ¿Que es SQL? ¿Qué es Transact-SQL? http://www.desarrolladoras.org.ar
  4. 4. Bases de Datos • Sistema: – Master – Model – TemDB – MSDB • Usuarios: – AdventureWorks – NorthWind(2000) – Otras http://www.desarrolladoras.org.ar
  5. 5. SQL es agrupado en 3 categorías: 1. DDL - Data Definition Language 2. DCL - Data Control Language 3. DML - Data Manipulation Language http://www.desarrolladoras.org.ar
  6. 6. Data Definition Language • CREATE • ALTER • DROP • EJEMPLO: CREATE TABLE / CREATE PROC / CREATE VIEW http://www.desarrolladoras.org.ar
  7. 7. Los permisos para sentencias DDL • Pertenecer al roles: – Sysadmin (servidor) – Dbcreator (servidor) y db_owner (Base de datos) – db_ddladmin (Base de datos). http://www.desarrolladoras.org.ar
  8. 8. DEMO DDL http://www.desarrolladoras.org.ar
  9. 9. Los 4 nombres • SQL Server 2000 – Servidor.base.propietario.objeto • SQL Server 2005-2008 – Servidor.base.esquema.objeto Ver esquemas de AdventureWorks http://www.desarrolladoras.org.ar
  10. 10. Data Control Language • GRANT • DENY • REVOKE • Los permisos para poder ejecutar estas sentencias son, pertenecer al grupo sysadmin o dbcreator y db_owner o db_securityadmin http://www.desarrolladoras.org.ar
  11. 11. DEMO DCL http://www.desarrolladoras.org.ar
  12. 12. Data Manipulation Language • INSERT • UPDATE • DELETE • SELECT http://www.desarrolladoras.org.ar
  13. 13. INSERT • Nueva sintaxis para cláusula VALUES – Ahora devuelve una tabla relacional con múltiples filas • Uso con la sentencia INSERT – Para insertar múltiples filas como operación unica. http://www.desarrolladoras.org.ar
  14. 14. DEMO INSERT - UPDATE http://www.desarrolladoras.org.ar
  15. 15. Tipos de datos Los tipos de datos de SQL Server se organizan en las siguientes categorías: Numéricos exactos Cadenas de caracteres Unicode Numéricos aproximados Cadenas binarias Fecha y hora Otros tipos de datos Cadenas de caracteres ms- help://MS.SQLCC.v10/MS.SQLSVR.v10.es/s10de_1devconc/html /63de7291-e226-45cd-9526-6b11b7c3c3f2.htm http://www.desarrolladoras.org.ar
  16. 16. Nuevos Tipos de datos • DATE – Almacena solamente fechas, sin la porción de tiempo. – Rango ampliado de fechas: • Enero 01, 0001 – Diciembre 31, 9999 – 3 Bytes de espacio http://www.desarrolladoras.org.ar
  17. 17. Nuevos Tipos de datos • TIME – Almacena solamente tiempo, sin la porción de fecha. – Rango ampliado de fracción de segundos (hasta nanosegundos): • 00:00:00.0000000 – 23:59:59.9999999 – 3 - 5 Bytes de espacio (dependiendo de la precisión). – No es dependiente de la zona horaria (GMT). http://www.desarrolladoras.org.ar
  18. 18. Nuevos Tipos de datos • DATETIME2 – Rango ampliado de fecha y fracción de segundos: • Enero 01, 0001 – Diciembre 31, 9999 • 00:00:00.0000000 – 23:59:59.9999999 – 6 - 8 Bytes de espacio (dependiendo de la precisión). – Hay nuevas funciones del sistema que retornan valores DATETIME2: • SYSDATETIME() • SYSUTCDATETIME() – Nuevos argumentos para DATEPART y DATEDIFF: • MICROSECOND (MCS) • NANOSECOND (NS) – No es dependiente de la zona horaria (GMT). http://www.desarrolladoras.org.ar
  19. 19. Nuevos Tipos de datos • DATETIMEOFFSET – Contiene todas las características de DATETIME2: • Enero 01, 0001 – Diciembre 31, 9999 • 00:00:00.0000000 – 23:59:59.9999999 +- 14:00 – DIFERENCIAS: • 8 - 10 Bytes de espacio (dependiendo de la precisión). • Hay nuevas funciones del sistema: – SYSDATETIMEOFFSET() – SWITCHOFFSET() – TODATETIMEOFFSET() – DATENAME(TZOffset, <value>) – Dependiente de la zona horaria (GMT). • Se puede almacenar el tiempo local y hacer reportes usando UTC sin realizar cambios al esquema. http://www.desarrolladoras.org.ar
  20. 20. Demos Tipos de datos http://www.desarrolladoras.org.ar
  21. 21. Variables • Las variables se declaran con un @ delante del nombre. – DECLARE @city varchar(50) • Se pueden modificar las variables y parametros con SET o SELECT – DECLARE @city varchar(50) – SET @city=‘Quilmes’ – SELECT @city http://www.desarrolladoras.org.ar
  22. 22. Inicialización y asignación de variables • Una pequeña mejora introduce SQL Server 2008 al lenguaje T-SQL respecto de la inicialización y asignación de variables. : declare @fecha datetime = getdate(), @edad int = 33, @nombre varchar(100) = ‘gaby'; -- Muestro los valores... select @fecha, @edad, @nombre En versiones anteriores hubiésemos obtenido el siguiente error de sintaxis: Msg 139, Level 15, State 1, Line 0Cannot assign a default value to a local variable. DEMO Inicialización y asignación de variables http://www.desarrolladoras.org.ar
  23. 23. Stored Procedures Código escrito en T-SQL, compilado y almacenado en el SQL Server http://www.desarrolladoras.org.ar
  24. 24. Stored Procedures Por qué ? Seguridad por encriptación Performance frente a recompilaciones constantes Centralización del código Seguridad por derechos de ejecución http://www.desarrolladoras.org.ar
  25. 25. Stored Procedures • Definidos por el usuario • Los de sistema http://www.desarrolladoras.org.ar
  26. 26. Stored Procedures Operaciones posibles Crear CREATE PROCEDURE Modificar ALTER PROCEDURE Eliminar DROP PROCEDURE http://www.desarrolladoras.org.ar
  27. 27. Parametros • INPUT • OUTPUT • RETURN VALUE http://www.desarrolladoras.org.ar
  28. 28. DEMO SP http://www.desarrolladoras.org.ar
  29. 29. Valores Tipo “Tabla” como Parámetros • Escenarios – Actualización en lotes del servidor – Parámetros en lotes para usar en una consulta – Migración de base de datos – Pasar una tabla entre rutinas • Criterio común – Gran cantidad de datos pasados del cliente al servidor http://www.desarrolladoras.org.ar
  30. 30. Valores Tipo “Tabla” como Parámetros • Tipo de tabla definida por el usuario – Nuevo tipo definido por el usuario – Sintaxis basada en Create Type – Se pueden definir índices y restricciones – Nueva vista de catalogo para tipos de datos tablas. Sys.Tables_Types http://www.desarrolladoras.org.ar
  31. 31. Valores Tipo “Tabla” como Parámetros http://www.desarrolladoras.org.ar
  32. 32. Valores Tipo “Tabla” como Parámetros • Rendimiento – Se puede especificar un ordenamiento y clave única – Evita la re compilación de la sentencia – No necesita de un bloqueo desde el cliente para inicializar los valores de la tabla. – Reducción de idas y vueltas al servidor – Operaciones basadas en conjunto – Transporte de datos eficiente http://www.desarrolladoras.org.ar
  33. 33. DEMO PARAMETRO TABLA http://www.desarrolladoras.org.ar
  34. 34. Merge • Permite procesar múltiples cambios en una sola instrucción • Sintáxis: MERGE <target> USING <source> ON (<joincondition>) WHEN MATCHED [AND…] THEN… WHEN NOT MATCHED THEN… WHEN SOURCE NOT MATCHED THEN… http://www.desarrolladoras.org.ar
  35. 35. Merge MERGE dbo.Tabla1 AS Target USING (SELECT ID,Campo1,Campo2,Campo3 FROM dbo.Tabla2) AS Source ON (Target.ID = Source.ID) WHEN MATCHED THEN UPDATE SET Target.Campo1 = Source.Campo1, Target.Campo2 = Source.Campo2 WHEN NOT MATCHED BY TARGET THEN INSERT (ID,Campo1,Campo2,Campo3) VALUES (Source.ID,Source.Campo1,Source.Campo2, Source.Campo3) WHEN NOT MATCHED BY SOURCE THEN DELETE; http://www.desarrolladoras.org.ar
  36. 36. Capturar salida: • Clausula OUTPUT que permite capturar todo lo que sucedió dentro de una operación INSERT/DELETE/UPDATE. • En SQL Server 2008 el uso conjunto de MERGE + OUTPUT nos sirve saber que registros fueron modificados y que acción se hizo sobre ese registro (INSERT, UPDATE o DELETE). • La nueva función $action indica que operación se realizó, mientras que los atributos deleted e inserted guardan la información sobre el registro afectado (de la misma manera que funcionan con los triggers). http://www.desarrolladoras.org.ar
  37. 37. MERGE dbo.Tabla1 AS Target USING (SELECT ID,Campo1,Campo2,Campo3 FROM dbo.Tabla2) AS Source ON (Target.ID = Source.ID) WHEN MATCHED THEN UPDATE SET Target.Campo1 = Source.Campo1, Target.Campo2 = Source.Campo2 WHEN NOT MATCHED BY TARGET THEN INSERT (ID,Campo1,Campo2,Campo3) VALUES (Source.ID,Source.Campo1,Source.Campo2, Source.Campo3) WHEN NOT MATCHED BY SOURCE THEN DELETE OUTPUT $action, deleted.*, inserted.*; Resultado: http://www.desarrolladoras.org.ar
  38. 38. DEMO MERGE http://www.desarrolladoras.org.ar
  39. 39. Tipo de datos FileStream • Algunas de las características de este nuevo tipo de datos son: • Almacena grandes ficheros de datos binarios no estructurados directamente en un sistema de ficheros NTFS: documentos, imágenes, etc. • Se preserva el control por parte de la BD y la consistencia transaccional. • Un ejemplo de uso de FILESTREAM es la posibilidad de controlar mediante la base de datos una carpeta de archivos de vídeo. http://www.desarrolladoras.org.ar
  40. 40. características de FILESTREAM • Es un atributo de una columna varbinary(max). • Especifica que la columna se ha de almacenar en el sistema de ficheros NTFS: – La columna sigue siendo manejable mediante comandos T-SQL. – Se puede acceder desde el sistema de ficheros y desde la API del SO. • Se implementa como una columna varbinary(max) en la que los datos son guardados como BLOBs en el sistema de ficheros: – EL tamaño máximo de los BLOBs viene limitado únicamente por el tamaño del volumen de almacenamiento. – La limitación estándar de los tipos varbinary(max) de 2 GB no se aplican a estos BLOBs que se almacenan en el sistema de ficheros. http://www.desarrolladoras.org.ar
  41. 41. ¿Cuándo es recomendable utilizar el tipo de datos FILESTREAM? • Se necesita almacenar objetos que ocupan como media más de 1 MB. • Es importante el acceso rápido en modo lectura. http://www.desarrolladoras.org.ar
  42. 42. DEMO http://www.desarrolladoras.org.ar
  43. 43. LINQ • El Lenguaje de Consultas Integrado LINQ, nos permite realizar consultas a una fuente de datos utilizando lenguajes de programación manejados tales como Visual Basic.NET o C#, en lugar de usar sentencias SQL. • Utilizaremos una sintaxis consistente para obtener datos de diversas fuentes de datos, incluyendo datos relacionales, entidades, XML, DataSets de ADO.NET, y colecciones de objetos en memoria. Esta nueva sintaxis embebida en un lenguaje de propósito general adquiere todos sus beneficios: validación de tipos, revisión de errores al momento de la codificación, etc. http://www.desarrolladoras.org.ar
  44. 44. Para otra presentación • Más de tipos de datos: – Soporte para datos Espaciales (geográficos / geométricos) • LinQ • Mejoras en XML • Framework Sincronización para aplicaciones offline/cache http://www.desarrolladoras.org.ar
  45. 45. ? Gracias! Gabriela Marina Giles MCT – MCTS Instructor Senior .NET Oradora Regional de INETALatam Líder y co-fundadora del Grupo desarrollador@s gilesgabriela@yahoo.com.ar http://www.desarrolladoras.org.ar
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×