Curso de SQL Server
Tabla de contenido
Introducción .............................................................................................................................................................1
Capítulo I. Lenguaje de Definición de Datos.............................................................................................................3
Entrar a SQL Server e Iniciar Sesión......................................................................................................................3
Crear Base de Datos y Seleccionarla.....................................................................................................................4
Insertar Tablas ......................................................................................................................................................6
Modificar Tablas ...................................................................................................................................................9
Eliminar Base de Datos y Tablas ........................................................................................................................ 11
Capítulo II. Lenguaje de Manipulación de Datos (DML) ....................................................................................... 12
Insertar Registros............................................................................................................................................... 12
Actualizar Registros ........................................................................................................................................... 13
Eliminar Registros .............................................................................................................................................. 13
Respaldar y Restaurar información de la base de datos ................................................................................... 14
Recuperación de Registros o Consultas de Tablas ............................................................................................ 14
Operadores en SQL Server................................................................................................................................. 16
Combinación de Tablas JOIN ............................................................................................................................. 18
Funciones Agregadas ......................................................................................................................................... 19
Capítulo III. Programación Transact SQL ............................................................................................................... 22
Estructura Selectiva IF ....................................................................................................................................... 22
Estructura Condicional Múltiple CASE ............................................................................................................... 23
Funciones........................................................................................................................................................... 24
Disparadores (triggers) ...................................................................................................................................... 27
Introducción
Microsoft SQL Server es un sistema de gestión de base de datos relacional, desarrollado por
la empresa Microsoft. El lenguaje de desarrollo utilizado es Transact-SQL, una
implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar
datos, crear tablas y definir relaciones entre ellas.
1
Base de Datos en SQL Server
Al instalar SQL Server también se registran Bases de datos que administran diferentes
aspectos del servidor de Base de Datos.
MASTER: Es el núcleo y contiene Información vital de la Instancia de SQL Server,
información de la administración de las diferentes bases de datos.
TEMPDB: Base de datos temporal que brinda espacios para realizar algunas operaciones
.
MODEL: Es una plantilla para todas las bases de datos creadas en el servidor, se
implementa cuando se ejecuta el comando CREATE DATABASE.
MSDB: Empleada por SQL Server Agent, guarda información de servicios de
automatización, historial de copias de seguridad, tareas, alertas, planes de
mantenimiento entre otros registros.
Lenguaje SQL
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de
agregados. Estos elementos se Combinan en las instrucciones para crear, actualizar y
Manipular las base de datos.
Existen 2 tipos de Comandos SQL:
Lenguaje de Definición de Datos (DDL), comandos para crear y definir nuevas base de
datos, tablas, campos e índices.
Lenguaje de Manipulación de Datos (DML), comandos para insertar, modificar y eliminar
registros, así como ordenar, filtrar y extraer información de la base de datos.
2
Capítulo I. Lenguaje de Definición de Datos
Entrar a SQL Server e Iniciar Sesión
Parar entrar a SQL Server se hace de la manera siguiente:
Menú inicio.
Microsoft SQL Server 2014
Microsoft SQL Server Management Studio
O también se hace Presionando la tecla de Windows+R (Ejecutar), escribir ssms y luego
presionar enter.
Para iniciar sesión en SQL Server se hace de la manera siguiente:
Tipo de servidor: Motor de base de datos.
Nombre del servidor: .
Autenticación: Autenticación de Windows.
Nota: En el nombre del servidor se puede poner de cualquiera de esta forma: (local),
localhost, 127.0.0.1, un punto (.) sin los paréntesis o el nombre del equipo. Si este se instala
con una instancia, dicha instancia se coloca después anteponiendo una barra invertida (\),
por ejemplo .\EmmaSystem
3
Crear Base de Datos y Seleccionarla
SENTENCIA CREATE (Comando de Creación de Objetos de la Base de Datos): Permite crear
base de datos, tablas, desencadenadores, procedimientos, funciones, vistas e Índices de
una base de Datos.
Estructura de Base de Datos en SQL Server
Tablas: La tabla es el primer objeto de una base de datos y se organiza en filas y
columnas, una fila equivale a un registro y las columnas definen los campos del registro,
los campos se definen sobre un tipo de datos.
Campos: Representa los Atributos de una entidad o tabla.
o Campo Clave: Es el campo que representa un valor único e identifica a un registro
de la tabla.
o Campo Foráneo: Campo que une a otra entidad formando una extensión de la
tabla fuente.
o Registro: Representa el Conjunto de valores por cada campo de una misma fila.
o Dato: Es un valor que no representa nada mientras no se une a otros datos.
Estructura de una Base de Datos en SQL Server
Esquema de Archivos en SQL Server
4
Para crear una base de dato se hace de dos formas: dando clic derecho sobre base de
datos o creando una consulta y escribiendo código SQL correspondiente.
En este curso todos los temas de aquí en adelante se harán a través de consultas (código
SQL).
Para abrir una consulta se hace dando clic sobre o Presionando Ctrl+N.
Dentro de esta consulta escribimos el código SQL correspondiente para crear la base de
datos y luego presionamos F5 para ejecutar el código que está en la consulta.
CREATE DABASE NOMBREBASEDEDATOS
Para este ejemplo vamos a crear una base de datos con el nombre de IglesiaRD.
5
Importante: agregamos use IglesiaRD para seleccionar dicha base de datos y cada vez que
se cree una tabla, consulta, entre otros pueda hacerse en la base de datos de IglesiaRD.
Nos damos cuenta que está seleccionada en la parte superior izquierda.
Insertar Tablas
Tipos de Datos en SQL Server
Tipo de Datos Carácter
Char: Los datos deben de tener una longitud fija hasta 8Kb. Ejemplo: Si queremos almacenar
categorías por ejemplo A, B, C… Utilizaremos Char(1)
Varchar: Puede variar en el número de caracteres, es decir el valor asignado no es fijo, aquí
SQL administra los espacios en blanco y los optimiza.
Ejemplo en un Varchar(15) ocupará menos espacio el dato “Ana” que “Emmanuel”.
Tipo de Datos Enteros
Int: Números enteros desde
-2 31 (-2 147 483 648) a 2 31 (2 147 483 647).
Tipos de Datos Fecha
Date: Tipo de dato que muestra la fecha en el siguiente formato 31/03/2020.
Tipo de Datos Decimal
Decimal: Tipo de datos que se utiliza para almacenar números decimales que pueden tener
hasta 38 dígitos.
Tipo de Datos Monetario
Money: Cantidad monetaria positiva o negativa.
6
Propiedades de Datos
Propiedad NULL: Hay dos formas de expresar el término NULL, al implementarlo como NULL
estamos indicando que el contenido de dicha columna no es obligatorio, si se necesita
especificar que el campo es obligatorio se implementará con NOT NULL.
Propiedad IDENTITY: Propiedad sólo aplicada a campos numéricos, ya que define un
autoincremento automático de valores.
Estructura de una Tabla en SQL Server
Clave primaria
En el diseño de bases de datos relacionales, se llama clave primaria (Primary Key) a un
campo o a una combinación de campos que identifica de forma única a cada fila de una
tabla. Una clave primaria comprende de esta manera una columna o conjunto de
columnas. No puede haber dos filas en una tabla que tengan la misma clave primaria.
Una clave primaria debe identificar a todas las posibles filas de una tabla y no únicamente a
las filas que se encuentran en un momento determinado. Ejemplos de claves primarias son
Cédula (asociado a una persona) o ISBN (asociado a un libro). Las guías telefónicas y
diccionarios no pueden usar nombres o palabras o números del sistema decimal de Dewey
como claves candidatas, porque no identifican unívocamente números de teléfono o
palabras.
Después de conocer los tipos y propiedades de las tablas de SQL Server. Vamos a crear una
tabla mediante una consulta.
Para crear una tabla se hace de la manera siguiente:
CREATE TABLE NOMBREDELATABLA
(
CAMPO_TABLA TIPO_DATO RESTRICCION (Si aplica)
…
)
7
Para este ejemplo vamos a crear dos tablas con los siguientes datos:
Tabla Persona
Campos de la Tabla Tipo de Datos Restricciones
Idpersona Int Primary Key
Nombres Varchar(50) Not Null
Tipo_Doc Varchar(1) Not Null
Num_Doc Varchar(11) Not Null
Direccion Varchar(100)
Telefono Varchar(10)
Email Varchar(50)
Fecha_Nacimiento Date Not Null
Estado_Civil Varchar(1) Not Null
Foto Image
Nota: Primary Key, quiere decir llave primaria y Not Null este campo es obligatorio.
Tabla Usuario
Campos de la Tabla Tipo de Datos Restricciones
Idusuario Int Primary Key
Idpersona Int Not Null
Usuario Varchar(20) Not Null
Password Varchar(20) Not Null
Acceso Varchar(1) Not Null
Vamos a pasar esto datos a una consulta SQL.
8
Nota: identity, quiere decir que este campo será autoincrementado
Importante: Si hay varios código SQL y sólo queremos ejecutar una parte; tenemos que
seleccionar la parte que deseamos ejecutar y luego presionamos F5 para que se ejecute
correctamente.
Modificar Tablas
SENTENCIA ALTER (Comando de Modificación de Objetos de la Base de Datos): Permite la
modificación de un objeto asociado a una base de Datos, puede modificar archivos, grupo
de archivos, cambiar atributos de un Objeto.
Relaciones
El modo de relacionar registros entre tablas es por tanto mediante referencias, para lo cual
se usan los identificadores definidos como claves primarias y foráneas.
Clave foránea
En el contexto de bases de datos relacionales, una clave foránea o clave ajena (o Foreign
Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una
columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una
columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas
en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla
referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla
referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen
en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o
relacionar información. Esto es una parte esencial de la normalización de base de datos.
Múltiples filas en la tabla referendo pueden hacer referencia, vincularse o relacionarse a la
misma fila en la tabla referenciada. Mayormente esto se ve reflejado en una relación uno
(tabla maestra o referenciada) a muchos (tabla hija o referendo).
Restricciones de los Campos
Unique: Permite determinar que los valores registrados en una misma columna no sean
idénticos, es decir se mantengan únicos. Por ejemplo el email de una persona es un campo
único.
9
Check: Permite restringir el rango de valores que pueden estar permitidos ingresar en una o
más columnas de una tabla.
Default: Permite registrar un dato en un campo por defecto cuando el usuario no ingresa
ningún valor, la propiedad del campo de la tabla necesariamente tiene que ser Null. Por
Ejemplo se puede Utilizar para los campos de tipo Date (fecha), cuando el usuario no
ingresa ninguna fecha que se asigne la fecha actual.
Después de conocer sobre relaciones y restricciones de tablas vamos a modificar las tablas
anteriores que hemos creado, agregando relaciones y restricciones importantes en ellas.
Realizaremos las siguientes modificaciones
Tabla Persona
Campos de la Tabla Tipo de Datos Restricciones
Idpersona Int Primary Key
Nombres Varchar(50) Not Null
Tipo_Doc Varchar(1) Check (C,P,S) Not Null
Num_Doc Varchar(11) Unique
Direccion Varchar(100)
Telefono Varchar(10)
Email Varchar(50)
Fecha_Nacimiento Date Default Fecha actual
Estado_Civil Varchar(1) Not Null Check (C,S)
Modificar: Tipo_Doc solo acepte C: Cédula, P: Pasaporte, S: Sin Documento
Tipo_Doc y Num_Doc que sea únicos, Estado Civil solo acepte C: Casado y S: Soltero.
Eliminar el campo Foto.
Tabla Usuario
Campos de la Tabla Tipo de Datos Restricciones
Idusuario Int Primary Key
Idpersona Int Foreign Key a tabla Persona (Idpersona)
Usuario Varchar(20) Not Null unique
Password Varchar(20) Not Null
Acceso Varchar(1) Not Null
Modificar: Idpersona agregar relación a la tabla persona, Usuario ponerle campo único.
10
Abrimos una nueva consulta y escribimos el siguiente código SQL:
Eliminar Base de Datos y Tablas
SENTENCIA DROP (Comando de Eliminación de Objetos de la Base de Datos): Permite la
eliminación de un objeto asociado a una Base de Datos.
Para eliminar un objeto de la base de datos, sea base de datos (database) o tabla (table)
se hace con el código SQL: DROP DATABASE NOMBREBASEDEDATOS, DATABASE TABLE
NOMBRETABLA.
11
Capítulo II. Lenguaje de Manipulación de Datos (DML)
El lenguaje de Manipulación de Datos (DML): Es un término usado para recuperar y trabajar
con datos en SQL Server, incluye instrucciones para agregar, modificar, consultar o quitar
datos de una base de Datos en SQL Server.
Las siguientes sentencias son de categoría DML:
INSERT
UPDATE
DELETE
SELECT
MERGE
BULK INSERT
Insertar Registros
SENTENCIA INSERT (Insertar Registros): Permite agregar una nueva fila a una tabla.
INSERT [INTO]
[ESQUEMA] TABLA [(Lista de columnas)]
[VALUES] ('Lista de valores')
Para entender mejor sobre insertar registros, vamos a registrar 10 filas a la tabla Persona y 5
filas a la tabla Usuario.
Se puede insertar todos los registros a la vez (como el anterior) o uno por uno (como este):
12
Actualizar Registros
SENTENCIA UPDATE (Modificación y actualización de Datos): Permite modificar o actualizar
un conjunto de registros de una Tabla o vista dependiendo de una condición.
UPDATE TABLA O VISTA
[SET] {column name =expresión }
[WHERE <Search_Condition>]
Para poner en practicar este tema, haremos los siguientes cambios a la tabla de Persona.
1. A la persona No. 2 le cambiaremos la fecha de nacimiento a 21/09/1990.
2. A las personas No. 6 y 7 le cambiamos el Estado Civil a Casado.
3. A la persona No. 8 le cambiamos la Dirección a Barahona.
4. Intente hacer los cambios que deseé.
Eliminar Registros
SENTENCIA DELETE (Eliminación de Registros de una tabla): Permite eliminar todos los registros
especificados en una determinada tabla.
DELETE
[TOP { Expresión } ]
FROM TABLE
[WHERE <Search_Condition>]
Eliminar el registro No. 4 de la tabla Persona
Eliminar todas las personas que sean de San Juan
13
Existe una forma de resetear los registros de una tabla, es decir, borrar todos los registros y
cuando se vaya a registrar uno nuevo se le asigne el código o Id 1, utilizando la sentencia
TRUNCATE TABLE NOMBREDELATABLA.
Respaldar y Restaurar información de la base de datos
Back Up de Base de Datos
Una copia de seguridad, copia de respaldo en tecnologías de la información es una copia
de los datos originales que se realiza con el fin de disponer de un medio para recuperarlos
en caso de su pérdida. Los Backup son útiles ante distintos eventos y usos:
Recuperar los datos de los sistemas informáticos de una catástrofe informática, natural o
ataque.
Restaurar una pequeña cantidad de información que pueden haberse eliminado
accidentalmente, corrompido.
Restaurar Base de Datos
El proceso de copia de seguridad se complementa con otro conocido como restauración
de los datos (en inglés restore), que es la acción de leer y grabar en la ubicación original u
otra alternativa los datos requeridos que han sido respaldados con anterioridad.
Recuperación de Registros o Consultas de Tablas
COMANDO SELECT (Recuperación de Registros): Uno de los propósitos de la Gestión de Base
de Datos es almacenar información Lógica y ordenada dentro de tablas, usaremos la
sentencia SELECT y sus variadas formas de recuperar información desde una tabla en la
base de datos activa.
Sintáxis
SELECT [ALL - DISTINCT]
[TOP número – [PERCENT] ]
[FROM] tabla
[WHERE <Condición> ]
[<GROUP BY>]
[HAVING <Condición> ]
[ORDER BY columna [ASC-DESC]]
Cláusulas Principales:
ALL: Especifica el conjunto de filas devueltas por la consulta.
DISTINCT: Sentencia utilizada para mostrar filas únicas no repetidas.
TOP: Para mostrar solo un número o porcentaje indicado de filas obtenidas.
FROM: Permite indicar las filas que están involucradas.
WHERE: Cláusula que permite condicionar el resultado de una consulta.
GROUP BY: Permite agrupar un conjunto de registros en forma de resumen.
HAVING: Permite condicionar el resultado después de haber agrupado los registros.
14
ORDER BY: Permite ordenar los registros de acuerdo a una columna específica.
Realizar las siguientes consultas a la Tabla de Persona
1. Mostrar todos los registros.
2. Mostrar todos los registros que sean Casado.
3. Mostrar todos los registros que sean de Barahona.
4. Mostrar los últimos 3 registros.
5. Mostrar los primeros 3 registros.
15
6. Mostrar las columnas de Nombres, Num_Doc y Teléfono ordenado por nombre A-Z
7. Realice todas las consultas que se le ocurra.
Operadores en SQL Server
Un Operador es un símbolo que específica una acción que es realizada por una o más
expresiones. Categorías de Operadores:
Aritméticos
Asignación
Lógicos
A) Operadores Aritméticos
+ Sumar: Operador de Suma Numérica y concatenación de Columnas.
- Restar: Operador de resta Numérica y también representa a números negativos.
* Multiplicar: Operador de Multiplicación.
/ Dividir: Operador de División entera y fraccionaria.
% Módulo: Operador que Devuelve el resto de una división.
B) Operador de Asignación
SQL server solo cuenta con un operador para la asignación de valores.
El operador = se tendrá que colocar en cualquier expresión que necesite asignar un valor de
cualquier tipo.
C) Operadores Lógicos
16
Los operadores lógicos tienen por misión comprobar la veracidad de Alguna Condición,
estos como los operadores de comparación, devuelven el tipo de datos BOOLEAN (True,
False, Unknown).
AND: Representa la Lógica Y, dos expresiones deben ser TRUE para poder devolver TRUE.
ANY: Devuelve TRUE si alguna expresión del conjunto de expresiones es TRUE.
BETWEEN: Devuelve TRUE si el valor se encuentra dentro de un rango numérico o cadena.
EXISTS: Devuelve TRUE si una determinada subconsulta devuelve por lo menos una fila de
registros.
IN: Devuelve TRUE si el operando se encuentra dentro de una lista de valores específicos.
NOT: Invierte el valor booleano de una expresión
OR: Devuelve FALSE cuando ambas expresiones sean FALSE.
SOME: Devuelve TRUE si de un conjunto de comparaciones alguna es TRUE.
Símbolos que representan a los operadores Lógicos, tenemos los siguientes:
= Igualdad de Expresiones
<> != Diferencia de Expresiones
> >= Mayor / Mayor o Igual
< <= Menor / Menor o Igual
Operador LIKE: Devuelve TRUE si el operando coincide a lo más con un patrón específico. El
patrón es una cadena de caracteres que se buscará en la expresión. Los comodines a
utilizar son:
%: Representa a uno o más caracteres. Puede ser cualquier tipo de carácter textual o
símbolo.
_: Representa un solo carácter de cualquier tipo.
[ ]: Representa cualquier carácter individual, dentro de un conjunto de caracteres.
[^]: Representa cualquier carácter individual fuera del intervalo especificado.
IS NOT NULL: Representa que el contenido de una columna no este vacía.
Después de revisar los operadores lógicos, realizar las siguientes consultas:
1. Mostrar todos los datos de las personas que nacieron antes del año 1990.
2. Mostrar todos los datos de las personas que sean de Barahona y también sean casados.
17
3. Mostrar todos los datos de las personas que sean de Barahona o sean Casados.
4. Mostrar todos los datos de las personas que no tenga el código o Idpersona 5.
5. Mostrar todos los datos de las personas que tenga en sus apellidos Feliz.
Combinación de Tablas JOIN
En determinada ocasión se tendrá que unir más tablas para combinar los valores y poder
mostrarlos juntos en una consulta, para esto utilizamos la cláusula JOIN.
Hay que diferenciar dos tipos de combinaciones:
Internas: Devuelven todas las filas que cumplen con la condición de las tablas, en caso de
no encontrarse coincidencia de valores no muestra nada.
Externas: las filas resultantes no son directamente de la tabla origen, podría ser de la
izquierda, derecha o completa.
18
Combinación de tablas Join
INNER JOIN
JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
CROSS JOIN
INNER JOIN
El INNER JOIN es otro tipo de composición de tablas, permite emparejar filas de distintas
tablas de forma más eficiente que con el producto cartesiano cuando una de las columnas
de emparejamiento está indexada.
Datos Agrupados
GROUP BY: Agrupa un conjunto de registros de acuerdo a los valores de una o más
columnas de una tabla.
[ROLLUP]
[CUBE]
<Lista de Columnas>
ROLLUP: Genera filas de agregado a la cláusula Group By más filas de subtotal y también
una fila con un total general.
CUBE: Genera filas de agregado a la cláusula Group By más una fila de súper agregado y
filas de tabulación Cruzada.
Funciones Agregadas
Las funciones de agregado realizan un cálculo sobre un conjunto de valores y devuelven un
solo valor. Se suelen utilizar con la cláusula GROUP BY de la instrucción SELECT.
SUM
COUNT
MAX
MIN
AVG
SUM
Permite devolver la suma de todos los valores distinguidos en una determinada expresión.
Esta función solo puede utilizarse con columnas de tipo numérico.
SUM(Columna o Expresión)
COUNT
Función que permite devolver el número de elementos de un grupo. Count siempre
devolverá un valor numérico.
19
COUNT (All ó Distinct ó Columna ó *)
All: Al especificarlo todos los valores son contabilizados.
Distinct: Permite definir la no repitencia de valores condicionados de la consulta.
Columna: Se puede especificar el nombre de una columna de la tabla a contar.
Asterisco (*): Representa a todas las filas de la tabla.
MAX
Función que permite determinar el valor máximo de una expresión propuesta por el usuario.
Solo puede ser usado en columnas o expresiones que tenga como tipo de dato un entero.
MAX (All ó Columna ó Expresión).
MIN
Función que permite determinar el valor mínimo de una expresión propuesta por el usuario.
Solo puede ser usado en columnas o expresiones que tenga como tipo de dato un entero.
MIN (All ó Columna ó Expresión).
AVG
Función que devuelve el promedio de los valores de un determinado grupo, consideremos
que dicha columna debe de ser numérica.
AVG (Columna ó Expresión)
Columna: Se puede especificar el nombre de una columna de la tabla para especificar el
promedio.
Expresión: Representa a una función SQL o a un juego de operadores aritméticos. No se
permite las funciones de agregado ni subconsultas.
Después de revisar la combinación de tablas INNER JOIN y Funciones Agregadas, realizar las
siguientes consultas:
1. Mostrar el nombre completo, no. Cedula, fecha de nacimiento y el usuario registrado.
Nota: AS se usa para cambiar el nombre de la columna y los corchetes se usan para que SQL permite espacio en los
nombres que le pongamos a las columnas.
20
2. Mostrar el usuario de las personas que nacieron desde el año 1990.
3. Mostrar el código del último usuario registrado.
4. Mostrar el nombre y el usuario de la primera persona registrada.
5. Mostrar la cantidad de registro de la tabla Usuario.
21
Capítulo III. Programación Transact SQL
Transact SQL es el lenguaje de programación que proporciona Microsoft SQL Server para
extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes
de programación ya que esta parte está limitada en SQL.
Estructuras de Control:
Estructuras Secuenciales: Las instrucciones se ejecutan una a continuación de otra.
Estructuras Selectivas: Las instrucciones se ejecutan según el valor lógico de una variable.
Estructuras Repetitivas: Las instrucciones se ejecutan en forma repetida según una condición
lógica llamada ciclo ó bucle.
Estructura Selectiva IF
La estructura IF evalúa una condición lógica y en función del resultado booleano (true o
false) se realiza una u otra expression.
Estructura Selectiva IF - Sintáxis
IF <Condición_Lógica>
<BEGIN>
<Expresiones_CondiciónTrue>
<END>
ELSE
<BEGIN>
< Expresiones_CondiciónFalse>
<END>
Después de ver la estructura selectiva IF, vamos realizar lo siguiente:
Comprobar si existe registro en la tabla Usuario, Si hay ejecutarlo, de lo contrario lanzar un
mensaje que diga no hay registros en esta tabla.
Comprobar si existe persona que nacieron en el año 2000, si hay mostrarlo, de lo
contrario lanzar un mensaje que diga no hay persona que nacieron en el año 2000.
22
Estructura Condicional Múltiple CASE
La estructura CASE evalúa una expresión que podrá tomar N valores distintos, según se elija
uno de estos valores se tomará N posibles acciones
Estructura Múltiple CASE – Sintáxis
CASE <Columna>
WHEN Expresión THEN Expresión_Resultado
[…n]
[
ELSE Expresión_Falsa
]
END
Ejemplo:
Implementar un Script que permita mostrar la Fecha de Nacimiento en texto registrada en la
tabla Persona.
2020-04-02 = 2 de Abril de 2020
23
Funciones
Rutina almacenada que recibe unos parámetros escalares de entrada, luego los procesa
según el cuerpo definido de la función y por último retorna un resultado de un tipo
específico que permitirá cumplir un objetivo.
SQL Server proporciona numerosas funciones integradas y permite crear funciones definidas
por el usuario.
Tipos de Funciones
Funciones del Sistema:
SQL Server cuenta con una gran variedad de funciones dependiendo de los valores o
configuraciones que deseamos realizar, a continuación mostramos algunas funciones del
sistema:
24
Funciones de Agregado: SUM, AVG, COUNT,MAX, MIN
Funciones de Fecha y Hora: GETDATE, DAY, MONTH, YEAR, DATEADD, DATEDIF, ISDATE
Funciones Matemáticas: ABS, RAND, LOG10, SQRT, POWER, TAN, PI, RADIANS
Funciones definidas por el usuario:
Las funciones definidas por el usuario de SQL Server son rutinas que aceptan parámetros,
realizan una acción, como un cálculo complejo, y devuelven el resultado de esa acción
como un valor (único o conjunto de valores).
Funciones - Sintáxis
Create Function Nombre_Función
(@parámetro1 as [Tipo Dato] = [ValorxDefecto],
@parámetroN as [Tipo Dato] = [ValorxDefecto])
RETURNS TipoDato_Returnado
AS
BEGIN
<Instrucciones>
RETURN Expresión_salida
END
Ejemplos
Ejemplo 1:
Implementar una función que devuelva el salario diario promedio a partir del salario mensual
ingresado por el usuario.
Creamos la Función
Ejecutamos la función con un select y le enviamos el parámetro de entrada (DBO es el
nombre del propietario)
25
Ejemplo 2:
Implementar una función que los años que tenga una persona a partir de la fecha de
nacimiento dada.
Crear función
Aplicar a una fecha
Aplicar a la Tabla Persona para saber la edad de cada persona
26
Hacer una consulta en el cual muestre las personas que tengan 18 o más años, usando
la función calcular edad.
Disparadores (triggers)
Un "trigger" (disparador o desencadenador) es un tipo de procedimiento almacenado que
se ejecuta cuando se intenta modificar los datos de una tabla (o vista).
Se definen para una tabla (o vista) específica.
Se crean para conservar la integridad referencial y la coherencia entre los datos entre
distintas tablas.
Si se intenta modificar (agregar, actualizar o eliminar) datos de una tabla en la que se
definió un disparador para alguna de estas acciones (inserción, actualización y eliminación),
el disparador se ejecuta (se dispara) en forma automática.
Un trigger se asocia a un evento (inserción, actualización o borrado) sobre una tabla.
Sintaxis básica:
create triggre NOMBREDISPARADOR
on NOMBRETABLA
for EVENTO- insert, update o delete
as
SENTENCIAS
Analizamos la sintaxis:
- "create trigger" junto al nombre del disparador.
- "on" seguido del nombre de la tabla o vista para la cual se establece el trigger.
27
- luego de "for", se indica la acción (evento, el tipo de modificación) sobre la tabla o vista
que activará el trigger. Puede ser "insert", "update" o "delete". Debe colocarse al menos UNA
acción, si se coloca más de una, deben separarse con comas.
- luego de "as" viene el cuerpo del trigger, se especifican las condiciones y acciones del
disparador; es decir, las condiciones que determinan cuando un intento de inserción,
actualización o borrado provoca las acciones que el trigger realizará.
Consideraciones generales:
- "create trigger" debe ser la primera sentencia de un bloque y sólo se puede aplicar a una
tabla.
- un disparador se crea solamente en la base de datos actual pero puede hacer referencia
a objetos de otra base de datos.
- Las siguientes instrucciones no están permitidas en un desencadenador: create database,
alter database, drop database, load database, restore database, load log, reconfigure,
restore log, disk init, disk resize.
- Se pueden crear varios triggers para cada evento, es decir, para cada tipo de
modificación (inserción, actualización o borrado) para una misma tabla. Por ejemplo, se
puede crear un "insert trigger" para una tabla que ya tiene otro "insert trigger".
Ejemplo:
Después de estudiar el tema de los triggers vamos a crear un trigger que se dispare cada vez
que se ingrese un registro en la tabla Persona.
Para eso, vamos a crear una tabla con el Nombre de seguimiento o log. Con los campos de
Fecha, Equipo, Descripción.
Crear Trigger
28
Insertar un registro en la tabla Persona
Hacemos una consulta a la tabla de Persona y la de log para confirmar que el trigger de
disparó correctamente.
SIGUIENTE TEMA ES HACER UN PROYECTO
EN C# Y SQL SERVER EN 3 CAPAS(DATOS,
NEGOCIO Y PRESENTACION) CON LAS
TABLAS DE PERSONA Y USUARIO QUE SE
PUEDA INSERTAR, MODIFICAR,ELIMINAR Y
HACER CONSULTA DESDE C# A SQL.
29