Está en la página 1de 5

--1

--Tipos de Constrain
--CHECK
--UNICODE
--FOREIGN KEY

--2
--Difencias entre Convert y CAST

-- Convert es una funcion especifica de Sql SERVER al ser una funcion propia
mejora el tiempo de ejecucion.
--se recomienta para el uso de Fechas
-- Cast es un estandar de ANSI-SQL si queremos una consulta que sea leida tanto en
Oracle SQL y en Microsoft
--es recomendable usar Cast

--PARTE PRACTICA
create database Evaluacion

Use Evaluacion

create table
tbDepartamentos (
Depto_ID int primary key identity(1,1),
Depto_Descripcion NVARCHAR(50) NOT NULL );

CREATE TABLE tbMunicipios


(
Muni_Id int primary key identity(1,1),
Muni_Descripcion NVARCHAR(50),
Depto_ID INT,
CONSTRAINT FK_tbMunicipios_tbDepartamentos_Depto_ID
FOREIGN KEY (Depto_ID) REFERENCES tbDepartamentos(Depto_ID)
);

CREATE TABLE tbColonias


(
Col_Id int primary key identity(1,1),
Col_Descripcion NVARCHAR(50),
Muni_Id INT,
CONSTRAINT FK_tbColonias_tbMunicipios_Muni_Id
FOREIGN KEY (Muni_Id) REFERENCES tbMunicipios(Muni_Id)
);

CREATE TABLE tbSucursales


(
Suc_Id int primary key identity(1,1),
Suc_Descripcion NVARCHAR(50)
);

CREATE TABLE tbEmpleados(


Emp_Id INT PRIMARY KEY IDENTITY(1,1),
Emp_Identidad VARCHAR (13)UNIQUE,
Emp_PNombre NVARCHAR(100)NOT NULL,
Emp_SNombre NVARCHAR(100),
Emp_PApelldio NVARCHAR(100)NOT NULL,
Emp_SApelldio NVARCHAR(100),
Emp_Sexo CHAR(1),
CONSTRAINT CK_Sexo CHECK(Emp_Sexo IN ('F', 'M')),
Emp_EstCivil CHAR(1),
Emp_Edad CHAR(2),
CONSTRAINT CK_EstCivil CHECK(Emp_EstCivil IN ('S','C','V','D','U')),
Col_Id INT,
CONSTRAINT FK_tbEmpleados_tbColonias_Col_Id
FOREIGN KEY (Col_Id) REFERENCES tbColonias(Col_Id),
Emp_DirExacta NVARCHAR(100),
Suc_Id INT,
CONSTRAINT FK_tbSucursales_tbEmpleados_Suc_Id
FOREIGN KEY (Suc_Id) REFERENCES tbSucursales(Suc_Id)
);

--2
--------------------------------------------------------
CREATE PROCEDURE SP_Departamentos_Insert

@Dept_Descripcion nvarchar(50)

AS
BEGIN
INSERT INTO tbSucursales
VALUES (@Dept_Descripcion)

END
GO

CREATE PROCEDURE SP_Departamento_Update

@Depto_Descripcion nvarchar(50)

AS
BEGIN
update [dbo].[tbDepartamentos]
set
[Depto_Descripcion] = @Depto_Descripcion

where Depto_ID=Depto_id
END
GO

CREATE PROCEDURE SP_Departamento_Delete

@Depto_Descripcion nvarchar(50)

AS
BEGIN
Delete [dbo].[tbDepartamentos]

where Depto_ID=Depto_id
END
GO
-----
CREATE PROCEDURE SP_Sucursales_Insert
@Suc_Descripcion nvarchar(50)

AS
BEGIN
INSERT INTO tbSucursales
VALUES (@Suc_Descripcion)

END
GO

CREATE PROCEDURE SP_Sucursales_Update

@Suc_Descripcion nvarchar(50)

AS
BEGIN
update [dbo].[tbSucursales]
set
[Suc_Descripcion] = @Suc_Descripcion

where suc_ID=suc_id
END
GO

CREATE PROCEDURE SP_Sucursales_Delete

@Suc_Descripcion nvarchar(50)

AS
BEGIN
Delete [dbo].[tbSucursales]

where suc_ID=suc_id
END
GO

--3
----------------------------------------

INSERT INTO tbSucursales


VALUES ('CENTRO'),
('TERMINAL'),
('BOULEVARD DEL ESTE'),
('SEGUNDO ANILLO'),
('CITY MALL')

INSERT INTO tbDepartamentos


VALUES ('ATLANTIDA'),
('CORTES'),
('OOPAN'),
('YORO'),
('FRANCISCO MORAZAN')

INSERT INTO tbMunicipios


VALUES ('LA LIMA', '2'),
('SAN PEDRO SULA', '2'),
('VILLANUEVA', '2'),
('COFRADIA', '2'),
('POTRERILLOS', '2')

INSERT INTO tbColonias


VALUES ('COL. LOUSIANA', '2'),
('BO. EL CENTRO', '2'),
('BARANDILLAS', '2'),
('JARDINES DEL VALLE', '2'),
('VALLE DE SULA', '2')

INSERT INTO tbEmpleados


VALUES
('0101190800945','JOSE','ROBERTO','ORELLANA','GUARDADO','M','C','32','2','BLOQUE
43','2'),
('0101191000079','LUIS','JOSE','RAMOS','ANTUNEZ','M','C','31','2','PASAJE 21','2'),
('0101191300017','DAVID','LUIS','RUIZ','FUENTES','M','U','25','2','AVENIDA
23','2'),
('0101191300136','ANA','LUISA','RAMOS','LOPEZ','F','S','46','2','CALLE 23','2'),
('0101191400040','BRIGIDO','ANTONIO','RAMOS','FUENTES','M','C','33','2','BLOQUE
3','2'),
('0101191400155','JUAN','RAMON','RAMOS','ROSALES','M','C','27','2','CALLE 23','2'),
('0101191500062','MIGUEL','ANGEL','LARA','CHEVEZ','M','C','39','2','BLOQUE 3','2'),
('0101191500109','FREDY','ALEXANDER','GUERRA','RIVAS','M','C','49','2','CALLE
29','2'),
('0101191500142','LEYDI','CAROLINA','RAMOS','BAUTISTA','F','S','24','2','AVENIDA
2','2'),
('0101191500158','JOSE','ADAN','TEJEDA','GUTIERREZ','M','C','22','2','CALLE
21','2')

--4
---------------------------------------------
create VIEW V_Colonias_List
as
select

c.Col_Descripcion,
m.[Muni_Descripcion],
d.[Depto_Descripcion] from tbMunicipios as m

inner join [dbo].[tbDepartamentos] as d on d.[Depto_ID]=m.[Depto_ID]


inner join [dbo].[tbColonias] as c on c.[Muni_Id]=m.Muni_Id

--5
----------------------------------------

create VIEW V_Empleados_List


as
select
Emp_Identidad as Identidad,
Emp_PNombre +' '+ Emp_SNombre +' '+Emp_Papelldio+' '+Emp_sApelldio as 'Nombre
Completo',
Emp_Edad as Edad

from tbEmpleados

where Emp_Edad BETWEEN '21' AND '59'

--6
------------------------------------------

create VIEW V_Empl_EstCivil_List


as
select
Emp_Identidad as Identidad,
Emp_PNombre +' '+ Emp_SNombre +' '+Emp_Papelldio+' '+Emp_sApelldio as 'Nombre
Completo',
Emp_Edad as Edad,

CASE Emp_EstCivil WHEN 'S' THEN 'SOLTERO' WHEN 'C' THEN 'CASADO' WHEN 'U' THEN
'UNION LIBRE'
WHEN 'D' THEN 'DIVORSIADO'WHEN 'V' THEN 'VIUDO'END AS 'Estado Civil'

from tbEmpleados

where Emp_Edad BETWEEN '30' AND '78' and [Emp_EstCivil]='S'

--7
-------------------------------------
CREATE PROCEDURE SP_Depto_Muni
@Depto_Id INT
AS
BEGIN
SELECT muni.Muni_Descripcion, depto.Depto_Descripcion
FROM tbDepartamentos depto, tbMunicipios muni
WHERE muni.Depto_Id = @Depto_Id AND depto.Depto_Id = muni.Depto_Id
END
GO

--8
-------------------------------------

select
Emp_Identidad as Identidad,
Emp_PNombre +' '+ Emp_SNombre +' '+Emp_Papelldio+' '+Emp_sApelldio as 'Nombre
Completo',
Emp_Edad as Edad,
CASE Emp_Sexo WHEN 'F' THEN 'FEMENINO' WHEN 'M' THEN 'MASCULINO' END AS 'Sexo',
CASE Emp_EstCivil WHEN 'S' THEN 'SOLTERO' WHEN 'C' THEN 'CASADO' WHEN 'U' THEN
'UNION LIBRE'
WHEN 'D' THEN 'DIVORSIADO'WHEN 'V' THEN 'VIUDO'END AS 'Estado Civil',
c.[Col_Descripcion],
m.Muni_Descripcion,
d.Depto_Descripcion

from tbEmpleados as e

inner join tbColonias as c on c.Col_Id=e.Col_Id


inner join tbMunicipios as m on m.Muni_Id=c.Muni_Id
inner join tbDepartamentos as d on d.Depto_ID=m.Depto_ID

También podría gustarte