16
1 PROGRAMACIÓN DE TRANSACT - SQL Docente: Jaime Bolívar Arámbulo

Transact SQL

Embed Size (px)

DESCRIPTION

SQL SERVER 2008 R2

Citation preview

Presentacin de PowerPoint

1

PROGRAMACIN DE TRANSACT - SQLDocente: Jaime Bolvar Armbulo

PROGRAMACIN DE TRANSACT - SQL

SQL es un lenguaje de consulta para los sistemas de bases de datos relacinales, pero que no posee la potencia de los lenguajes de programacin.

No permite el uso de variables, estructuras de control de flujo, bucles y dems elementos caractersticos de la programacin. No es de extraar, SQL es un lenguaje de consulta, no un lenguaje de programacin.2

SQL es la herramienta ideal para trabajar con bases de datos. Cuando se desea realizar una aplicacin completa para el manejo de una base de datos relacional, resulta necesario utilizar alguna herramienta que soporte la capacidad de consulta del SQL y la versatilidad de los lenguajes de programacin tradicionales.

TRANSACT SQL es el lenguaje de programacin que proporciona Microsoft SQL Server para extender el SQL estndar con otro tipo de instrucciones y elementos propios de los lenguajes de programacin.

23PROGRAMACION TRANSACT-SQLVARIABLES EN SQL SERVERUna variable es una entidad a la que se asigna un valor. Este valor puede cambiar durante el proceso donde se utiliza la variable. SQL Server tiene dos tipos de variables:LocalesGlobales. Las variables locales estn definidas por el usuario, mientras que las variables globales las suministra el sistema y estn predefinidas.

Variables LocalesLas variables locales se declaran, nombran y escriben mediante la palabra clave declare, y reciben un valor inicial mediante una instruccin select o set.

Los nombres de las variables locales deben empezar con el smbolo @. A cada variable local se le debe asignar un tipo de dato definido por el usuario o un tipo de dato suministrado por el sistema distinto de text, image o sysname.4

EJEMPLO DE DECLARACIN DE VARIABLES EN SQL SERVEREJEMPLO 1EJEMPLO 2

Podemos utilizar la instruccin SELECT en lugar de la instruccin SET. Una instruccin SELECT utilizada para asignar valores a una o ms variables se denomina SELECT de asignacin. Si utilizamos el SELECT de asignacin, no puede devolver valores al cliente como un conjunto de resultados.5EJEMPLO DE DECLARACIN DE VARIABLES EN SQL SERVEREJEMPLO 3

A diferencia del select de seleccin este si me devuelve valores.Variables GlobalesLas variables globales son variables predefinidas suministradas por el sistema. Se distinguen de las variables locales por tener dos smbolos @. Estas son algunas variables globales del servidor:

6Variables GlobalesVariablesContenidos@@errorContiene 0 si la ltima transaccin se ejecut de forma correcta; en caso contrario, contiene el ltimo nmero de error generado por el sistema. La variable global @@error se utiliza generalmente para verificar el estado de error de un proceso ejecutado.@@identityContiene el ltimo valor insertado en una columna IDENTITY mediante una instruccin insert.@@versionDevuelve la Versin del SQL Server.@@SERVERNAMEDevuelve el Nombre del Servidor.@@LANGUAGEDevuelve el nombre del idioma en uso.@@MAX_CONNECTIONSRetorna la cantidad mxima de conexiones permitidas.@@ROWCOUNTDevuelve el nmero de filas afectadas por la ltima orden.7HERRAMIENTAS PARA EL CONTROL DE FLUJOSEl lenguaje de control de flujo se puede utilizar con instrucciones interactivas, en lotes y en procedimientos almacenados. El control de flujo y las palabras clave relacionadas y sus funciones son las siguientes:Palabra ClaveFuncinIF ELSEDefine una ejecucin condicional, cuando la condicin la condicin es verdadera y la alternativa (else) cuando la condicin es falsa.CASEEs la forma ms sencilla de realizar operaciones de tipo IFELSE IF-ELSE IF-ELSE. La estructura CASE permite evaluar una expresin y devolver un valor alternativoWHILEEstructura repetitiva que ejecuta un bloque de instrucciones mientras la condicin es verdaderaBEGIN ENDDefine un bloque de instrucciones. El uso del BEGINEND permite ejecutar un bloque o conjunto de instrucciones.DECLAREDeclara variables localesBREAKSale del final del siguiente bucle while ms internoRETURN [n]Sale de forma incondicional, suele utilizarse en procedimientos almacenados o desencadenantes. Opcionalmente, se puede definir un numero entero como estado devuelto, que puede asignarse al ejecutar el procedimiento almacenado.8HERRAMIENTAS PARA EL CONTROL DE FLUJOSPalabra ClaveFuncinPrintImprime un mensaje definido por el usuario o una variable local en la pantalla del usuario./*comentarioa*/Inserta un comentario en cualquier punto de una instruccin SQL.--comentarioInserta una lnea de comentario en cualquier punto de una instruccin SQL.Estructuras de control IFLa palabra clave IF se utiliza para definir una condicin que determina si se ejecutar la instruccin siguiente. La instruccin SQL se ejecuta si la condicin se cumple, es decir, si devuelve TRUE (verdadero). La palabra clave ELSE introduce una instruccin SQL alternativa que se ejecuta cuando la condicin IF devuelva FALSE. La sintaxis de la estructura condicional IF:

9Estructuras de control IF

10

Estructuras de control IF

Condiciono, si no actualizo, inserto el registro dependiendo de11Estructura condicional CASELa estructura CASE evala una lista de condiciones y devuelve una de las varias expresiones de resultado posibles. La expresin CASE tiene dos formatos:La expresin CASE sencilla compara una expresin con un conjunto de expresiones sencillas para determinar el resultado.La expresin CASE buscada evala un conjunto de expresiones booleanas para determinar el resultado.

Ambos formatos admiten un argumento else opcional.12

Estructura condicional CASE

Ejemplo 1La estructura CASE se puede utilizar en cualquier instruccin o clusula que permite una expresin vlida. Por ejemplo, puede utilizar CASE en instrucciones como SELECT, UPDATE, DELETE y SET, y en clusulas como select_list, IN, WHERE, ORDER BY y HAVING.La funcin CASE es una expresin especial de Transact SQL que permite que se muestre un valor alternativo dependiendo de una columna. Este cambio es temporal, con lo que no hay cambios permanentes en los datos.13Estructura condicional CASE

Ejemplo 2

Usar una instruccin SELECT con una expresin CASE de bsquedaEn una instruccin SELECT, la expresin CASE de bsqueda permite sustituir valores en el conjunto de resultados basndose en los valores de comparacin.14Usar una instruccin SELECT con una expresin CASE de bsquedaAqu listamos los datos de los productos y definimos una columna llamada observacin, el cual evaluar stock de cada producto imprimiendo un valor:Abastecido.Dentro del lmite.Alerta, abastecer producto.

SentenciasResultados15Estructura de control WHILELa estructura WHILE ejecuta en forma repetitiva un conjunto o bloque de instrucciones SQL siempre que la condicin especificada sea verdadera. Se puede controlar la ejecucin de instrucciones en el bucle WHILE con las palabras clave BREAK y CONTINUE.

BREAK y CONTINUE controlan el funcionamiento de las instrucciones dentro de un bucle WHILE. BREAK permite salir del bucle WHILE. CONTINUE hace que el bucleWHILE se inicie de nuevo.

16Estructura de control WHILE

Aqu como podemos apreciar, en primer lugar el bucle condiciona a que si la cantidad de productos es igual a cero (0),proceder a actualizar los productos, utilizando un select de asignacin.