Ejercicios de Base de Datos
Ejercicios de Base de Datos
Ejercicios de Base de Datos
UNAMBA
Tipos de Datos
Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios
sinnimos vlidos reconocidos por dichos tipos de datos. Los tipos de datos primarios
son:
Tipo de Datos Longitud Descripcin
Para consultas sobre tabla adjunta de productos de
BINARY
1 byte
bases de datos que definen un tipo de datos Binario.
BIT
1 byte
Valores Si/No True/False
BYTE
1 byte
Un valor entero entre 0 y 255.
Un nmero incrementado automticamente (de tipo
COUNTER
4 bytes
Long)
Un entero escalable entre 922.337.203.685.477,5808 y
CURRENCY 8 bytes
922.337.203.685.477,5807.
DATETIME
8 bytes
Un valor de fecha u hora entre los aos 100 y 9999.
Un valor en punto flotante de precisin simple con un
rango de - 3.402823*1038 a -1.401298*10-45 para
SINGLE
4 bytes
valores negativos, 1.401298*10- 45 a 3.402823*1038 para
valores positivos, y 0.
Un valor en punto flotante de doble precisin con un
rango de - 1.79769313486232*10308 a
DOUBLE
8 bytes
-4.94065645841247*10-324 para valores negativos,
4.94065645841247*10-324 a 1.79769313486232*10308
para valores positivos, y 0.
E.G.A. - N.L.C.F.
2 bytes
4 bytes
1 byte por
LONGTEXT
carcter
Segn se
LONGBINARY
necesite
1 byte por
TEXT
carcter
UNAMBA
E.G.A. - N.L.C.F.
UNAMBA
Operacin
ADD
COLUMN
ADD
DROP
COLUMN
DROP
Descripcin
Se utiliza para aadir un nuevo campo a la tabla, indicando el
nombre, el tipo de campo y opcionalmente el tamao (para campos
de tipo texto).
Se utiliza para agregar un ndice de multicampos o de un nico
campo.
Se utiliza para borrar un campo. Se especifica nicamente el nombre
del campo.
Se utiliza para eliminar un ndice. Se especifica nicamente el
nombre del ndice a continuacin de la palabra reservada
CONSTRAINT.
Ejercicios de aplicacin
En el modelo de la base de datos acadmico realice lo siguiente:
1.Agregar un campo nota_ingreso numeric(2,2) a la tabla estudiante
alter table estudiante add nota_ingreso numeric(2,2)
2.Agregar un campo sexo varchar(2) a la tabla estudiante
3.Agregar un campo fecha_nacimiento datetime a la tabla estudiante
4.Modificar el campo sexo por sexo varchar(1)
5.Agregar un campo nro_hermanos a la tabla estudiante
6.Agregar un campo lugar a la tabla carrera_profesional
7.Agregar un campo titulo_prefesional a la tabla docente
8.Modificar el tipo de dato del campo nro_hermanos por numeric(2,0)
E.G.A. - N.L.C.F.
UNAMBA
Operadores lgicos
Operador Uso
AND
OR
NOT
Operadores de comparacin
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
>=
Igual que
BETWEEN
LIKE
In
Funciones de Agregado
Las funciones de agregado se usan dentro de una clusula SELECT en grupos de
registros para devolver un nico valor que se aplica a un grupo de registros.
Funcin Descripcin
AVG
E.G.A. - N.L.C.F.
UNAMBA
determinado
COUNT Utilizada para devolver el nmero de registros de la seleccin
SUM
MAX
MIN
E.G.A. - N.L.C.F.
UNAMBA
Consultas de seleccin
1.Mostrar todos los estudiantes de nuestra tabla Estudiante
2.Mostrar el apellido paterno, apellido materno, nombres y sexo, de aquellos estudiantes
con nota de ingreso aprobatorio
3.Mostrar el cdigo, ap, am, y nombres de aquellos estudiantes de sexo femenino
4.Mostrar el cdigo de escuela, cdigo, ap, am, nombres ordenado por escuela
profesional
5.Mostrar todos los datos de los estudiantes ordenado por escuela y dentro de este en
orden alfabtico, para tener una mejor visin
6.Mostrar el cdigo de todos los estudiantes matriculados en el semestre 2006-1
7.Mostrar todos los estudiantes nacidos antes de 1990
8.Mostrar todos los estudiantes nacidos entes de 1980 y ordenado por cdigo de
estudiante en forma descendente
9.Mostrar todos los estudiantes de la escuela de Ingeniera Informtica y Sistemas
10.Mostrar todo los estudiantes que no sean de la escuela de Ingeniera Informtica y
Sistemas
11.Mostrar a los estudiantes que tienen entre 2 a 5 hermanos (between)
12.Mostrar a los estudiantes que tienen 1 de 5 a ms hermanos (not between)
13.Mostrar las escuelas situados en Tamburco y Abancay (in())
14.Mostrar los estudiantes que son femeninos y cuya nota de ingreso sea mayor a 11
15.Mostrar los estudiantes que son de la escuela de Ing. Informtica y son masculinos
16.Mostrar a los estudiantes que no son de la escuela de Administracin de empresas e
Ingeniera de minas
17.Mostrar aquellos estudiantes que ingresaron con una nota entre 7 y 15
18.Mostrar a los docentes cuyo apellido paterno termine con la letra Z (like)
19.Mostrar aquellos estudiantes que cuyo nombre empiece con la letra A y pertenezca a
la escuela de Ing. Agroindustrial
20.Mostrar aquellos estudiantes cuyo nombre termine con la letra A y ordenar por
apellido paterno en forma ascendente
21.Mostrar todos los docentes que no son ingenieros
22.Mostrar todos los estudiante desaprobados en forma descendente
23.Mostrar las diferentes escuelas de la tabla estudiante (distinct)
24.Mostrar los distintos estudiantes que registraron su matricula
25.Justificar el resultado de la siguiente consulta SELECT AP_ESTUDIANTE
DISTINCT SEXO FROM ESTUDIANTE, Indicar que ocurre y modificar para que
todo baya bien
26.Seleccionar las diferentes ttulos que tienen los docentes
27.Seleccionar las notas de un determinado estudiante en un determinado semestre
E.G.A. - N.L.C.F.
UNAMBA
Consultas 2
1.Calcular el promedio de nota con el que ingresaron los estudiantes (avg)
2.Calcular el promedio de nota con el que ingresaron las estudiantes mujeres de la
Escuela de Administracin de empresas.
3.Calcular el promedio de hermanos de los estudiantes varones cuyo apellido comienza
con la letra A.
4.Calcular al estudiante varn que tiene la mayor nota de ingreso.
5.Calcular el ltimo puesto en ingresar a la Escuela de Ingeniera Informtica y
Sistemas.
6.Calcular el promedio de ingreso, mostrando el nmero de estudiantes de la escuela de
Ing. de Minas.
7.Encontrar la nota de ingreso ms alta, mas bajo y mostrar la diferencia entre ambos
de la Escuela de Ing. Agroindustrial.
8.Mostrar las notas de ingreso mayores para cada escuela.
9.Mostrar aquellas escuelas que tiene ms de 12 estudiantes.
10.Mostrar el nmero de varones que existe por cada escuela.
11.Mostrar el nmero de varones y mujeres estudiantes
12.Calcular el promedio de notas de ingreso, diferencia entre el mximo y mnimo nota
de ingreso de cada escuela, indicando el nmero de estudiantes por escuela.
13.Calcular el nmero de estudiantes varones y mujeres por escuela
14.Agregar un campo Salario float a la tabla docente, y llenar con los datos
respectivos
15.Calcular la suma total del salario que cobran en docentes.
16.Calcular la cantidad de estudiantes de sexo varn que tienen una nota >=9
17.Mostrar a los docentes ordenado ascendentemente teniendo como salario, el nuevo
salario + un plus del 10% de su salario
18.Mostrar a los docentes decrementando su salario en un 15%
E.G.A. - N.L.C.F.
UNAMBA
Consultas de Combinacin
JOIN
Se usa para combinar resultados entre varias tablas. se recomienda usar Join ya que
consume menos recursos.
Consultas internas
Sintaxis:
Select TablaPrincipal.Campo, Tablaconlaquecombinar.Campo
From TablaPrincipal
Inner Join / Full Join Tablaconlaquecombinar
On
Condicin para combinar los campos
oInner Join: Indica que combine los campos con resultados comunes
oFull Join: Indica que combine todos los campos aunque los resultados sean
diferentes.
Consultas externas
Select tablaprincipal.campo, tablaacombinar.campo
From tablaprincipal
left join / right join / cross join tabla
on condicin
oleft Join: Indica que muestre todos los resultados de la columna de la izquierda
oRight Join: Indica que muestre todos los resultados de la columna de la derecha
oCross Join: Muestra un producto cartesiano combinando todos los resultados de
las dos tablas.
1.Mostrar la lista de estudiantes con su respectivo nombre de escuela
2.Obtener todos los nombres de estudiantes incluido el nombre de la carrera
profesional, de aquellos que tienen ms de 3 hermanos
3.Mostrar la escuela y los estudiantes que pertenecen a la escuela de Ing.
Informtica y Sistemas
4.Mostrar todos los decentes que dictan clases en el semestre 2007-2
5.Recuperar el nombre de las escuelas que tienen ms de 5 estudiantes
6.Seleccionar nombre_escuela, ap_estudiante, am_estudiante, nombres, estudiante,
sexo de los estudiantes masculinos
7.Mostrar todos los Planes de estudio con sus respectivas asignaturas
8.Calcular cuantos estudiantes hay por escuela.
9.Contar la cantidad de estudiantes matriculados en el semestre 2008-1
10.Calcular la cantidad de matriculados por Escuela en el semestre 2007-2
11.Mostrar aquellas escuelas que tienen ms de 3 matriculados
12.Calcular el promedio de hermanos de todos los estudiantes matriculados de la
Escuela de Ing. Informtica y Sistemas
13.Calcular la media de notas de ingreso por ciudad
14.Mostrar el nombre de los estudiantes que obtuvieron la mejor nota de ingreso por
escuela.
E.G.A. - N.L.C.F.
UNAMBA
Sub Consultas
1.Mostrar el cdigo del estudiante, nombre completo, del estudiante mas joven de la
Universidad
2.Mostrar el cdigo del estudiante, nombre completo del estudiante que ingreso con
la mayor nota
3.Mostrar el cdigo y nombres completos de los estudiantes que tienen la misma
cantidad de hermanos que Gamarra (ap_estudiante)
4.Se quiere saber el cdigo, nombres y escuela, de aquellos estudiantes que tienen
la nota de ingreso mayor que la mejor nota de ingreso de la escuela de
Administracin de Empresas
5.Mostrar a los estudiantes que tienen la mejor de nota de ingreso que la media de
los estudiantes de Ing. Informtica y Sistemas
6.Mostrar el cdigo y nombres de los estudiantes que nacieron antes que el
estudiante Campos (ap_estudiante)
Eliminacin de datos
1.Eliminar los registros de la tabla estudiante donde el estudiante pertenezca a la
escuela de Ing. de Minas.
2.Borrar de la tabla docentes todos los docentes que son Ingenieros
3.Borrar todos los estudiantes que nacieron antes de 1978
4.Borrar todos los estudiantes que nacieron entre 1985 y 1990
5.Borrar todos los estudiantes cuya Escuela sea Ing. Agroindustrial.
6.Se desea eliminar aquellos estudiantes cuya nota de ingreso es menor o igual a 05,
tanto mujeres como varones.
7.Se pretende cerrar la Escuela de Ing. Agroindustrial, para tal sentido se pretende
borrar todos los registros que tengan relacin con dicha tabla.
E.G.A. - N.L.C.F.
UNAMBA
Procedimientos Almacenados
Un procedimiento almacenado (stored procedure) es un grupo de sentencias SQL
que es compilado una vez y luego puede ser ejecutado muchas veces.
Sintaxis
CREATE PROCEDURE nombre_procedimiento @parametros tipo de
datos[=valor], @parametros_salida tipo de dato OUTPUT
AS [DECLARE @Variable tipos]
BEGIN
Sentencia SQL
END
1.Realizar un procedimiento que nos permita calcular el nmero de estudiantes por
Escuela.
//------------MSSQL Server-------------------//
Create Procedure num_estu_escu @escuela varchar(3)
As
Begin
Select count(es.codigo_estudiante), e.codigo_escuela
From Escuela e inner join Estudiante es
On e.codigo_escuela=es.codigo_escuela
Group by e.codigo_escuela
Having e.codigo_escuela=@escuela
End
Crea el procedimiento num_estu_escu con el parmetro escuela que es de tipo
varchar(3), el procedimiento hace un select que realiza grupos por escuelas
profesionales y cuenta cuantos estudiantes hay en cada escuela.
exec num_estu_escu '008'
Ejecuta el procedimiento introduciendo el valor 008 para el parmetro escuela con lo
que har la seleccin.
//--------------Mysql---------------//
create procedure num_estu_escu ()
select codigo_escuela,count(codigo_estudiante)
from estudiante
group by codigo_escuela
//-----------------call num_estu_escu()
Ejecuta el procedimiento almacenado
2.Realizar un procedimiento que nos permita calcular el promedio de notas de
ingreso de las estudiantes de una determinada escuela y por sexo
3.Obtener todos los estudiantes que nacieron entre una fecha_inicial y fecha_final de
una determinada escuela.
4.Realizar un procedimiento que permita insertar un estudiante, otro que permita
eliminar un estudiante sabiendo su cdigo.
5.Realizar un procedimiento que ingrese 2 nmero y me retorne las cuatro
operaciones bsicas
10
E.G.A. - N.L.C.F.
UNAMBA
11
E.G.A. - N.L.C.F.
UNAMBA
Disparadores
Son un grupo de sentencias SQL que se ejecutan automticamente cuando se produce
un cambio en el contenido de una tabla de la base de datos, como consecuencia de la
ejecucin de una sentencia INSERT, UPDATE o DELETE
Tablas especiales
Son tablas asociados a los disparadores cuando se ejecuta una sentencia INSERT,
UPDATE o DELETE.
Se efecta una copia de los datos insertados, modificados o eliminados en las tablas
especiales INSERTED O DELETED segn corresponda (solo se puede consultar mas
no modificar)
Cuando se ejecuta un sentencia
Tabla INSERTED
Tabla DELETED
INSERT
UPDATE
Contiene una copia del registro Contiene una copia del registro
modificado
con
los
datos modificado con los datos anteriores a
modificados
la modificacin
DELETE
12
E.G.A. - N.L.C.F.
UNAMBA
Solucin Disparadores
ejercicio nro. 01
create trigger actualizar_nro_estu
on estudiante
for insert
as
begin
declare @codigocarrera varchar(3)
select @codigocarrera=codigo_escuela from inserted
update escuela
set nro_Estudiantes=nro_estudiantes+1
where codigo_escuela=@codigocarrera
end;
insert
into
1988,'M',19.9,4)
estudiante
values('091235','008','Gomez','Gomez','Ebert',19-12-
ejercicio nro 02
create trigger no_eliminar_es_con_herma
on estudiante
for delete
as
begin
/*obtener el codigo del estudiante eliminado*/
declare @codigoestudiante varchar(6)
/*obtener el numero de hermanos del estudiante eliminado*/
declare @nrohermanos int
select @nrohermanos=nro_hermanos
from deleted
if @nrohermanos>=1
rollback
end;
13
E.G.A. - N.L.C.F.