CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LA INFORMACION ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION
Fecha: Noviembre/2010
TALLER CREACION DE VISTAS EN SQL
Son tablas lógicas que se crean en la base de datos y existen como un objeto más de la misma; aunque aunque no tienen existencia existencia física , su implementación implementación permite usarlas de la misma manera en la que se usan las tablas. La importancia importancia de su implementación implementación radica en que el administrador de la base de datos, podrá restringir el acceso a datos confidenciales y a los desarrolladores les permitirá concentrarse en los datos más relevantes para las transacciones cotidianas. Además es la forma más conveniente para exportar datos a otras aplicaciones sin que creen dificultades frente al diseño de bases de datos complejas o en la que se requieran consultas heterogéneas. Sintaxis básica CREATE VIEW [NombreVista] [NombreVista] AS para iniciar la sentencia Se redacta el contenido de la sentencia sql, teniendo en cuenta las restricciones. Su utilización es idéntica a la de una tabla normal de la base de datos Ejemplo usando la base de datos northwind CREATE VIEW ProduCategView AS SELECT CategoryName, CategoryName, ProductName, ProductName, UnitPrice, UnitPrice, UnitsInStock, UnitsInStock, UnitsOnOrder FROM UnitsOnOrder FROM Products P INNER JOIN Categories C ON P.CategoryID= CategoryID=C.CategoryID /* la ejecutamos utilizándola como una tabl a más más de la base de datos*/ select * from ProduCategView 1.
Redacte una sentencia que utilice la vista dbo .Pr oduCategView oduCategView de tal maner a que muest r e el nombr e de los pr oductos oductos que inicien con la let r a p , solo si, las unidades en stock son mayo r o igual al pr omedio omedio de las unidades vendidas. Si lo consider a necesar io, io, modifique la vista ag r egando egando campos pa r a unir la la a otr as as tablas o ag réguele todas las tablas que sean necesar ias ias y después úsela sola . Agr egue egue aquí la sentencia de la vista modificada y la sentencia en la cual la usa.
Elaborado por: Instructora Instructora Sandra Yanneth Ru eda Guevara SENA - Área de Teleinformática
CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LA INFORMACION ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION
Fecha: Noviembre/2010
create VIEW ProduCat AS SELECT CategoryName,ProductName, p.ProductID, UnitPrice, UnitsInStock, UnitsOnOrder UnitsOnOrder FROM Products P INNER JOIN J OIN Categories C ON P.CategoryID=C.CategoryID P.CategoryID=C.CategoryID
select ProductName from ProduCat ProduCat p inner join [Order Details] ord on p.ProductID = ord.ProductID where ProductName like 'p%' group by ProductName, UnitsInStock having UnitsInStock >= avg(Quantity) --Si lo considera necesario, modifique la vista agregando campos para unirla a otras --tablas o agréguele todas las tablas que sean necesarias y después úsela sola. --Agregue aquí la sentencia de la vista modificada y la sentencia en la cual la usa. ALTER VIEW ProduCategView AS select ProductName, s.SupplierID, s.SupplierID, City, CategoryName, CategoryName, SUM((ord.UnitPrice SUM((ord.UnitPrice * Quantity)- Discount) as vvend endido ido from Products p inner join [Order Details] ord on p.ProductID=ord.ProductID inner join Suppliers s on p.SupplierID=s.SupplierID inner join Categories c on c.CategoryID=p.CategoryID where ProductName ProductName like lik e 'p%' group by ProductName, UnitsInStock, s.SupplierID,City, CategoryName having(UnitsInStock) having(UnitsInStock) >= vendido vendido select * from ProduCategView
Elaborado por: Instructora Instructora Sandra Yanneth Ru eda Guevara SENA - Área de Teleinformática
CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LA INFORMACION ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION
2.
Fecha: Noviembre/2010
ESTRUCTURA CASE EN SQL Esta estr uctu uctur a solo se usa en el comando SELECT .
SINTAXIS BÁSICA SELECT NombreColumnaVista = Case NombreColumnaTablaExistente WHEN DatoColumnaTabla THEN DatoLlenarColumVista EJEMPLO UTILIZANDO LA BASE DE DATOS NORTHWIND
Create view CargoEmpleado /*Creamos la vista normal*/ as SELECT NombrEmpleado= NombrEmpleado=FirstName+ FirstName+' '+ '+LastName, LastName, Cargo = CASE Title cuandoWHEN cuandoWHEN 'Sales Representative' entonces THEN 'Representante' WHEN 'Vice President, Sales' THEN 'Vicepresidente' ELSE 'NO APLICA' END FROM Employees /*Visualizamos CargoEmpleado y agregamos una condicion, tam bien podriamos incluir un criterio de ordenamiento*/ select * from CargoEmpleado where Cargo <> 'NO APLICA' 2.1
Cr ee ee una vista que contenga el nomb r e del cliente y la nacionalidad del mismo, utilice una estr uctu uctur a CASE que le per mita mita llenar el campo nacionalidad, de acuer do do con el país (count r y) y) de or igen igen del cliente.
Create view company company /*Creamos la vista normal*/ as select CompanyName, nacionalidad = case Country WHEN 'Germany' THEN 'alemania' WHEN 'Mexico' THEN 'mexico' WHEN 'UK' THEN 'reino unido' WHEN 'Sweden' THEN 'suecia' WHEN 'France' 'France' THEN 'francia' 'francia' WHEN 'Spain' THEN 'españa' WHEN 'Canada' THEN 'canada' Elaborado por: Instructora Instructora Sandra Yanneth Ru eda Guevara SENA - Área de Teleinformática
CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LA INFORMACION ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION
Fecha: Noviembre/2010
WHEN 'Argentina' THEN 'Argentina' ELSE 'NO APLICA' END from Customers
2.2
Cr ee ee una sentencia que utilizando la vista del punto 2.1, muestr e solo los clientes cuya nacionalidad inicie con la let r a A, or ganice ganice la lista de fo r ma ma ascendente po r nacional nacional idad.
select * from company where nacionalidad like 'A%' select * from companys companys
Elaborado por: Instructora Instructora Sandra Yanneth Ru eda Guevara SENA - Área de Teleinformática