SESION05
SESION05
SESION05
1. TRANSACT-SQL ................................................................................................................. 2
1.1. Definición .................................................................................................................. 2
2. CLASIFICACIÓN ................................................................................................................. 3
2.1. El DDL (Data Description Language) ......................................................................... 3
2.2. El DML (Data Manipulation Language) ..................................................................... 4
2.3. El DCL (Data Control Language) ................................................................................ 5
3. OPERADORES .................................................................................................................... 6
3.1. Operadores aritméticos ............................................................................................ 6
3.2. Operadores de Asignación ........................................................................................ 6
3.3. Operadores de comparación .................................................................................... 7
3.4. Operadores lógicos ................................................................................................... 8
4. FUNCIONES ....................................................................................................................... 9
4.1. Funciones para el manejo de fechas......................................................................... 9
4.2. Funciones para el manejo de cadenas .................................................................... 10
4.3. Funciones de conversión ........................................................................................ 11
5. VARIABLES ...................................................................................................................... 12
5.1. Definición ................................................................................................................ 12
5.2. Asignar variables ..................................................................................................... 12
6. ESTRUCTURAS DE CONTROL .......................................................................................... 14
6.1. Estructura condicional IF......................................................................................... 14
6.2. Estructura condicional CASE ................................................................................... 15
6.3. Bucle WHILE ............................................................................................................ 16
6.4. TRY CATCH............................................................................................................... 17
7. BIBLIOGRAFÍA ................................................................................................................. 17
SESIÓN
05
DESCRIPCIÓN
Transact-SQL o T-SQL es un lenguaje muy potente que permite definir casi cualquier tarea que se
quiera efectuar sobre la base de datos, va más allá de un lenguaje SQL cualquiera ya que incluye
características propias de cualquier lenguaje de programación, características que permiten definir
la lógica necesaria para el tratamiento de la información.
CAPACIDAD
TEMÁTICA
Transact-SQL.
Clasificación
Operadores.
Funciones.
Variables
Estructuras de control.
1. TRANSACT-SQL
1.1. Definición
Transact-SQL es el lenguaje de programación que proporciona Microsoft SQL Server para ampliar
el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de
programación.
El Transact-SQL permite:
2
2. CLASIFICACIÓN
Es la parte del SQL dedicada a la definición de la base de datos, consta de sentencias para definir la
estructura de la base de datos, permiten crear la base de datos, crear, modificar o eliminar la
estructura de las tablas, crear índices, definir reglas de validación de datos, relaciones entre las
tablas, etc. Permite definir gran parte del nivel interno de la base de datos. Por este motivo estas
sentencias serán utilizadas normalmente por el administrador de la base de datos.
Comandos DDL
Para crear objetos en la base de datos (Bases
CREATE
de datos, tablas, vistas, etc.).
Elimina objetos de la base de datos (Bases de
DROP
datos, tablas, vistas, etc.).
Modifica la estructura de la base de datos
ALTER
(Bases de datos, tablas, vistas, etc.).
Para crear una base de datos llamada mibase, a continuación, escribiremos las demás cláusulas que
completarán la acción, en este caso dónde se almacenará la base de datos, cuánto ocupará, etc:
Para crear una nueva tabla llamada mitabla, entre paréntesis completaremos la acción indicando
la definición de las columnas de la tabla:
Ejemplo para crear una tabla EMPLEADO con sus campos para almacenar a los empleados de la
base de datos NEGOCIOS:
USE NEGOCIOS
GO
CREATE TABLE EMPLEADO (
IDEMPLEADO INT NOT NULL,
NOMEMPLEADO VARCHAR (50) NOT NULL,
APEEMPLEADO VARCHAR (50) NOT NULL,
FONOEMPLEADO VARCHAR (15) NULL,
DIREMPLEADO VARCHAR (100) NOT NULL,
IDDISTRITO INT NOT NULL,
PRIMARY KEY (IDEMPLEADO)
)
GO
Se compone de las instrucciones para el manejo de los datos, para insertar nuevos datos, modificar
datos existentes, para eliminar datos y la más utilizada, para recuperar datos de la base de datos.
Veremos que una sola instrucción de recuperación de datos es tan potente que permite recuperar
datos de varias tablas a la vez, realizar cálculos sobre estos datos y obtener resúmenes.
Comandos DML
4
A continuación, algunos ejemplos de la utilización de los comandos DML.
Se compone de instrucciones que permiten: Ejercer un control sobre los datos tal como la
asignación de privilegios de acceso a los datos (GRANT/REVOKE). La gestión de transacciones
(COMMIT/ROLLBACK). Una transacción se puede definir como un conjunto de acciones que se
tienen que realizar todas o ninguna para preservar la integridad de la base de datos.
Comandos DML
Un operador es un símbolo que especifica una acción que se realiza en una o más expresiones. A
continuación, detallamos las categorías de operadores que se utilizan en SQL Server.
Son aquellos que realizan operaciones matemáticas entre dos expresiones numéricas.
Los operadores de suma (+) y resta (-) son utilizados para realizar operaciones aritméticas
sobre valores datetime y smalldatetime.
El operador (=) es sólo el operador de asignación del SQL Server. En el siguiente ejemplo,
definimos la variable @num, asigne un valor a dicha variable.
6
3.3. Operadores de comparación
OPERADOR DE
SIGNIFICADO
COMPARACIÓN
= Igual a
<> No es igual a
7
3.4. Operadores lógicos
Los operadores lógicos comprueban la veracidad de alguna condición. Éstos, como los
operadores de comparación, devuelven el tipo de datos Boolean con el valor TRUE, FALSE
o UNKNOWN.
OPERADOR SIGNIFICADO
8
4. FUNCIONES
FUNCIÓN DESCRIPCIÓN
9
Devuelve un entero que representa la parte del día datepart de la fecha
DAY especificada.
SELECT DAY('01/9/2011') AS 'DÍA DEL MES';
Devuelve la fecha del sistema
GETDATE
SELECT GETDATE() 'FECHA DEL SISTEMA';
Devuelve un entero que representa el mes de date especificado.
FUNCIÓN DESCRIPCIÓN
SUBSTRING imagen. Para obtener más información acerca de los tipos de datos válidos
de SQL Server que se pueden usar con esta función.
10
SUBSTRING (value_expression, start_expression, length_expression)
Ejemplo:
-- MANEJO DE CADENAS: RETORNA LA EXPRESION BASE CONVERTIDA EN MAYÚSCULAS
DECLARE @CADENA VARCHAR(30)
SELECT @CADENA = ' BASE DE DATOS AVANZADO ';
SELECT LEFT(UPPER(LTRIM(@CADENA)),4) AS 'CADENA RESULTANTE' GO
Convierte una expresión de un tipo de datos en otro tipo de dato definido en SQL Server.
FUNCIÓN DESCRIPCIÓN
Convierte una expresión a un tipo de datos
CAST
CAST (expresión AS tipo_dato[(longitud)])
Convierte una expresión a un tipo de datos indicando un estilo.
CONVERT
CONVERT (tipo_dato [(longitud)], expresión [, estilo])
Ejemplo:
USE NEGOCIOS
GO
SELECT DISTINCT CAST(P.NOMPRODUCTO AS CHAR(15)) AS NOMBRE,
CONVERT(DECIMAL(10,2),P.PRECIOUNIDAD) AS 'PRECIO UNITARIO'
FROM COMPRA.PRODUCTOS
WHERE P.NOMPRODUCTO LIKE 'PAN%';
GO
11
5. VARIABLES
5.1. Definición
Una variable es un valor identificado por un nombre (identificador) sobre el que podemos
realizar modificaciones. En Transact SQL los identificadores de variables deben comenzar
por el caracter @, es decir, el nombre de una variable debe comenzar por @.
Para declarar variables en Transact SQL debemos utilizar la palabra clave declare, seguido
del identificador y tipo de datos de la variable.
El siguiente ejemplo muestra como asignar una variable utilizando la instrucción SET.
12
El siguiente ejemplo muestra como asignar variables utilizando una sentencia SELECT.
Un punto a tener en cuenta cuando asignamos variables de este modo, es que, si la consulta
SELECT devuelve más de un registro, las variables quedarán asignadas con los valores de
la última fila devuelta.
13
6. ESTRUCTURAS DE CONTROL
IF (<expresion>)
BEGIN
...
END
ELSE IF (<expresion>)
BEGIN
...
END
ELSE
BEGIN
...
END
14
6.2. Estructura condicional CASE
La estructura condicional CASE permite evaluar una expresión y devolver un valor u otro.
La sintaxis general de case es:
CASE <expresion>
WHEN <valor_expresion> THEN <valor_devuelto>
WHEN <valor_expresion> THEN <valor_devuelto>
ELSE <valor_devuelto> -- Valor por defecto
END
Ejemplo de CASE.
CASE
WHEN <expresion> = <valor_expresion> THEN <valor_devuelto>
WHEN <expresion> = <valor_expresion> THEN <valor_devuelto>
ELSE <valor_devuelto> -- Valor por defecto
END
15
6.3. Bucle WHILE
El bucle WHILE se repite mientras expresión se evalué como verdadero. Es el único tipo
de bucle del que dispone Transact SQL.
WHILE <expresion>
BEGIN
...
END
16
6.4. TRY CATCH
BEGIN TRY
...
END TRY
BEGIN CATCH
...
END CATCH
BEGIN TRY
DECLARE @divisor int , @dividendo int, @resultado int
SET @dividendo = 100
SET @divisor = 0
-- Esta línea provoca un error de división por 0
SET @resultado = @dividendo/@divisor
PRINT 'No hay error'
END TRY
BEGIN CATCH
PRINT 'Se ha producido un error'
END CATCH
7. BIBLIOGRAFÍA
SITIOS WEB
https://www.ediciones-eni.com/libro/sql-server-2014-sql-transact-sql-diseno-y-creacion-de-una-
base-de-datos-con-ejercicios-practicos-corregidos-9782746095526#TabStrip_infos
http://www.tutorialesprogramacionya.com/sqlserverya/
17