Electronica
BASE DE DATOS
TEMA: Vistas, Funciones escalares y funciones tablas
OBJETIVO: Implementar los conocimientos de vistas , funciones escalares y tablas en SQL
MARCO TEORICO:
Vistas
* Una vista es una tabla virtual.
* Se caracteriza porque:
– Se considera que forma parte del esquema externo.
–No tiene una correspondencia a nivel físico
– Se puedeconsultar como cualquier tabla básica.
* Sólo se puede crear vistas en la base de datos actual.
* Los nombres de las vistas deben seguir las reglas que se aplican a los identificadores y ser únicos para cada esquema. Además, el nombre debe ser distinto del de las tablas incluidas en ese esquema.
* La consulta que define la vista no puede incluir la palabra clave INTO.
* La consultaque define la vista no puede incluir la cláusula ORDER BY, a menos que también haya una cláusula TOP en la lista de selección de la instrucción SELECT.
* No se pueden crear vistas temporales, ni vistas dentro de tablas temporales
CREACION DE VISTAS
* Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECTválida.
CREATE VIEW <nombre_vista>
AS
(<sentencia_select>);
. Podemos eliminar la vista a través de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se utilizaría:
DROP VIEW vAlquileres;
* Para la especificación de tablas con información que se accede con frecuencia pero no posee existencia física:
– Información derivadade la relación entre varias tablas.
– Información derivada de la formación de grupos de tuplas (por ejemplo para la obtención de estadísticas).
– En general: información derivada de consultas complejas a la que se accede con frecuencia.
* Como mecanismo de seguridad: creación de vistas con, únicamente, los atributos de las tablas a los cuales se desea permitir acceder a determinadosusuarios.
* Para la creación de esquemas externos.
Funciones Escalares
Las funciones escalares definidas por el usuario devuelven un único valor de datos del tipo definido en la cláusula RETURNS. Las funciones escalares en línea no tienen cuerpo; el valor escalar es el resultado de una sola instrucción. Para una función escalar de múltiples instrucciones, el cuerpo de la función, definidoen un bloque BEGIN...END, contiene una serie de instrucciones Transact-SQL que devuelven el valor único. El tipo devuelto puede ser de cualquier tipo de datos excepto text, ntext, image, cursor y timestamp.
La sintaxis para una función escalar es la siguiente:
CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName> ( -- Lista deparámetros <@Param1, sysname, @p1> <Data_Type_For_Param1, , int>, ... )
-- Tipo de datos que devuelve la función. RETURNS <Function_Data_Type, ,int> AS BEGIN ... END |
Funciones Tabla
Las funciones en línea de multiples sentencias son similares a las funciones en línea exceptoque el conjunto de resultados que devuelven puede estar compuesto por la ejecución de varios consultas SELECT.
Este tipo de función se usa en situaciones donde se requiere una mayor lógica de proceso.
La sintaxis para una funciones de tabla de multi sentencias es la siguiente:
CREATE FUNCTION <Table_Function_Name, sysname, FunctionName> (-- Lista de parámetros <@param1, sysname, @p1> <data_type_for_param1, , int>, ... ) RETURNS -- variable de tipo tabla y su estructura <@Table_Variable_Name, sysname, @Table_Var> TABLE ( <Column_1, sysname, c1> <Data_Type_For_Column1, , int>,...
Regístrate para leer el documento completo.