SQL Server 2005



      Salvador Ramos
      www.helpdna.net
   webmaster@helpdna.net
Agenda

   Visión general del producto
   Administración
   Implementación (T-SQL)
Agenda (implementación)

   Introducción
   Elementos de Transact SQL
    – DDL, DCL y DML
    – Procedimientos almacenados (SP)
    – Funciones definidas por el usuario (UDF)
    – Triggers (desencadenadores)
Introducción Transact SQL

   Cumple ANSI SQL
   Extensiones del lenguaje para ampliar
    su funcionalidad
    – Elementos de control de flujo (while, if…)
    – Variables, Operadores y Funciones
   Ventajas / Desventajas de cumplir
    ANSI al escribir código
DDL

   CREATE      TABLE
   ALTER       INDEX
   DROP        PROCEDURE
                VIEW
                FUNCTION
                LOGIN
                USER
                …
DCL

   GRANT       SELECT
   DENY        INSERT
   REVOKE      UPDATE
                DELETE
                REFERENCES
                EXECUTE
T-SQL (DDL y DCL)

   Ejercicios
    – Vamos a generar la secuencia de
      comandos de la base de datos de
      ejemplo, y estudiar su sintaxis
        Tablas, Contraints, Indices
        Permisos

        Usuarios

       …
DML

   SELECT
   INSERT
   UPDATE
   DELETE
SELECT
   SELECT [ALL|DISTINCT] [TOP n [PERCENT] [WITH
    TIES]]<Columnas>
    FROM <Tablas>]
    [INTO <NuevaTabla>]
    [WHERE <Condición>]
    [GROUP BY <ExprAgrupacion>]
    [HAVING <Condición>]
    [ORDER BY <ExprOrden>[ASC|DESC] ]

          Like, between, in, not
          Subselects, joins y outer joins, unions
Funciones T-SQL
   De agregado
    – COUNT, SUM, MIN, MAX
   De cadenas
    – SUBSTRING, RTRIM, LTRIM, LEN, …
   Matemáticas
    – ROUND, LOG, EXP, …
   De fechas
    – GETDATE, DATEPART, DATEADD, …
   De conversión
    – CAST, CONVERT
SELECT - Ejercicios

   Ejercicios
    – Realizar ejercicios de la relación.
INSERT

   INSERT INTO <Tabla>
    VALUES <Default | Null | Expresión>

   INSERT INTO <Tabla>
    SELECT …
UPDATE

   UPDATE <Tabla>
    SET Columna = <Valor | Default | Null>
    [FROM <TablaOrigen>]
    [WHERE <Condición>]

    – FROM evita complejas subselects. Ej:
       UPDATE titles
         SET ytd_sales = titles.ytd_sales + sales.qty
         FROM titles, sales
         WHERE titles.title_id = sales.title_id AND
         sales.ord_date = (SELECT MAX(sales.ord_date)
         FROM sales)
DELETE

   DELETE FROM <Tabla>
    [FROM <TablaOrigen>]
    [WHERE <Condición>]
INSERT/UPDATE/DELETE
- Ejercicios
   Ejercicios
    – Realizar ejercicios de la relación.
Vistas

   CREATE VIEW NbVista AS SELECT …
   Ventajas
    – Evita el acceso a las tablas directamente
    – Permiten particionar la información
      vertical y horizontalmente
    – Permiten acceder fácilmente a consultas
      complejas
    – Se pueden crear índices sobre vistas
Vistas

   Ejemplos
    – Los usuarios de Murcia sólo tienen acceso
      a los clientes de murcia mediante una
      vista, y ésta tiene un índice.
    – Los empleados tienen acceso a los datos
      de sus compañeros pero no al importe de
      la nómina.
    – Una consulta compleja se incluye en una
      vista, y luego utilizamos
      SELECT * FROM MiVista
Indices - beneficios

   Mejoran el rendimiento en:
    – Consultas que buscan por valores únicos,
      o basadas en rangos reducidos.
    – Filtrado de valores por claves externas,
      para resolver operaciones JOIN
    – Obtención de datos ordenados
    – Evitan duplicados
Indices - optimización

   Adicionalmente a aplicar nuestros
    conocimientos, podemos utilizar una
    nueva herramienta de rendimiento:

    “Asistente para optimización del motor
    de bases de datos”
Procedimientos
Almacenados
   Mejoran la seguridad
   Están precompilados
   Mejoran el tráfico de red
   Podemos programar su ejecución
   Permiten parámetros INPUT/OUTPUT
   Se pueden anidar (hasta 32 niveles)
Paginacion

   Devolver sólo la información que el
    usuario va visualizar
   Demo
    – Realización de procedimientos
      almacenados que devuelvan datos con
      paginación
    – Realización de procedimientos
      almacenados para insert/update/delete
Triggers

   Se ejecuta cuando sobre la tabla se
    produce la acción para la que se
    definió (INSERT, UPDATE, DELETE)
   No admite parámetros
   Se pueden definir varios sobre una
    misma tabla
   Se pueden deshabilitar
   Se pueden anidar
Triggers

   Algunas de sus utilidades son:
    – Mantener la integridad de dominio
    – Mantener datos denormalizados
   Tablas Inserted y Deleted
   Tipos de triggers
    – INTEAD OF (se activan en lugar de)
    – AFTER (se activan después de)
Triggers

   Ejemplos
    – Ver los códigos de ejemplo míos
    – Ver las siguientes URLs:
       http://www.configuracionesintegrales.com/mi
        guele/acumulados.asp?articulo=12
       http://www.configuracionesintegrales.com/mi
        guele/insteadof.asp?articulo=211
Funciones Definidas por
el usuario (UDF)
   Ventajas:
    – Podemos usar su resultado en una
      instrucción SELECT
    – Puede recibir parámetros, por tanto
      podemos simular una vista con
      parámetros.
      Ej: SELECT * FROM MiFunc(x)
    – Podemos crear cualquier función que no
      venga predefinida.
      Ej: funciones financieras o matemáticas
UDFs

   IMPORTANTE:
    – Desde ellas no se pueden modificar datos
      de tablas, ni llamar a procedimientos
      almacenados que lo hagan.
Tipos de UDFs

   Funciones Escalares (único valor)
    – Se pueden utilizar en:
          Instrucciones SELECT, INSERT, UPDATE, DELETE
          Como valor DEFAULT
          En restricciones CHECK
          En instrucciones IF o WHILE
          En columnas calculadas
   Funciones Tabulares (una tabla)
    – Se pueden utilizar en:
          Instrucciones SELECT, INSERT, UPDATE, DELETE
          Funcion EXISTS
Ejercicios

   Vamos a realizar una serie de
    ejercicios con Vistas, Procedimientos
    Almacenados, Triggers y UDFs
    – Procedimientos almacenados para Insert,
      update y delete, y select paginados
    – Triggers (varios)
    – UDFs escalares y tabulares (de los b.o.l.)
    – Estudiar script de AdvetureWorks
URLs
   www.microsoft.com/spanish/msdn/cursos/sqlserver2000.asp

   www.solidq.com             blogs.solidq.com
   www.helpdna.net            www.sqlserverymicrosoft.net
   www.portalsql.com          www.callsql.com
   www.siquelnet.com          www.sqlserverbyexample.com
   www.sqlmax.com

   www.microsoft.com/spain/servidores
   www.microsoft.com/spain/technet
   www.microsoft.com/latam/technet
   www.microsoft.com/technet
   www.microsoft.com/spanish/msdn
   www.microsoft.com/msdn
URLs (english)
   www.windowsitpro.com/SQLServer/
   www.sqlservercentral.com
   www.sqldev.com
   www.sqldts.com
   www.sqlpass.org
   www.sql-server-performance.com
   www.sswug.org
   www.sqlsecurity.com
   www.swynk.com
   www.tsqlsolutions.com
   www.sqlserver.com
SQL Server 2005

        Salvador Ramos
       www.helpdna.net
         www.solidq.com
   webmaster@helpdna.net
  Microsoft.public.es.sqlserver

Curso de SQL Server: implementacion (T-SQL)

  • 1.
    SQL Server 2005 Salvador Ramos www.helpdna.net webmaster@helpdna.net
  • 2.
    Agenda  Visión general del producto  Administración  Implementación (T-SQL)
  • 3.
    Agenda (implementación)  Introducción  Elementos de Transact SQL – DDL, DCL y DML – Procedimientos almacenados (SP) – Funciones definidas por el usuario (UDF) – Triggers (desencadenadores)
  • 4.
    Introducción Transact SQL  Cumple ANSI SQL  Extensiones del lenguaje para ampliar su funcionalidad – Elementos de control de flujo (while, if…) – Variables, Operadores y Funciones  Ventajas / Desventajas de cumplir ANSI al escribir código
  • 5.
    DDL  CREATE  TABLE  ALTER  INDEX  DROP  PROCEDURE  VIEW  FUNCTION  LOGIN  USER  …
  • 6.
    DCL  GRANT  SELECT  DENY  INSERT  REVOKE  UPDATE  DELETE  REFERENCES  EXECUTE
  • 7.
    T-SQL (DDL yDCL)  Ejercicios – Vamos a generar la secuencia de comandos de la base de datos de ejemplo, y estudiar su sintaxis  Tablas, Contraints, Indices  Permisos  Usuarios …
  • 8.
    DML  SELECT  INSERT  UPDATE  DELETE
  • 9.
    SELECT  SELECT [ALL|DISTINCT] [TOP n [PERCENT] [WITH TIES]]<Columnas> FROM <Tablas>] [INTO <NuevaTabla>] [WHERE <Condición>] [GROUP BY <ExprAgrupacion>] [HAVING <Condición>] [ORDER BY <ExprOrden>[ASC|DESC] ]  Like, between, in, not  Subselects, joins y outer joins, unions
  • 10.
    Funciones T-SQL  De agregado – COUNT, SUM, MIN, MAX  De cadenas – SUBSTRING, RTRIM, LTRIM, LEN, …  Matemáticas – ROUND, LOG, EXP, …  De fechas – GETDATE, DATEPART, DATEADD, …  De conversión – CAST, CONVERT
  • 11.
    SELECT - Ejercicios  Ejercicios – Realizar ejercicios de la relación.
  • 12.
    INSERT  INSERT INTO <Tabla> VALUES <Default | Null | Expresión>  INSERT INTO <Tabla> SELECT …
  • 13.
    UPDATE  UPDATE <Tabla> SET Columna = <Valor | Default | Null> [FROM <TablaOrigen>] [WHERE <Condición>] – FROM evita complejas subselects. Ej: UPDATE titles SET ytd_sales = titles.ytd_sales + sales.qty FROM titles, sales WHERE titles.title_id = sales.title_id AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
  • 14.
    DELETE  DELETE FROM <Tabla> [FROM <TablaOrigen>] [WHERE <Condición>]
  • 15.
    INSERT/UPDATE/DELETE - Ejercicios  Ejercicios – Realizar ejercicios de la relación.
  • 16.
    Vistas  CREATE VIEW NbVista AS SELECT …  Ventajas – Evita el acceso a las tablas directamente – Permiten particionar la información vertical y horizontalmente – Permiten acceder fácilmente a consultas complejas – Se pueden crear índices sobre vistas
  • 17.
    Vistas  Ejemplos – Los usuarios de Murcia sólo tienen acceso a los clientes de murcia mediante una vista, y ésta tiene un índice. – Los empleados tienen acceso a los datos de sus compañeros pero no al importe de la nómina. – Una consulta compleja se incluye en una vista, y luego utilizamos SELECT * FROM MiVista
  • 18.
    Indices - beneficios  Mejoran el rendimiento en: – Consultas que buscan por valores únicos, o basadas en rangos reducidos. – Filtrado de valores por claves externas, para resolver operaciones JOIN – Obtención de datos ordenados – Evitan duplicados
  • 19.
    Indices - optimización  Adicionalmente a aplicar nuestros conocimientos, podemos utilizar una nueva herramienta de rendimiento: “Asistente para optimización del motor de bases de datos”
  • 20.
    Procedimientos Almacenados  Mejoran la seguridad  Están precompilados  Mejoran el tráfico de red  Podemos programar su ejecución  Permiten parámetros INPUT/OUTPUT  Se pueden anidar (hasta 32 niveles)
  • 21.
    Paginacion  Devolver sólo la información que el usuario va visualizar  Demo – Realización de procedimientos almacenados que devuelvan datos con paginación – Realización de procedimientos almacenados para insert/update/delete
  • 22.
    Triggers  Se ejecuta cuando sobre la tabla se produce la acción para la que se definió (INSERT, UPDATE, DELETE)  No admite parámetros  Se pueden definir varios sobre una misma tabla  Se pueden deshabilitar  Se pueden anidar
  • 23.
    Triggers  Algunas de sus utilidades son: – Mantener la integridad de dominio – Mantener datos denormalizados  Tablas Inserted y Deleted  Tipos de triggers – INTEAD OF (se activan en lugar de) – AFTER (se activan después de)
  • 24.
    Triggers  Ejemplos – Ver los códigos de ejemplo míos – Ver las siguientes URLs:  http://www.configuracionesintegrales.com/mi guele/acumulados.asp?articulo=12  http://www.configuracionesintegrales.com/mi guele/insteadof.asp?articulo=211
  • 25.
    Funciones Definidas por elusuario (UDF)  Ventajas: – Podemos usar su resultado en una instrucción SELECT – Puede recibir parámetros, por tanto podemos simular una vista con parámetros. Ej: SELECT * FROM MiFunc(x) – Podemos crear cualquier función que no venga predefinida. Ej: funciones financieras o matemáticas
  • 26.
    UDFs  IMPORTANTE: – Desde ellas no se pueden modificar datos de tablas, ni llamar a procedimientos almacenados que lo hagan.
  • 27.
    Tipos de UDFs  Funciones Escalares (único valor) – Se pueden utilizar en:  Instrucciones SELECT, INSERT, UPDATE, DELETE  Como valor DEFAULT  En restricciones CHECK  En instrucciones IF o WHILE  En columnas calculadas  Funciones Tabulares (una tabla) – Se pueden utilizar en:  Instrucciones SELECT, INSERT, UPDATE, DELETE  Funcion EXISTS
  • 28.
    Ejercicios  Vamos a realizar una serie de ejercicios con Vistas, Procedimientos Almacenados, Triggers y UDFs – Procedimientos almacenados para Insert, update y delete, y select paginados – Triggers (varios) – UDFs escalares y tabulares (de los b.o.l.) – Estudiar script de AdvetureWorks
  • 29.
    URLs  www.microsoft.com/spanish/msdn/cursos/sqlserver2000.asp  www.solidq.com blogs.solidq.com  www.helpdna.net www.sqlserverymicrosoft.net  www.portalsql.com www.callsql.com  www.siquelnet.com www.sqlserverbyexample.com  www.sqlmax.com  www.microsoft.com/spain/servidores  www.microsoft.com/spain/technet  www.microsoft.com/latam/technet  www.microsoft.com/technet  www.microsoft.com/spanish/msdn  www.microsoft.com/msdn
  • 30.
    URLs (english)  www.windowsitpro.com/SQLServer/  www.sqlservercentral.com  www.sqldev.com  www.sqldts.com  www.sqlpass.org  www.sql-server-performance.com  www.sswug.org  www.sqlsecurity.com  www.swynk.com  www.tsqlsolutions.com  www.sqlserver.com
  • 31.
    SQL Server 2005 Salvador Ramos www.helpdna.net www.solidq.com webmaster@helpdna.net Microsoft.public.es.sqlserver