Anda di halaman 1dari 6

VISTAS EN MYSQL

Permiten mostrar la información proveniente de una o más tablas relacionadas .

CREAR VISTAS
Una vista se puede obtener de 2 formas:
A) Usando Script
CREATE VIEW NOMBRE
AS
INSTRUCCIÓN SELECT

Ejemplos de vistas provenientes de una tabla(poco usado)


Create View Vista1
As
SELECT CODIGO, APELLIDOS, SUELDO FROM EMPLEADO

Create View Vista2


As
SELECT CODIGO, APELLIDOS, SUELDO FROM EMPLEADO WHERE SEXO=0

Ejemplos de vistas provenientes de tablas relacionadas (uso frecuente)

Por lo general la vista se realiza de la tabla hija y esta es la que según los enlaces con las tablas
padres, jala los campos de estos.
En este ejemplo, se obtendrá la vista indicada realizando el siguiente script:

Create view Vista3


As
SELECT B.FIELD1,B.FIELD2,A.CAMPO2,A.CAMPO4,A.CAMPO5 FROM TABLA1 A,TABLA2 B WHERE
A.CAMPO1=B.CAMPO1
CREATE VIEW VISTA2
AS
SELECT B.FIELD1,B.FIELD2,A.CAMPO2,A.CAMPO5,C.CM2,C.CM3,C.CM4 FROM TABLA1 A,TABLA2
B,TABLA3 C WHERE A.CAMPO1=B.CAMPO1 AND B.FIELD1=C.FIELD1

Nota: Para borrar una vista se usa:


Drop View NombreVista

Practica Dirigida:
Crear la fuente (Base de datos, tablas y registros) en Sql Sevrer

CREATE DATABASE INDUSTRIA


USE INDUSTRIA

CREATE TABLE CARGO(CODCAR INT PRIMARY KEY, DESCRIPCION VARCHAR(30))

CREATE TABLE EMPLEADO(CODEMP INT PRIMARY KEY,APELLIDOS VARCHAR(30),


NOMBRES VARCHAR(30),SEXO CHAR(1),
CODCAR INT, FOREIGN KEY(CODCAR) REFERENCES CARGO(CODCAR))
insert into cargo values(1,'GERENTE'),(2,'CONTADOR'),(3,'SECRETARIA'),
(4,'VENDEDOR'),(5,'ALMACENERO')

insert into empleado values(1,'REYES ORE','JUAN CARLOS',1,2),


(2,'LOPEZ MENDO','ANA CECICLIA',0,3),
(3,'JUAREZ LI','JUAN PEDRO',1,5),
(4,'ODRIA JIMENEZ','VICTOR JOSE',1,4),
(5,'HUAMAN LINARES','SUSANA LIDIA',0,3),
(6,'VILCHEZ GARCIA','HUGO JOSE',1,4),
(7,'MORENO PEREZ','MARCO SAUL',1,1),
(8,'PALACIOS JARAMILLO','SOLEDAD',0,4),
(9,'MONTERO PORRAS','FRANK JUAN',1,5),
(10,'CARPIO HUAMAN','LUIS JOSE',1,4),
(11,'PERALES RIOS','PEDRO MARCO',1,5),
(12,'WIESSE MORAN','ALEYDA',0,4)

Crear la siguiente vista:


Codigo Apellidos Nombres Sexo Cargo
CREATE VIEW VISTA1
AS
SELECT
EMPLEADO.CODEMP,EMPLEADO.APELLIDOS,EMPLEADO.NOMBRES,EMPLEADO.SEXO,CARGO.D
ESCRIPCION FROM EMPLEADO ,CARGO WHERE EMPLEADO.CODCAR=CARGO.CODCAR
Crear la fuente (Base de datos, tablas y registros) en Sql Sevrer
BD: MAVILA

create database Mavila


go
use Mavila
go

create table cliente(idcli char(5) primary key not null,


razcli varchar(45),dircli varchar(45),foncli char(8))
go

create table empleado(idemp char(2) primary key not null,


apeemp varchar(45),sexemp char(1),sueemp numeric(9,3))
go
create table factura(idfac char(6) primary key not null,
idcli char(5), foreign key(idcli) references cliente(idcli),
idemp char(2), foreign key(idemp) references empleado(idemp),
fecfac date,totfac numeric(9,2),activo char(1))
go

insert into cliente values('00001','Moinsa S.A','Union 384','234567'),


('00002','Trutex S.R.L','Ayacucho 495','294743'),
('00003','Nicolini S.A','Junin 887','224566'),
('00004','Morin S.A','La Mar 389','283161'),
('00005','Pandora S.A','Los Jeranios 345','243171'),
('00006','Ticos S.R.L','San Pedro 585','227575'),
('00007','Bentin S.A','Ayacucho 102','288841'),
('00008','Salinas S.A','Av Peru 696','283461'),
('00009','Tours S.R.L','Ayacucho 4094','285677'),
('00010','Chicamo S.A','Av. Brasil 885','283484'),
('00011','Jarapa S.R.L','Av. España 455','238585')
go

insert into empleado values('01','Jacinto Rios',1,1000),


('02','Pilar Odria',0,670),
('03','Rosa Perez',1,800),
('04','Carlos Uriol',1,1400),
('05','Mario Perez',1,700)
go

insert into factura values('f00001','00002','02','2007/01/10',200,1),


('f00002','00001','04','2007/01/10',70,1),
('f00003','00004','01','2007/01/12',175,1),
('f00004','00002','02','2007/02/12',650,1),

('f00005','00003','02','2007/02/22',160,1),
('f00006','00001','03','2007/03/02',458,1),
('f00007','00002','05','2007/03/15',58,1),
('f00008','00006','03','2007/03/16',60,1),
('f00009','00002','01','2007/04/10',125,1),
('f00010','00001','04','2007/04/13',60,1),
('f00011','00003','02','2007/04/23',93,1),
('f00012','00001','04','2007/04/04',160,1),
('f00013','00003','01','2007/04/24',58,1),
('f00014','00001','03','2007/05/02',200,1),
('f00015','00004','04','2007/05/12',35,1),
('f00016','00002','04','2007/05/22',40,1),
('f00017','00002','04','2007/06/03',60,1),
('f00018','00001','01','2007/06/13',193,1),
('f00019','00001','01','2007/06/14',40,1),
('f00020','00003','01','2007/07/01',35,1),
('f00021','00004','02','2007/07/11',120,1),
('f00022','00001','03','2007/07/21',25,1),
('f00023','00001','03','2007/08/05',180,1),
('f00024','00001','03','2007/08/05',200,1),
('f00025','00001','03','2007/08/15',100,1),
('f00026','00004','02','2007/09/01',60,1),
('f00027','00001','02','2007/09/21',158,1),
('f00028','00002','01','2007/09/22',25,1),
('f00029','00002','01','2007/10/12',60,1),
('f00030','00002','01','2007/10/22',40,1),
('f00031','00002','01','2007/11/12',93,1),
('f00032','00003','04','2007/11/15',50,1),
('f00033','00001','04','2007/11/25',180,1),
('f00034','00001','04','2007/11/26',60,1),
('f00035','00002','03','2007/12/06',40,1),
('f00036','00002','03','2007/12/16',100,1),
('f00037','00002','03','2007/12/21',170,1),
('f00038','00002','04','2007/12/31',60,1),
('f00039','00001','02','2008/01/05',100,1),
('f00040','00002','01','2008/01/15',120,1),
('f00041','00002','01','2008/02/01',155,1)
go
Crear la siguiente vista:
a)
Alias Nro Factura Atendido Por Fecha Facturacion Total
Campo Idfac Apeemp Fecfac Totfac
Tabla Factura Empleado Factura Factura
b)
Alias Nro Factura Cliente Direccion Total Igv (18%) Neto
Campo IdFac Razcli Dircli Totfac
Tabla Factura Cliente Cliente Factura

c)
Alias Nro Factura Cliente Atendido Por Año
Campo IdFac RazCli Apeemp Fecfac
Tabla Factura Cliente Empleado Factura

CREATE VIEW LETRAC


AS
SELECT A.IDFAC AS ‘Nro Factura’,B.RAZCLI AS Cliente,C.APEEMP AS ‘ATENDIDO POR’,A.FECFAC
AS AÑO FROM FACTURA A,CLIENTE B,EMPLEADO C
WHERE A.IDCLI=B.IDCLI AND A.IDEMP=C.IDEMP