Sunteți pe pagina 1din 7

1. Integridad de Datos: restriccionestrabajadores de una empresa.

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC


CARRERA PROFESIONAL DE INGENIERÍA INFORMÁTICA Y SISTEMAS

GUÍA 04 de SGBDII – VISTAS y FUNCIONES

1. DATOS ACADEMICOS:
Nombre Asignatura : Sistema de Gestión de Base de Datos II
Unidad : Primera Unidad: Modelos Avanzados de desarrollo de
Base de datos.
Tema : Vistas y Funciones
Docente : Ing. Maryluz Cuentas Toledo

2. OBJETIVOS
- Crear y ejecutar Vistas.
- Crear y ejecutar Vistas utilizando funciones.

3. TRABAJO PREPARATORIO
- Conocer conceptos básicos para formular consultas simples y complejas.
- Conocer funciones de fecha y hora, funciones de caracteres.
- Leer el marco teórico de la presente guía

4. MARCO TEORICO

4.1. FUNCIONES
Son rutinas que se realizan con frecuencia, Una función toma cero o más parámetros de
entrada y devuelve un valor.
Dentro de las funciones más usuales tenemos:

Funciones de fecha y Hora:

 SELECT GETDATE().-Devuelve la Fecha y hora del sistema

 SELECT GETUTCDATE().-Devuelve la fecha y hora del Meridiano de


Greenwich

 SELECT DAY(GETDATE()).- Devuelve el día de la fecha del sistema.


 SELECT MONTH(GETDATE()).-Devuelve el mes de la fecha del sistema.
 SELECT YEAR(GETDATE()).-Devuelve el año de la fecha del sistema.
 DATEADD(day, n, campofecha) .- Genera una nueva fecha añadiéndole n días a
campofecha.

 SELECT DATEPART(month, GETDATE()).- Devuelve el número de la fecha


del sistema.

 SELECT DATENAME(month, GETDATE()).-Devuelve el nombre del mes de


la fecha del sistema.
 SELECT CONVERT(datetime,’2011/10/15’).-Devuelve una cadena convertida
en fecha.
 SELECT DATEDIFF(YEAR, ’15/10/2010’, GETDATE()).-Devuelve la
diferencia en años, desde fechas especificadas.
 SELECT DATEDIFF(MONTH, ’15/10/2010’, GETDATE()).-Devuelve la
diferencia en meses, desde fechas especificadas.
 SELECT DATEDIFF(DAY, ’15/10/2010’, GETDATE()).-Devuelve la
diferencia en dias, desde fechas especificadas.

Funciones de Caracteres:

a. RIGHT.- Devuelve la parte de una cadena de caracteres que comienza en el


número de caracteres especificado en integer_expression a partir de la derecha

Sintaxis
RIGHT (character_expresion,integer_expression)
character_expresion: Es una expresión de datos de tipo carácter. Puede ser una
constante, una variable o una columna.

b. LEFT.- Devuelve la parte de una cadena de caracteres que comienza en un


número especificado a partir de la izquierda.

Sintaxis
LEFT ( character_expression , integer_expression )

character_expression: Es una expresión de caracteres o de datos; puede ser una


constante, una variable o una columna.

integer_expression: Es un número entero positivo

c. STR.- Convierte números a caracteres, con parámetros opcionales para


especificar la longitud total del resultado.

d. LTRIM.- Devuelve una expresión de caracteres después de quitar los espacios


en blanco a la izquierda.

Sintaxis
LTRIM ( character_expression )
character_expression: Es una expresión de caracteres o de datos

e. RTRIM.- Devuelve una cadena de caracteres después de truncar todos los


espacios en blanco a la derecha.

Sintaxis
RTRIM ( character_expression )
character_expression: Es una expresión de datos de tipo carácter.
character_expression puede ser una constante, una variable o una columna de
datos.
Otras Funciones:

a. CAST.- Convierte explícitamente una expresión de un tipo de dato en otro

Sintaxis
CAST ( expression AS data_type )
expression: Es cualquier expresión válida de Microsoft® SQL Server
data_type: Es el tipo de datos de destino proporcionado por el sistema.

b. ISNULL.- Reemplaza Null con el valor de reemplazo especificado.

Sintaxis

ISNULL ( check_expression , replacement_value )


check_expression: Es la expresión donde se va a comprobar la existencia de
NULL; replacement_value: Es la expresión que se va a devolver si
check_expression es NULL; replacement_value debe tener el mismo tipo de
datos que check_expresssion

4.2. VISTAS

Una vista de base de datos es un resultado de una consulta SQL de una o varias tablas;
también se le puede considerar una tabla virtual.

Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es que
sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante una
consulta a una vista se presentarán igual que los de una tabla. De hecho, si no se sabe que se
está trabajando con una vista, nada hace suponer que es así. Al igual que sucede con una
tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque siempre
es posible seleccionar datos de una vista, en algunas condiciones existen restricciones para
realizar el resto de las operaciones sobre vistas.

Una vista se especifica a través de una expresión de consulta (una sentencia SELECT) que la
calcula y que puede realizarse sobre una o más tablas. Sobre un conjunto de tablas
relacionales se puede trabajar con un número cualquiera de vistas.

La mayoría de los DBMS soportan la creación y manipulación de vistas.

Creación de vistas.

Para crear una vista debemos utilizar la sentencia CREATE VIEW,


debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. Su
sintaxis es:
CREATE VIEW <nombre_vista>
AS
(<sentencia_select>);

Ejecución de vistas: Para ejecutar una vista se tiene la sintaxis:

SELECT * FROM <nombre_vista>

Modificación de una vista: Si queremos, modificar la definición de nuestra vista


podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como se
hace con las tablas. Su sintaxis:

ALTER VIEW <nombre_vista>


AS
(<sentencia_select>);

Eliminación de vistas: Podemoseliminar la vista a través de la sentencia DROP


VIEW. Para eliminar la vista que hemos creado anteriormente se uitlizaría:

DROP VIEW <nombre_vista>;

DESARROLLO DE LA PRÁCTICA.-

1.- Realice las siguientes consultas, utilizando funciones de fecha y Hora


-- Entrega la fecha y hora del sistema
SELECT GETDATE()as FechSist
-- Entrega la fecha y hora del Meridiano de Greenwich
SELECT GETUTCDATE()as FechMerid
--DAY,YEAR,MONTH,
SELECT DAY(GETDATE())AS DIA
--DATENAME--DEVUELVE LA FECHA EN CARACTERES.
SELECT DATENAME(MONTH,GETDATE()) AS MES
--DEVUELVE EL NOMBRE DEL DIA DE HOY
SELECT DATENAME(WEEKDAY,GETDATE()) AS DIA
--DATEADD—INCREMENTA DIAS
SELECT DATEADD(DAY,2, GETDATE())
--DATEDIFF--HALLA LA DIFERENECIA DE FECHAS
SELECT DATEDIFF(MONTH,'10/15/10',GETDATE()) AS AÑO
--DATEPART-DEVUELVE VALORES ENTEROS
SELECT DATEPART(YEAR,GETDATE())

--LISTAR TODOS LOS PEDIDOS DEL MES DE AGOSTO O SETIEMBRE


SELECT *
FROM TPEDIDO
WHERE month (FECHA_PEDIDO) = 08 OR
month (FECHA_PEDIDO) = 09
--DETERMINAR LA EDAD QUE TIENE UD.-------------
SELECT DATEDIFF(YEAR,'08/06/92',GETDATE()) AS 'Mi Edad'

--LISTAR TODOS LOS PEDIDOS QUE SE HALLAN CANCELADO DESPUÉS DE 1DÍA DE


SU FECHA DE PEDIDO
SELECT p.Num_pedido
FROM TPEDIDO p, Tpago pa
WHERE p.Num_Pedido=pa.Num_Pedido
datediff(day,fecha_pedido,fecha_pago) = 1)

2.- Realice las siguientes consultas, utilizando funciones de Caracteres

select ascii('Sistema de Gestión de Base de Datos II')


select char(83)
select upper('base de datos')
select lower('base de datos')
select substring ('base de datos', 9, 5)
select len('base de datos')
select stuff('datos',3,3,'TOS')
select reverse('1234')
select replicate('Base de Datos ',2)
select ltrim(' Datos')
select rtrim('Datos ')
select right('Datos',2)
select left('Datos',2)
select str(year(getdate()),4)
select unicode('Base de datos')

3.- Realice las siguientes consultas, creando vistas:


 Crear una vista de la tabla clientes:
create view V_InfClientes
as
select *from TCLIENTE

Para ejecutar la vista:


select * from V_InfClientes

 Crear una vista para generar un reporte de las ventas realizadas entre el
01/01/2010 y el 15/10/2011
create view V_ReporteVentas2010_2011
as
SELECT
numero_pedido,impuesto_pedido,total_pedido,fecha_pedido,v.codigo
_vendedor,v.nombre_vendedor
FROM Pedido P INNER JOIN Vendedor V
on P.CODIGO_VENDEDOR=V.CODIGO_VENDEDOR
WHERE FECHA_PEDIDO BETWEEN '01/08/09'
AND '30/08/09'
Para ejecutar la vista:
select * from V_ReporteVentas2010_2011

 Crear una vista para generar un reporte de las ventas más altas realizadas entre el
01/01/2010 y el 15/10/2011.

EJERCICIOS PROPUESTOS
Realice las siguientes consultas, utilizando vistas, funciones de fecha,
funciones de caracteres y de conversión:
1.-Listar todos los pedidos del mes de octubre.
2.-Genere el día actual del sistema.
3.-Visualice el mes actual del sistema en caracteres.
4.-Visualice el año del sistema en números.
5.-Listar todos los pedidos del mes de octubre de la tabla TPEDIDO.
6.-Visualice el nombre del día actual.
7.-Listar el número de pedido y el monto total que fue cancelado el día de ayer.
8.-Visualice la longitud de la tabla cliente.
9.-Generar el código que continua de la tabla TVENDEDOR, ejemplo si fuera el código
VE0005.... entonces debe generar el código VE0006
10.- Visualizar el código del vendedor y convertirlo en minúscula
11.- Mostrar la fecha de pedido en letras .... 25/09/06
12.- Visualizar todos los pedidos realizados en el año 2010
13.- Visualizar la fecha de pago con el sig formato : sabado, 15 de octubre del 2011
14.- Seleccionar el código de la tabla tcliente que esta inicialmente como char, para
convertirlo en numérico.
15.- Seleccionarlos campos : COD_PRODUCTO, NOM_PRODUCTO,
UNIDAD_PRODUCTO, STOCK_ART,STOCK_MIN, de la tabla tproducto. Si el
stock de un artículo determinado es NULL, el stock mostrado en el conjunto de
resultados es 0.
16.-Seleccionar la parte numérica del código del cliente. (CODCLIENTE) 17.-Extraer
los tres primero caracteres del código del cliente. (CODCLIENTE)
18.-Obtener la diferencia en semanas entre fecha de pedido y la fecha del sistema.
19.-Listar todos los pedidos que se hallan cancelado después de 2 O 3 día de su fecha de
pedido.
20.-Listar todos nombres y apellidos del cliente que cancelaron su pedido en el mismo
día, concatenados con la cadena ‘APTO AL 20% DE DESCUENTO”.
21.- Borrar todos los pedidos que no han sido cancelados y solo cuentan con fecha de
pedido
Delete From Prodped
Where nprod in (Select nprod
From Producto, Proveedor
Where Producto.nprove = Proveedor.nprove and nombre =
'XYZ')

S-ar putea să vă placă și