Está en la página 1de 133

CAMBIAR FORMATO DE FECHA

RESTRICCIONES:

Puede colocar restricciones para limitar el tipo de


dato que puede ingresarse en una tabla. Dichas
restricciones pueden especificarse cuando la
tabla se crea por primera vez a través de la
instrucción CREATE TABLE, o luego de crear la
tabla a través de la instrucción ALTER TABLE.
NOT NULL

En forma predeterminada, una columna puede


ser NULL. Si no desea permitir un valor NULL en
una columna, querrá colocar una restricción en
esta columna especificando que NULL no es
ahora un valor permitido.
Por ejemplo, en la siguiente instrucción,
CHECK

La restricción CHECK asegura que todos los


valores en una columna cumplan ciertas
condiciones.
Por ejemplo, en la siguiente instrucción,
EJERCICIO 1:

Implemente un script que permita


añadir la restricción a la columna
MONTO de la tabla PAGO donde solo
permita registrar pagos mayores o
iguales a 200
EJERCICIO 2:

Implemente un script que permita


añadir la restricción a la columna
FECHA de la tabla PAGO donde solo
permita registrar fechas iguales o
menores que la actual.
EJERCICIO 3:

Implementar un Script que permita


añadir la restricción a la columna
FECHA de la Tabla PAGO en donde el
usuario no registra la fecha, se inserte
la fecha actual por defecto
ELIMINAR UNA RESTRICCIÓN?

ALTER TABLE NOMBREDETABLA


DROP CONSTRAINT NOMBREDERESTRICCION
GO

ELIMINEMOS LA RESTRICCION DE INSERCION


EJERCICIO 4:

Script que permite replicar todos los


registros de la tabla PASAJERO a una
nueva tabla llamada MISPASAJEROS y
que por intermedio de una tabla
temporal llamada PASAJEROTEMP
envie sus registros usando la
instrucción WITH
TOP (TRANSACT-SQL)

Especifica que solo se devolverá el primer


conjunto de filas del resultado de la consulta.
La expresión TOP se puede usar en instrucciones
SELECT, INSERT, UPDATE, MERGE y DELETE.
LIKE (TRANSACT-SQL)

Determina si una cadena de caracteres


específica coincide con un patrón especificado
… busca todos los títulos de TABLA que
contengan la palabra ‘xxx' en el título.

Sintaxtis : '%RAPUMA%'
EJERCICIO 5:

Script que permite insertar los tres


primeros pasajeros que tiene email
HOTMAIL.COM a la tabla
PASAJEROSHOTMAIL
Primero mostramos la lista de pasajeros
Creamos el script tabla PASAJEROSHOTMAIL
EL SIGUIENTE SCRIPT MUESTRA LOS 3
PRIMEROS PASAJEROS QUE CUENTAN CON
EMAIL DE HOTMAIL A LA TABLA
PASAJEROSHOTMAIL
VEMOS LOS REGISTROS DE PASAJEROSHOTMAIL
Si queremos coger todos los valores de una tabla
actualizar todos a una cierta cantidad o cierto
valor, lo hacemos con un update y la palabra SET
(TODO)
EJERCICIO 6:

SCRIPT que permite actualizar los


valores de la columna IMPUESTO por
el valor 11 a todos los registros de la
tabla TARIFA
EJERCICIO 7:

SCRIPT que permite actualizar los


valores de la columna IMPUESTO
aumentado en 2 a todos los registros
de la tabla tarifa
 O SET IMPUESTO = IMPUESTO +2
EJERCICIO 8:

SCRIPT que permita asignar el


impuesto a cero solo a los registros
cuya CLASE sea ECONOMICO de la
tabla Tarifa
ELIMINACION DE REGISTROS DE UNA TABLA
CON DELETE

La sentencia DELETE permite eliminar todos los


registros especificados en una determinada tabla
Se usan en:
- TOP: especifica una muestra en numero o
porcentaje de registros posibles a eliminar
- TABLA: se especifica el nombre de la tabla

- WHERE: condiciona la eliminación de los


registros que cumplan con la condición.
EJERCICIO 9:

SCRIPT que permita eliminar el


registro de la tabla PASAJERO cuyo
IDPASAJERO sea P0010
PRIMERO MOSTREMOS LOS PASAJEROS QUE
TENGAN POR PAIS A BRASIL
EJERCICIO 10:

SCRIPT que permite asignar el texto


SIN FONO a los pasajeros cuyos pais
sea BRASIL, todo esto deberá ser
realizado en la tabla PASAJERO
EJERCICIO 10:

SCRIPT que permita eliminar los


registros de la tabla PAGO
EJERCICIO 11:

SCRIPT que permita eliminar el 5% de


los registros de la tabla PASAJERO
cuyo pais sea URUGUAY
FUNCIONES DE AGREGADO

 COUNT >>> CUENTA EL NUMERO DE


REGISTROS
 SUM >>> SUMA

 MAX >>> MAX

 MIN >>> MIN


EJERCICIO 12:

SCRIPT que permite contar la cantidad


de PASAJEROS QUE HAY
REGISTRADOS EN LA TABLA
PARA LOS DEMAS ES IGUAL, LA MISMA SINTAX
CONCATENACION Y ALIAS

CONCATENACION : UNION DE 2 O MAS CADENAS

EJERCICIO 13: concatenar la palabra alumnos de


cuarto semestre y los nombres de los pasajeros:

Y SI QUIERO AGREGARLE EL TELEFONO


SEPARADO CON UN / COMO LO HARIA
 AHORA QUIERO MOSTRAR ESA LISTA
ANTERIOR, SOLO CON LOS DE PERU
ALIAS

La legibilidad de una instrucción SELECT se


puede mejorar si se proporciona un alias para la
tabla, conocido también como una variable de
intervalo o nombre de correlación. Un alias de
tabla se puede asignar con o sin la palabra clave
AS:
EJERCICIO 14:

SCRIPT QUE MUESTRE


CONCATENADOS LOS NOMBRES Y LOS
CORREOS ELECTRONICOS,
AGREGANDO UN ALIAS A NOMBRES
(NOMBRE_DE_ALUMNOS) Y CORREO
(CORREO_ELECTRONICO)
FUNCIONES
MANEJO DE CADENAS

SUBSTRING : si solo quiero obtener la palabra farfan es


una subcadena
PRIMER PARAMETRO : LA CADENA
SEGUNDO PARAMETRO: LA UBICACIÓN DE LA CADENA
QUE QUEREMOS ENCONTRAR (POSICION)
TERCER PARAMETRO: EL NUMERO DE CARACTERES QUE
QUEREMOS MOSTRAR
CONVERSION DE UN NUMERO A UNA CADENA

 SELECT STR (123)

STUFF: REEMPLAZAR UNA PARTE DE UNA CADENA


PRIMER PARAMETRO: CADENA
SEGUNDO PARAMETRO: EN DONDE SE INICIA EL
REEMPLAZO
TERCER PARAMETRO: CANTIDAD DE PALABRAS A
REEMPLAZAR
CUARTO PARAMETRO: PALABRA A AUMENTAR
EJERCICIO 15:

Reemplazar la palabra juan por xvres


y mostrar
REEMPLAZAR PERO SIN BORRAR LA PALABRA
JUAN..
LONGITUD : LEN

Longitud de una cadena , que tanto mide

Si queremos convertir de asci a palabra


CONVERTIR MINUSCALAS A MAYUSCULAS

CONVERTIR MAYUSCULAS A MINUSCULAS


ELIMINAR ESPACIOS EN BLANCO DE LA
IZQUIERDA

ELIMINAR ESPACIOS EN BLANCO DE LA DERECHA


REPLACE

Reemplazar subcadena en cadena sin dar la


ubicación,
PRIMER PARAMETRO: CADENA
SEGUNDO PARAMETRO: PALABRA A
REEMPLAZAR
TERCER PARAMETRO: PALABRA REEMPLAZADA
REVERSE

PONE LA CADENA AL REVEZ

PATINDEX
Regresa el numero donde inicia la coincidencia,
primero va la palabra luego la cadena
REPLICATE

Repite la cadena , las veces que queramos,


primero va la cadena , luego la cantidad

SPACE
Dar espacios entre cadenas
 NOT >>>> NEGACION
 AND >>>> Y (se cumplen todas las
condiciones)
 OR >>>> O ( o una o la otra)
EJERCICIO 16:

MOSTRAR la lista de pasajeros pero


sin incluir al IDPASAJERO = P0001
EJERCICIO 17:

Mostrar los registros de los pasajeros


que tengan IDPASAJERO= P0001 Y
P0002
EJERCICIO 18:

Mostrar los registros del pasajero que


tenga por IDPAIS=001 Y CORREO
ELECTRONICO =
AALVAREZC@HOTMAIL.COM
EJERCICIO 19:

Mostrar los todos los pasajeros que su


IDPASAJERO SEA MAYOR QUE P0001 Y
MENOR QUE P0009
LIKE

permite hacer una búsqueda basada en un patrón

Que tengan la palabra

Que no tengan la palabra


Que empieze por ‘el%’
Que terminen ‘%el’
Comodin _
VISTAS

Tablas virtuales creadas a partir de una consulta


Es dinámico conforme a los datos de la tabla
original
PARA ENCRIPTARLA

Y LUEGO HACEMOS OTRO


CUAL ES LA
DIFERENCIA ENTRE
ELIMINAR UNA
VISTA Y ELIMINAR
UNA TABLA?
Que en una tabla hay relaciones, y en la vistas
son creadas a partir de las tablas, si eliminamos
una tabla de la cual se creo la vista, esta sigue
existiendo
Las vistas se eliminan directamente

Drop view vista_encriptada


ACTUALIZAR UN DATO DESDE UNA VISTA

Ejercicio 20:
Hacer un script donde se actualize la vista
encriptada , cambiando el numero de telefono de
la señorita alvarez castillo a : 123456789
 Hacer un select * from a pasajeros y a la vista
SI QUIERO QUITARLE LA ENCRIPTACION

ALTER: como si fuera cualquier tabla

HAGO UN SELECT PARA VER QUE YA NO ESTA


ENCRIPTADA,
LENGUAJES DE
CONTROL DE
FLUJO
 C

Condicion --- ejecuta, sino cumple pasa al end


EJERCICIO 21:
Hacer un Script donde de acuerdo al
IDPAIS que tenga cada PASAJERO,
MOSTRAR EL PAIS AL QUE
PERTENECEN, UTILIZE LA SENTENCIA
CASE
SELECT NOMBRES, IDPAIS =
CASE IDPAIS
WHEN 0001 THEN 'PERUANO PUES'
WHEN 0002 THEN 'ARGENTINA'
WHEN 0003 THEN 'CHILE'
END
FROM PASAJERO
EJERCICIO 22:

Hacer un Script que muestre solo los


que tenga por IDPAIS= 0001, CASO
CONTRARIO MOSTRAR UN MENSAJE:
‘NO HAY DATOS’, UTILIZE LA
SENTENCIA IF
VARIABLES
ESTRUCTURA

@ >>> NOS INDICA QUE ES UNA VARIABLE


EJERCICIO 23:
 Hacer un Script donde declaremos
las variables idpais y telefono,
asigandoles 001 y 336592
respectivamente, el cual nos
mostrara como resultado a: ALVAREZ
CASTILLO MARIA ANGELICA
declare @variableidpais char (4)
declare @variabletelefono char (15)
set @variableidpais = '0001'
set @variabletelefono = '336592'
select * from PASAJERO where IDPAIS =
@variableidpais and TELEFONO=
@variabletelefono
PROCEDIMIENTOS
ALMACENADOS
Conjunto de sentencias las cuales se almacenaran en el
servidor y nos permiten hace tareas repetidas,, solo las
llamamos

No pueden contener :
CREATE
PROCEDURE
DEFAULT
RULE
TRIGGER
VIEW
TIPOS DE PROCEDIMIENTOS:
1. DEL SISTEMA:
Están almacenados en la base de datos
«master» y llevan el prefijo «sp_»
1. LOCALES:
Los crea el usuario
2. TEMPORALES:
Pueden ser locales, comienzan con un signo numeral
(#)
3. EXTENDIDOS
Se implementan como bibliotecas de vinculos
dinamicos (DLL – Dynamic – Link Libraries)
PROCESO
Al crear un procedimiento almacenado, las
instrucciones que contiene se analizan para verificar
si son correctas sintácticamente.

Si no se detectan errores , SQL guarda el nombre del


procedimiento almacenado en la Tabla de
«sysobjects» y su contenido en la tabla del sistema
«syscomments» en la base de datos activa. Si se
encuentra algun error, el procedimiento almacenado
no se creara…
Ejercicio 24:
Crear un procedimiento almacenado para llamar
solo a los de peru.. Mostrarme atributos solo
nombres, teléfono y email..
Ejercicio 24:
Crear un procedimiento almacenado para
insertar un pasajero, dándole los atributos de la
tabla misma…

IDPASAJERO = P0050
NOMBRES = PABLO PEREZ CUELLAR
IDPAIS = 0001
TELEFONO = 324030
EMAIL = PPEREZC@HOTMAIL.COM
Si una tarea es muy repetitiva es conveniente hacerla procedimiento almacenado
ELIMINACION DE UN PROCEDIMIENTO
ALMACENADO
SE PUEDE ELIMINAR
CLICK DERECHO
ELIMINAR
SI NO :

Despues de haber eliminado el procedimiento , le


damos de nuevo, y nos marcara error, si
queremos contralar, la forma como eliminamos
un procedimiento, hacemos lo siguiente:
PROC ALM. PARAMETROS DE ENTRADA
Como pasar parámetros a los procedimientos que
vayamos creando, para que los procedimientos sean
dinámicos..

Pueden ser mas parametros y lo separamos por


comas.
PRIMERO:

A LA TABLA PASAJERO AGREGAR ATRIBUTO


EDAD Y SEXO
ASIGNARLE EDAD A TODOS LOS PASAJEROS Y
SUS RESPECTIVOS SEXOS
Ejercicio 25:
Crear un procedimiento almacenado
SELECCIONAR donde ingresemos parametros de
entrada
@edad y @sexo
El procedimiento a ejecutar muestra los alumnos
mayores a 18 años y sexo femenino
PROC. ALM PARAMETROS SALIDA

Solo se agrega output para que haga referencia


que es parámetro de salida
Ejercicio 26:
Crear un procedimiento almacenado
SELECCIONAR donde se declrara una variable de
tipo entro, para almacenar la cantidad de
registros de pasajeros mayores de 18 años , del
sexo masculino
Verificamos que se creo el procedimiento
La variable total, me permite almacenar que
nosotros devolvemos de @count
Cada vez que creamos un registro en una tabla,
se crea una tabla temporal llamada inserted, una
vez registrados , se elimina de forma automatica.
Cuando eliminamos un registro, tambien se crea
una tabla temporal llamada deleted, una vez
eliminado, la tabla temporal se elimina
Cuando realizamos un update , se crean 2 tablas
temporales, deleted e inserted, ya que el update
utiliza la tabla deleted para eliminar un registro
que posteriormente con la tabla inserted lo
sustituira por uno actualizado
TRIGGERS

Es un tipo de procedimiento almacenado que se


ejecuta cuando se intenta modificar una tabla.

DIFERENCIA ENTRE PROC. ALMA. CON TRIGGER


no reciben ni retornan parametros
Se ejecutan despues de la la ejecucion de una
instrucción INSERT, UPDATE, DELETE de una
tabla
ESTRUCTURA

 Ejemplo de un tienda y ventas


 Pretendemos crear un trigger que se dispare
cuando se inserte uno o mas registros,
guardando en la tabla historial un registro de lo
sucedido

SELECT * FROM HISTORIAL


SELECT * FROM PRODUCTOS
VEMOS QUE LAS TABLAS ESTAN VACIAS
CREAMOS EL TRIGGER PARA INSERTAR

LA TABLA HISTORIAL TIENE LOS SIGUIENTES ATRIBUTOS


 SE GUARDAN DENTRO DE LA TABLA
ESPECIFICA EN LA CARPETA TRIGGER O
DESENCADENADORES
INSERTEMOS EL SIGUIENTE PRODUCTO

Notemos que nos saldrá 2 filas afectadas:

La cual envió a la tabla historial un registro de la


acción realizada
EJECUTEMOS DE NUEVO LOS 2 SELECT
 Si quiero agregar mas datos al historial como el
nombre del producto o el codigo del producto,
se modifica tanto el trigger como la tabla
historial
 La tabla historial la puedo modificar con un
alter, pero el campo se agrega al final, y en sql
no podemos elegir la posicion del nuevo campo
a insertar.
Eliminamos la tabla Historial

Ejecutamos de nuevo el script de la tabla


historial, con el nuevo atributo cod_prod
Hagamos de nuevo la consulta
Eliminamos los registros de la tabla producto
para empezar desde cero y ejecutamos de nuevo
los dos select
MODIFIQUEMOS EL TRIGGER
Declaramos el parametro @cod_prod, le
hacemos un select al parametro para asignarle el
valor que contendra el campo cod_prod que
proviene de la tabla temporal inserted

El trigger aprovecha el momento para tomar de


dicha tabla lo que necesite y enviarlo a la tabla
historial
AHORA INSERTEMOS UN REGISTRO

Hagamos el respectivo select para ver tablas

Podemos ver el código del


producto el cual insertamos, y
este registro lo que hizo es
que se dispare el trigger para
almacenar dicha acción en la
tabla historial
AGREGEMOS MAS INSERCIONES

Demos un select a la tabla historial y productos

SE INSERTAN
CORRECTAMENTE
ALGUIEN PUEDE PERCATARSE QUE HAY UN
TRIGGER DETRÁS DEL PROCESO ,
MODIFICAREMOS PARA QUE SOLO SALGA 1 FILA
AFECTADA EN LA INSERCION DE DATOS
INSERTEMOS UN NUEVO REGISTRO

DE ESTA FORMA PASA DESAPERCIBIDO EL TRIGGER


AHORA HAREMOS UN TRIGGER PARA
ELIMINACION DE PRODUCTOS
- Reutilizmos el codigo anterior, copiar y pegar
Consultemos la tabla Productos para ver que
eliminamos

Eliminemos el registro aire comprimido


Consultemos de nuevo las tablas historial y
productos
AHORA HAREMOS UN TRIGGER QUE ME HAGA
UN UPDATE
- Recuerden que se crea 2 tablas temporales,
una inserted y una deleted.. Obviamente
tomaremos la informacion de la tabla inserted
Consultemos la tabla Productos para ver que
registro podemos actualizar

Actualicemos la existencia del producto A001 A


180
 VEMOS que el producto se actualizo a 180 y en
la TABLA HISTORIAL, se registro el detalle de la
actualizacion

También podría gustarte