Skip to content

Latest commit

 

History

History
133 lines (97 loc) · 2.31 KB

Envios.md

File metadata and controls

133 lines (97 loc) · 2.31 KB

SQL Envios

Created By: Miguel López Date: September 10, 2018 2:19 PM Tested ON: Miscrosoft SQL Server 2017


INSTRUCCIONES

REPLICA EL SIGUIENTE MODELO DE DATOS:

ENTREGAS:

Script AQUI


CREACIÓN DE TABLAS

CREATE DATABASE Envios
GO
USE Envios
GO
CREATE TABLE Sucursales(
SucId int NOT NULL,
SucNombre varchar(30) NOT NULL,
SucDomicilio varchar(30) NOT NULL,
SucTelefono char(10)
)

CREATE TABLE Clientes(
CteId INT NOT NULL,
CteNombre varchar(30) NOT NULL,
CteApellidos varchar(30) NOT NULL,
CteDomicilio varchar(30) NOT NULL,
CteSexo char(1) NOT NULL,
CteRFC char(13) NOT NULL,
Asesor int
)

CREATE TABLE Envios(
SucId INT NOT NULL,
Folio INT NOT NULL,
Fecha datetime NOT NULL,
Importe numeric(10,2) NOT NULL,
Peso numeric(10,2) NOT NULL,
CteId INT NOT NULL
)

LLAVES PRIMARIAS

ALTER TABLE Sucursales ADD CONSTRAINT PK_Sucursales PRIMARY KEY(SucId)

ALTER TABLE Clientes ADD CONSTRAINT PK_Clientes PRIMARY KEY(CteId)

ALTER TABLE Envios ADD CONSTRAINT PK_Envios PRIMARY KEY(SucId,Folio)

LLAVES FORÁNEAS

ALTER TABLE Clientes ADD CONSTRAINT FK_Clientes_Clientes
FOREIGN KEY(Asesor) REFERENCES Clientes(CteId)

ALTER TABLE Envios ADD CONSTRAINT FK_Envios_Clientes
FOREIGN KEY(CteId) REFERENCES Clientes(CteId)

ALTER TABLE Envios ADD CONSTRAINT FK_Envios_Sucursales
FOREIGN KEY(SucId) REFERENCES Sucursales(SucId)

INSERTAR DATOS


CONSULTAS

SELECT * FROM Sucursales;
SELECT * FROM Clientes;
SELECT * FROM Envios;

VISTAS

Asesor

CREATE VIEW vw_asesor AS
SELECT C.*,AseNombre = A.CteNombre,AseApellidos = A.CteApellidos,AseDomicilio = A.CteDomicilio,
AseSexo = A.CteSexo,AseRFC = A.CteRFC
FROM Clientes A
INNER JOIN Clientes C ON C.CteId = A.Asesor

Envios

CREATE VIEW vw_envios AS
SELECT E.Folio, E.Fecha, E.Importe, E.Peso, S.SucNombre, S.SucDomicilio, S.SucTelefono, A.* FROM Envios E
INNER JOIN Sucursales S ON E.SucId = S.SucId
INNER JOIN vw_asesor A ON E.CteId = A.CteId
SELECT * FROM vw_asesor
SELECT * FROM vw_envios