PRACTICASQL1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

PRACTICA

Dada la siguiente base de datos:

CREATE DATABASE PRACTICA1SQLavanzado


GO
USE PRACTICA1SQLavanzado
GO
CREATE TABLE CARGO(
CODC VARCHAR(3) NOT NULL,
NOMCARGO VARCHAR(15),
SUELDO INT
PRIMARY KEY(CODC)
)

CREATE TABLE EMPLEADO(


CODE VARCHAR(3) NOT NULL,
NOMEMP VARCHAR(15),
APEEMP VARCHAR(15)
PRIMARY KEY (CODE)
)

CREATE TABLE ASIGNACION(


CODE VARCHAR(3) NOT NULL,
CODC VARCHAR(3) NOT NULL,
FECHAA DATE
FOREIGN KEY(CODE) REFERENCES EMPLEADO(CODE),
FOREIGN KEY(CODC) REFERENCES CARGO(CODC)
)

USE PRACTICA1SQLavanzado
GO
INSERT INTO CARGO VALUES('C1','SECRETARIA',5000)
INSERT INTO CARGO VALUES('C2','TECNICO I',2000)
INSERT INTO CARGO VALUES('C3','TECNICO II',2500)

INSERT INTO EMPLEADO VALUES('E1','JUANA','PARISACA')


INSERT INTO EMPLEADO VALUES('E2','RAMON','MENDEZ')
INSERT INTO EMPLEADO VALUES('E3','MARIA','GOMEZ')
INSERT INTO EMPLEADO VALUES('E4','ALVARO','MARTINEZ')
INSERT INTO EMPLEADO VALUES('E5','ELOY','SANTOS')
INSERT INTO ASIGNACION VALUES('E1','C1','01-02-2012')
INSERT INTO ASIGNACION VALUES('E2','C2','10-03-2012')
INSERT INTO ASIGNACION VALUES('E3','C3','01-22-2013')
INSERT INTO ASIGNACION VALUES('E4','C3','06-30-2015')
INSERT INTO ASIGNACION VALUES('E5','C2','04-15-2015')

select * from cargo


select * from empleado
select * from asignacion

1.Defina una función que devuelva el monto que se paga a un


determinado cargo.
create function dbo.ejer1(@codc varchar(3)) returns decimal
as
begin
declare @monto decimal
select @monto=SUELDO
from CARGO
return @monto
end
go
print 'El sueldo ' +str(dbo.ejer1('c1'))

2.Defina una función que devuelva un nuevo código de un empleado


formado por las dos primeras letras de su nombre más la cantidad de
caracteres de su nombre más las dos primeras letras de su apellido y la
cantidad de caracteres de su apellido.
CREATE FUNCTION DBO.codigo2(@id varchar(3))
RETURNS varchar(200)
AS
BEGIN
declare @codem varchar(200)

SELECT @codem = SUBSTRING(NOMEMP, 1, 2) + trim(str(len(NOMEMP)))


+SUBSTRING(APEEMP, 1, 2)+trim(str(len(APEEMP)))
from EMPLEADO
where CODE = @id
RETURN @codem
END

print DBO.codigo2 ('E1')


print 'el codigo es: '+ dbo.codigo2('E1')
3.Defina una función que devuelva una tabla con el nombre de los cargos y la cantidad
de empleados en cada cargo

Create function dbo.E3 ()


returns table
as
return (select NOMCARGO, count (CODE) as 'cantidad' from CARGO c inner join
ASIGNACION a on c.CODC=a.CODC
group by NOMCARGO
)
go
select * from dbo.E3()

5.

alter procedure backcuppractica


as
begin
drop table copia_cargo
select * into copia_cargo from CARGO

drop table copia_empleado


select * into copia_empleado from EMPLEADO

drop table copia_asignacion


select * into copia_asignacion from ASIGNACION
end
go
exec backcuppractica

También podría gustarte