Este documento describe los conceptos básicos de programación en Transact SQL. Transact SQL es un lenguaje de programación que extiende las capacidades de SQL para permitir variables, bucles, condicionales y otras estructuras. Permite programar funciones, procedimientos almacenados y triggers dentro de una base de datos. Incluye ejemplos de cómo declarar y asignar valores a variables, usar cursores para recorrer resultados, estructuras de control como IF/ELSE y WHILE, y manejo básico de errores.
0 calificaciones0% encontró este documento útil (0 votos)
13 vistas7 páginas
Este documento describe los conceptos básicos de programación en Transact SQL. Transact SQL es un lenguaje de programación que extiende las capacidades de SQL para permitir variables, bucles, condicionales y otras estructuras. Permite programar funciones, procedimientos almacenados y triggers dentro de una base de datos. Incluye ejemplos de cómo declarar y asignar valores a variables, usar cursores para recorrer resultados, estructuras de control como IF/ELSE y WHILE, y manejo básico de errores.
Este documento describe los conceptos básicos de programación en Transact SQL. Transact SQL es un lenguaje de programación que extiende las capacidades de SQL para permitir variables, bucles, condicionales y otras estructuras. Permite programar funciones, procedimientos almacenados y triggers dentro de una base de datos. Incluye ejemplos de cómo declarar y asignar valores a variables, usar cursores para recorrer resultados, estructuras de control como IF/ELSE y WHILE, y manejo básico de errores.
Este documento describe los conceptos básicos de programación en Transact SQL. Transact SQL es un lenguaje de programación que extiende las capacidades de SQL para permitir variables, bucles, condicionales y otras estructuras. Permite programar funciones, procedimientos almacenados y triggers dentro de una base de datos. Incluye ejemplos de cómo declarar y asignar valores a variables, usar cursores para recorrer resultados, estructuras de control como IF/ELSE y WHILE, y manejo básico de errores.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 7
TEORÍA SOBRE PROGRAMACIÓN EN TRANSACT SQL
1. Cuál es la diferencia entre el Lenguaje SQL y el Lenguaje Transact SQL
SQL es un lenguaje de consultas para los sistemas de base de datos relacionales, no posee la potencia de los lenguajes de programación. Transact SQL es el lenguaje de programación que proporciona al SQL los elementos característicos de los lenguajes de programación: variables, sentencias de control, bucles.
2. Que se puede programar con Transact SQL
En Transact SQL se puede programar las unidades de programas dentro del SGBD, como ser: - Scripts - Funciones - Procedimientos almacenados - Triggers
3. Liste los tipos de datos que maneja Transact SQL
Tipos NumericosBIT - SmalInt - Int - Decimal(p,s) - Float - Real Tipos de Datos de Carácter - Char(n) - Varchar(n) Tipos de datos Binarios - Binary - Varbinary Tipos de datos de fecha - Datetime - SmallDatetime Tipos de datos XML - XML
4. Como se declara una variable en Transact SQL, cite ejemplos
Para declarar una variable en Transact SQL se utiliza la palabra clave declare, seguido del @ + identificador y tipo de dato de la variable. Por ejemplo: - declare @nombre char(50) - declare @numero int - declare @ubicacion char(40)
5. Como se asigna valor a una variable en Transact SQL, cite ejemplos
Se puede asignar valor a una variable de distintas formas: - A través de la instrucción SET SET @nombre='JUAN PABLO' SET @nombre=(SELECT nomb from prov where cprv=1)
- Utilizando la sentencia select
DECLARE @codigo int, @ciud char(2) SELECT @codigo = calm, @ciudad = ciud FROM alma WHERE calm=1
Teniendo en cuenta que, si en la consulta devuelve más de un registro, las variables
quedarán asignadas con los valores de la última fila.
- Realizando un FETCH de un cursor
DECLARE @nombre char(40), @color varchar(15) DECLARE CDATOS CURSOR FOR SELECT nomp, colo FROM prod OPEN CDATOS FETCH CDATOS INTO @nombre, @color -- Lectura de la primera fila del cursor WHILE (@@FETCH_STATUS = 0) BEGIN PRINT @nombre + @color FETCH CDATOS INTO @nombre, @color END CLOSE CDATOS DEALLOCATE CDATOS 6. Cómo asignar valores obtenidas de una consulta a una variable en Transact SQL, cite ejemplos Se puede realizar utilizando la sentencia select. Por ejemplo, SELECT @codigo= calm, @nombre=noma, @ciudad= ciud FROM alma WHERE calm=1
7. Qué es un CURSOR en Transact SQL
Un cursor es la herramienta más importante dentro de Transact SQL, la cual es una variable que nos permite recorrer con un conjunto de resultados obtenido a través de una sentencia SELECT fila a fila.
8. Para que sirve el uso de CURSOR en Transact SQL
Sirve para leer una lista de datos y hacer cálculos sobre la lista obtenida.
9. Como se declare un CURSOR en Transact SQL
Un cursor en Transact SQL se declara de la siguiente forma: --DECLARACION DEL CURSOR DECLARE <nombre_cursor> CURSOR FOR <sentencia_SQL>
10. Como se abre un CURSOR en Transact SQL
Un cursor en Transact SQL se abre de la siguiente forma: OPEN <nombre_cursor>
11. Para que sirve la instrucción FETCH en Transact SQL
FETCH sirve para leer una fila determinada de un CURSOR.
12. Para que sirve la variable @@FETC_STATUS, que valores devuelve
Si al leer el fetch encontró una fila devolverá cero = 0, caso contrario devolverá un valor distinto de cero <> 0.
13. Como se cierra un CURSOR en Transact SQL
Un cursor en Transact SQL se cierra de la siguiente forma: CLOSE <nombre_cursor> 14. Cite un ejemplo de como leer todas las filas de una tabla en Transact SQL DECLARE @nombre char(40), @color varchar(15) DECLARE CDATOS CURSOR FOR SELECT nomp, colo FROM prod OPEN CDATOS FETCH CDATOS INTO @nombre, @color WHILE (@@FETCH_STATUS = 0) BEGIN PRINT @nombre + @color FETCH CDATOS INTO @nombre, @color END CLOSE CDATOS DEALLOCATE CDATOS
15. Liste los principales operadores utilizados en Transact SQL
En Transact-SQL (T-SQL), los operadores se utilizan para realizar diversas operaciones en los datos. Los principales operadores se pueden clasificar en varios tipos: Operadores Aritméticos: 1. + (Suma): Suma dos valores. 2. - (Resta): Resta un valor de otro. 3. * (Multiplicación): Multiplica dos valores. 4. / (División): Divide un valor por otro. 5. % (Módulo): Devuelve el resto de la división entre dos valores. Operadores de Comparación: 1. = (Igual a): Compara si dos valores son iguales. 2. != o <> (Diferente de): Compara si dos valores son diferentes. 3. < (Menor que): Compara si un valor es menor que otro. 4. > (Mayor que): Compara si un valor es mayor que otro. 5. <= (Menor o igual que): Compara si un valor es menor o igual que otro. 6. >= (Mayor o igual que): Compara si un valor es mayor o igual que otro. Operadores Lógicos: 1. AND (Y lógico): Evalúa si ambas condiciones son verdaderas. 2. OR (O lógico): Evalúa si al menos una de las condiciones es verdadera. 3. NOT (NO lógico): Invierte el valor de una condición lógica. Operadores de Concatenación de Cadenas: 1. + (Concatenación): Se utiliza para unir cadenas de texto. Operadores de Asignación: 1. = (Asignación): Asigna un valor a una variable. Operadores de Nulo: 1. IS NULL (Es nulo): Comprueba si un valor es nulo. 2. IS NOT NULL (No es nulo): Comprueba si un valor no es nulo. Operadores de Bit: 1. & (AND bit a bit): Realiza una operación AND bit a bit. 2. | (OR bit a bit): Realiza una operación OR bit a bit. 3. ^ (XOR bit a bit): Realiza una operación XOR bit a bit. 4. ~ (NOT bit a bit): Invierte los bits de un valor.
16. Como funciona la estructura de control IF THEN, cite ejemplo
Permite expresar una expresión booleana(resultado VERDADEROFALSO), y ejecuta las instrucciones contenidas dentro del formado BEGIN END. La sintaxis es: if(<expresion>) begin end ELSE begin End
Ejemplo: Verificar si el provedor con código 1 ha suministrado algún producto
IF(select count(*) from sumi where cprv=1) > 0 PRINT 'El provedor 1 a sumistrado producto' ELSE PRINT 'El provedor 1 NO a sumistrado producto'
17. Como funciona la estructura de control CASE, cite ejemplo
Permite evaluar una expresión y devolver un valor u otro. La sintaxis es: CASE <expresion> WHEN <valor_expresion> THEN <valor devuelto> WHEN <valor_expresion> THEN <valor devuelto> WHEN <valor_expresion> THEN <valor devuelto> ELSE <valor devuelto> END
Ejemplo: Programa para clasificar a un provedor en base al importe de todos sus
productos suministrados DECLARE @clase char(40),@impt float select @impt=isnull(sum(impt),0) from sumi where cprv=3 SET @clase=(CASE WHEN (@impt>0 and @impt<=50) THEN 'Proveedor Minoristas' WHEN (@impt>51 and @impt<=200) THEN 'Proveedor Intermedio' WHEN (@impt>200) THEN 'Proveedor Mayoristas' ELSE 'Proveedor sin Clasificar' END) PRINT @clase + 'Iporte' + cast(@impt as char(10)) 18. Como funciona la estructura de control WHILE, cite ejemplo El bucle while se repite mientras la expresión se evalue como verdadero, es el único bucle dentro de Transact SQL. La sintaxis es: WHILE <expresion> BEGIN … END
Ejemplo: Listar los productos suministrados por el proveedor 3, en la lista se debe
mostrar: el nombre del producto, color, cantidad y fecha de suministro.
DATE DECLARE CDATOS CURSOR FOR SELECT nomp, colo, cant, ftra FROM sumi, prod WHERE sumi.cprd = prod.cprd OPEN CDATOS FETCH CDATOS INTO @nombre, @color, @cant, @ftra WHILE (@@FETCH_STATUS = 0) BEGIN PRINT @nombre + @color + cast(@cant as char(5)) + cast(@ftra as char(12)) FETCH CDATOS INTO @nombre, @color, @cant, @ftra END CLOSE CDATOS DEALLOCATE CDATOS
19. Como se hace el control de errores en Transact SQL, cite ejemplo
A través de las instrucciones TRY y CATCH se proporciona el control de errores. La sintaxis es la siguiente: BEGIN TRY ... END TRY BEGIN CATCH ... END CATCH Ejemplo: Programa que detecta que hay división por 0 BEGIN TRY DECLARE @divisor int, @dividiendo int, @resultado int SET dividiendo = 100 SET divisor = 0 --esta linea provoca un error de division entre 0 SET @resultado = @dividiendo/@divisor PRINT 'no hay error' END TRY BEGIN CATCH PRINT 'Se ha producido un error' END CATCH
20. Para que sirve la variable @@ERROR y que valores devuelve
Almacena el número de error producido por la última sentencia. Transact SQL
ejecutada.
DECLARE @divisor int, @dividiendo int, @resultado int
SET dividiendo = 100 SET divisor = 0 --esta linea provoca un error de division entre 0 SET @resultado = @dividiendo/@divisor IF(@@ERROR = 0) PRINT 'no hay error' ELSE PRINT 'Se ha producido un error'