Está en la página 1de 11

INDICE

1. ENUNCIADOS 1
2. Creación de la BBDD 1
En primer lugar, crearemos un BBDD para poder realizar los distintos ejercicios que se solicitan
posteriormente. 1
Llamaremos a nuestra BBDD “​Empresa​”, la cual contendrá 2 tablas. 1
∙ Empleados 1
∙ Artículos 1
3. Estructura de las Tablas 1
1. ENUNCIADOS
1.1. Realizar un bloque anónimo que muestre el nº total de empleados
del departamento 10.

1.2. Escribir un bloque PL/SQL que asigne valores a dos variables y


determine cuál de las dos es menor o sin son iguales.

a) Usa una estructura IF_THEN_ELSE.

b) Modifica el ejercicio del apartado a para que utilice una


estructura CASE.

1.3. Realizar un programa que encuentre el primer valor N(número par)


para el cual la suma siguiente de los números pares
2+4+6+8+…..+N, exceda de 500.

1.4. Realiza un bloque anónimo que muestre las tablas de multiplicar


del 1 al 5.

1.5. Selecciona el artículo de menor precio de la tabla ARTICULOS y


comprueba si tiene algún pedido, mostrando un mensaje indicando
si ese código tiene o no algún pedido.

* En todos ellos se deberá escribir el pseudocódigo correspondiente y el código


en PL/SQL. Tendrá el mismo valor el pseudocódigo que el código final.

2. Creación de la BBDD
En primer lugar, crearemos un BBDD para poder realizar los distintos ejercicios que se solicitan
posteriormente.
Llamaremos a nuestra BBDD “​Empresa​”, la cual contendrá 2 tablas.

● Empleados
● Artículos

TE DATABASE Empresa;
Empresa;
3. Estructuras y Creación de las Tablas
3.1. Estructura Tablas

EMPLEADOS
EMP_NO INT(4) NOT NULL PRIMARY KEY
APELLIDO VARCHAR(10)
OFICIO VARCHAR(10)
DIR INT(4)
FECHA_AL
T DATE
SALARIO INT(10)
COMISION INT(10)
DEPT_NO INT(2) NOT NULL
ARTICULOS
ARTICULO VARCHAR(20) NOT NULL
COD_FABR INT(3) NOT NULL PRIMARY
ICANTE KEY
PESO INT(3) NOT NULL
CATEGORI
A VARCHAR(10) NOT NULL
PRECIO_VE
NTA INT(4)
PRECIO_C
OSTO INT(4)
EXISTENCI
AS INT(5)

3.2. Creación de las Tablas


TE TABLE EMPLEADOS(
P_NO INT(4) PRIMARY KEY,
ELLIDO VARCHAR(10),
ICIO VARCHAR(10),
R INT(4),
CHA_ALT DATE,
LARIO INT(10),
MISION INT(10),
PT_NO INT(2) NOT NULL);

TE TABLE ARTICULOS(
TICULO VARCHAR(20) NOT NULL,
D_FABRICANTE INT(3) NOT NULL PRIMARY KEY,
SO INT(3) NOT NULL ,
TEGORIA VARCHAR(10) NOT NULL,
ECIO_VENTA INT(4),
ECIO_COSTO INT(4),
ISTENCIAS INT (5));

4. Inserción de Datos
RT INTO EMPLEADOS VALUES (1,’Martinez’,’Vendedor’,101,'2005-04-01',1200,120,10);
RT INTO EMPLEADOS VALUES (2,’Jimenez’,’Director’,102,'2000-10-01',3000,300,20);
RT INTO EMPLEADOS VALUES (3,’Perez’,’Vendedor’,103,'2003-05-01',1500,120,10);
RT INTO EMPLEADOS VALUES
(4,’Gonzalez’,’Publicista’,104,'2000-03-01',2000,150,30);
RT INTO EMPLEADOS VALUES (5,’Garcia’,’Vendedor’,105,'2000-02-01',1200,120,10);
RT INTO EMPLEADOS VALUES
(6,’Hernandez’,’Diseñador’,106,'2012-03-01',1500,100,40);
RT INTO EMPLEADOS VALUES
(7,’Gomez’,’Administrativo’,107,'2008-10-01',1500,100,50);
RT INTO EMPLEADOS VALUES (8,’Nieto’,’Asesor’,108,'2010-01-01',1500,0,60);
RT INTO EMPLEADOS VALUES (9,’Soriano’,’Vendedor’,109,'2002-01-01',1200,120,10);
RT INTO EMPLEADOS VALUES (10,’Sanz’,’Diseñador’,110,'2001-11-01',1500,100,40);

RT INTO ARTICULOS VALUES ('Macarrones',10, 1, 'Primera',100,98,120);


RT INTO ARTICULOS VALUES ('Tallarines',20, 2, 'Primera',120,100,100);
RT INTO ARTICULOS VALUES ('Tallarines',30, 1, 'Segunda',99,50,100);
RT INTO ARTICULOS VALUES ('Macarrones',40, 1, 'Tercera',80,50,100);
RT INTO ARTICULOS VALUES ('Atun',50, 3, 'Primera',200,150,220);
RT INTO ARTICULOS VALUES ('Atun',60, 3, 'Tercera',100,50,220);
RT INTO ARTICULOS VALUES ('Sardinillas',70, 1,'Primera',250,200,200);
RT INTO ARTICULOS VALUES ('Sardinillas',80, 1,'Segunda',200,160,200);
RT INTO ARTICULOS VALUES ('Mejillones',90, 1,'Tercera',90,50,200);
RT INTO ARTICULOS VALUES ('Mejillones',100, 1,'Primera',200,150,300);

5. Ejercicios
5.1. Realizar un bloque anónimo que muestre el nº total de empleados
del departamento 10.

PROCEDURE IF EXISTS empleadosTotales10;


MITER //
TE PROCEDURE empleadosTotales10()
N
ELECT COUNT(*) FROM empleados WHERE dept_no=10;

MITER ;
5.2. Escribir un bloque PL/SQL que asigne valores a dos variables y
determine cuál de las dos es menor o sin son iguales.

a) Usa una estructura IF_THEN_ELSE.

PROCEDURE IF EXISTS menoresIguales;


MITER //
TE PROCEDURE menoresIguales(IN n INTEGER, m INTEGER)
N
F n = m THEN
SELECT “Los dos números son iguales”;

ELSE
IF n > m THEN
SELECT “El primer número es mayor”;
ELSE
SELECT “El segundo número es mayor”;
END IF;
ND IF;

MITER ;

b) Modifica el ejercicio del apartado a para que utilice una


estructura CASE.

PROCEDURE IF EXISTS menoresIguales2;


MITER //
TE PROCEDURE menoresIguales2(IN n INTEGER, m INTEGER)
N
ASE
WHEN n = m THEN
SELECT “Los dos números son iguales”;
WHEN n > m THEN
SELECT “El primer número es mayor”;
ELSE
SELECT “El segundo número es mayor”;
ND CASE;

MITER ;

5.3. Realizar un programa que encuentre el primer valor N(número par)


para el cual la suma siguiente de los números pares
2+4+6+8+…..+N, exceda de 500.

5.4. Realiza un bloque anónimo que muestre las tablas de multiplicar


del 1 al 5.

PROCEDURE IF EXISTS tablasMultiplicar;


MITER //
TE PROCEDURE tablasMultiplicar()
N
TE TEMPORARY TABLE multiplicar (Tabla_1 INTEGER, Tabla_2 INTEGER,
Tabla_3 INTEGER, Tabla_4 INTEGER, Tabla_5 INTEGER);
ASE
WHEN n = m THEN
SELECT “Los dos números son iguales”;
WHEN n > m THEN
SELECT “El primer número es mayor”;
ELSE
SELECT “El segundo número es mayor”;
ND CASE;

MITER ;

5.5. Selecciona el artículo de menor precio de la tabla ARTICULOS y


comprueba si tiene algún pedido, mostrando un mensaje indicando
si ese código tiene o no algún pedido.

* En todos ellos se deberá escribir el pseudocódigo correspondiente y el código


en PL/SQL. Tendrá el mismo valor el pseudocódigo que el código final.

También podría gustarte