ESCUELA POLITECNICA NACIONAL
DEPARTAMENTO DE ELECTRONICA, TELECOMUNICACIONES Y REDES DE
INFORMACION
BASES DE DATOS - IEE4B4
MSC GABRIEL LOPEZ
gabriel lopez@epn.edu.ec
Microsoft SQL Server
"3. »%
a SnMicrosoft SQL Server
SQL CHECK Constraint
Limita los rangos de valores que pueden tomar los registros de una
columna.
* Ejemplo:
CREATE TABLE Persons
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Microsoft SQL Server
SQL CHECK Constraint
* Como le daria un identificativo ala regla de checkMicrosoft SQL Server
SQL CHECK Constraint
+ Cémo le daria un identificativo ala regia de check
CREATE TABLE Persons
i
Pid int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
constraint persons_P_Id_ck CHECK (P_id>0)
'
Microsoft SQL Server
Vistas en SQL
Una vista es una tabla virtual, que viene de una seleccion.
* Sintaxis:
CREATE VIEW view_name AS
SELECT column_name(s}
FROM table_name
WHERE condition
* Nota: Siempre una vista muestra informacién actualizada, la selecci6n se
ejecuta cada vez que el usuario llama ala vista.Microsoft SQL Server
Vistas en SQL
* Puede identificar vistas en la base de datos Northwind?
* Utilizando la base de datos Northwind crear una vista de productos
vigentes. Seleccionando el nombre del producto y sud.
Microsoft SQL Server
Vistas en SQL
* Utilizando la base de datos Northwind crear una vista de productos
vigentes. Seleccionando el nombre del producto y su Id.
CREATE VIEW [Productos Vigentes] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=0
SELECT * FROM [Productos Vigentes]Microsoft SQL Server
Vistas en SQL
* Practiquemos:
Crear una vista que muestre cada producto con un precio unitario mayor
que el precio promedio.
Microsoft SQL Server
Vistas en SQL
+ Practiquemos:
Crear una vista que muestre cada producto con un precio unitario mayor que el
precio promedio.
CREATE VIEW [Productos Sobre Precio Promedio] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
SELECT * FROM [Productos Sobre Precio Promedio]Microsoft SQL Server
Vistas en SQL
* Practiquemos:
Identifique la vista Product Sales for 1997 de la base de datos northwind.
Qué caracteristicas tiene?
Qué informacién despliega esa vista?
* Crear una vista que calcule el total de ventas por cada categoria en 1997.
Microsoft SQL Server
Vistas en SQL
* Practiquemos:
Crear una vista que calcule el total de ventas por cada categoria en 1997.
CREATE VIEW [Ventas Por Categoria 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName
select * from [Ventas Por Categoria 1997]Microsoft SQL Server
Vistas en SQL
* Practiquemos:
Seleccione de la vista Ventas Por Categoria 1997, las ventas para la
categoria Seafood.
Microsoft SQL Server
Vistas en SQL
* Practiquemos:
Seleccione de la vista Ventas Por Categoria 1997, las ventas para la
categoria Seafood.
select * from [Ventas Por Categoria 1997]
WHERE CategoryName="Seafood’Microsoft SQL Server
Actualizacién de Vistas en SQL
* Las vistas pueden ser actualizadas mediante el uso de la siguiente
+ Sintaxis:
ALTER VIEW view_name AS
SELECT column_name(s}
FROM table_name
WHERE condition
Microsoft SQL Server
Actualizacién de Vistas en SQL
* Ejercicio
Como actualizaria la vista Productos Vigentes para que se agregue la
columna categoria.Microsoft SQL Server
n de Vistas en SQL
Actualiza
+ Ejercicio
Como actualizaria a vista Productos Vigentes para que se agregue la columna
categoria.
ALTER VIEW [Productos Vigentes] AS
SELECT ProductID,ProductName, CategoryName
from Categories
JOIN Products
ON Categories CategorylD = Products.CategoryiD
WHERE Discontinued=0
Microsoft SQL Server
Eliminaci6n de Vistas en SQL
* Las vistas pueden ser eliminadas mediante el uso de la siguiente
+ Sintaxis:
DROP VIEW view_nameMicrosoft SQL Server
Eliminacién de Vistas en SQL
* Practiquemos:
Elimine la vista Productos Vigentes
DROP VIEW [Productos Vigentes]
Microsoft SQL Server
Actualizar de datos mediante Vistas
Notas:
* No se puede eliminar una fila si la vista hace referencia a mas de una
tabla base. Solo pueden actualizarse las columnas que pertenecen a una
unica tabla base.
* No se puede insertar una fila si la vista hace referencia a més de una
tabla base.Microsoft SQL Server
Actualizar de datos mediante Vistas
Ejemplo:
USE AdventureWorks2012 ;
60
UPDATE HumanResources.vEmployeeDepartmentHistory
SET StartDate = '20110203', EndDate = GETDATE()
WHERE LastName = 'Smith' AND FirstName = 'Samantha';
6o
Microsoft SQL Server
Insercion de datos mediante Vistas
Notas:
* No se puede eliminar una fila si la vista hace referencia a mas de una
tabla base. Solo pueden actualizarse las columnas que pertenecen a una
unica tabla base.
* No se puede insertar una fila si la vista hace referencia a més de una
tabla base.Microsoft SQL Server
Insercién de datos mediante Vistas
gjemplo:
USE AdventureWorks2012 ;
Go
INSERT INTO HumanResources.vEmployeeDepartmentHistory
(Department, GroupName)
VALUES (‘DETRI', ‘GRUPO_Redes');
GO