Você está na página 1de 13

Sistema de Gestin de Base de Datos

UNAMBA

Sistema de gestin de Base de Datos


Comandos DLL
Comando Descripcin
CREATE Utilizado para crear nuevas tablas, campos e ndices
DROP
Empleado para eliminar tablas e ndices
Utilizado para modificar las tablas agregando campos o cambiando la
ALTER
definicin de los campos.
Comandos DML
Comando Descripcin
Utilizado para consultar registros de la base de datos que satisfagan un
SELECT
criterio determinado
Utilizado para cargar lotes de datos en la base de datos en una nica
INSERT
operacin.
Utilizado para modificar los valores de los campos y registros
UPDATE
especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos

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.

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos


SHORT
LONG

2 bytes
4 bytes
1 byte por
LONGTEXT
carcter
Segn se
LONGBINARY
necesite
1 byte por
TEXT
carcter

UNAMBA

Un entero corto entre -32,768 y 32,767.


Un entero largo entre -2,147,483,648 y 2,147,483,647.
De cero a un mximo de 1.2 gigabytes.
De cero 1 gigabyte. Utilizado para objetos OLE.
De cero a 255 caracteres.

La siguiente tabla recoge los sinnimos de los tipos de datos definidos:


Tipo de Dato
Sinnimos
BINARY
VARBINARY
BOOLEAN
LOGICAL
BIT
LOGICAL1
YESNO
BYTE
INTEGER1
COUNTER
AUTOINCREMENT
CURRENCY
MONEY
DATE
DATETIME
TIME
TIMESTAMP
FLOAT4
SINGLE
IEEESINGLE
REAL
FLOAT
FLOAT8
DOUBLE
IEEEDOUBLE
NUMBER
NUMERIC
INTEGER2
SHORT
SMALLINT
INT
LONG
INTEGER
INTEGER4
GENERAL
LONGBINARY
OLEOBJECT
LONGCHAR
LONGTEXT
MEMO
NOTE
ALPHANUMERIC
TEXT
CHAR - CHARACTER
STRING - VARCHAR
VARIANT (No Admitido)
VALUE

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

UNAMBA

Modificar el Diseo de una Tabla


Modifica el diseo de una tabla ya existente, se pueden modificar los campos o los
ndices existentes. Su sintaxis es:
ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamao)]
[CONSTRAINT ndice]
CONSTRAINT ndice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del ndice}}
En donde:
tabla
campo
tipo
tamao
ndice
ndice
multicampo

Operacin
ADD
COLUMN
ADD
DROP
COLUMN
DROP

Es el nombre de la tabla que se desea modificar.


Es el nombre del campo que se va a aadir o eliminar.
Es el tipo de campo que se va a aadir.
Es el tamao del campo que se va a aadir (slo para campos de
texto).
Es el nombre del ndice del campo (cuando se crean campos) o el
nombre del ndice de la tabla que se desea eliminar.
Es el nombre del ndice del campo multicampo (cuando se crean
campos) o el nombre del ndice de la tabla que se desea eliminar.

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)

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

UNAMBA

Operadores lgicos
Operador Uso
AND

Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad


slo si ambas son ciertas.

OR

Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad


si alguna de las dos es cierta.

NOT

Negacin lgica. Devuelve el valor contrario de la expresin.

Operadores de comparacin
Operador

Uso

<

Menor que

>

Mayor que

<>

Distinto de

<=

Menor o igual que

>=

Mayor o igual que

Igual que

BETWEEN

Utilizado para especificar un intervalo de valores.

LIKE

Utilizado en la comparacin de un modelo

In

Utilizado para especificar registros de una base de datos

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

Utilizada para calcular el promedio de los valores de un campo

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

UNAMBA

determinado
COUNT Utilizada para devolver el nmero de registros de la seleccin
SUM

Utilizada para devolver la suma de todos los valores de un campo


determinado

MAX

Utilizada para devolver el valor ms alto de un campo especificado

MIN

Utilizada para devolver el valor ms bajo de un campo especificado

Orden de ejecucin de los comandos


Dada una sentencia SQL de seleccin que incluye todas las posibles clusulas, el orden
de ejecucin de las mismas es el siguiente:
Clusula FROM
Clusula WHERE
Clusula GROUP BY
Clusula HAVING
Clusula SELECT
Clusula ORDER BY

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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%

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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.

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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)

Modificacin y actualizacin de datos


1.Cambiar la ubicacin de las escuelas que se encuentran en Tamburco por
Pachachaca.
2.Modificar el salario de los docentes, de forma que todos tengan un incremento del
10% en su salario
3.Modificar el salario de los docentes, de forma que solo las mujeres tengan un
incremento del 2% en su salario.
4.Modificar el creditaje incrementndose en uno a todas las asignaturas que tienen
dos crditos de la escuela de Ing. Informtica y Sistemas
5.Modificar la categora de las asignaturas de la Escuela de Administracin que
tienen crdito>=3 por EEE
6.Crear un campo Nro_estudiantes en la tabla Escuela Profesional y actualizar dicho
campo.
7.Crear un campo Nro_estudiantes_mujeres y Nro_estudiantes_varones en la tabla
EscuelaProfesional y actualizar dichos campos

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.

Ing. Informtica y Sistemas

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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

Ing. Informtica y Sistemas

10

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

UNAMBA

Solucin Procedimiento almacenados


ejercicio nro 02
create procedure promedio_notas_por_sexo ( in codigocarrera varchar(3))
select sexo_estudiante,avg(nota_ingreso)
from estudiante
where codigo_escuela=codigocarrera
group by sexo_estudiante
ejercicio nro 04
create procedure insertar @codigoestu varchar(6),@codigocarre varchar(3),
@ap varchar(50), @am varchar(50), @nombres varchar(50),@sexo varchar(1),
@nota float, @hermanos int
as
begin
insert into estudiante
values(@codigoestu,@codigocarre,@ap,@am,@nombres,23-011989,@sexo,@nota,@hermanos)
end
exec insertar '058746','008','gonzales','derrr','edguitar','M',12.6,6
ejercicio nro 5
create procedure operaciones @nro1 int,@nro2 int, @suma int output
as
begin
set @suma =@nro1+@nro2
end
declare @sum int
exec operaciones 2,3,@sum output
print @sum

Ing. Informtica y Sistemas

11

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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

Contiene una copia del registro


insertado

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

Contiene una copia del registro


eliminado

1.Modificar el campo nro_estudiantes de la tabla Carrera Profesional cada vez que


se inserte un estudiante.
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
2.Realizar un disparador para que no me permita eliminar aquel estudiante que
tengan al menos 1 hermano
3.El siguiente ejemplo almacenara en una tabla registros con datos de cada fila que
borremos, modifiquemos o insertemos estudiantes
create table historico(
codigo_estudiante varchar(6),
usuario varchar(20),
fecha datetime, operacion varchar(15)
)
Creamos el triggers de borrado en la tabla estudiante
CREATE TRIGGER borrador
ON estudiante
FOR DELETE
AS
BEGIN
INSERT
INTO
historico
select
codigo_estudiante,USER_NAME(),GETDATE(),'BORRADO'
FROM DELETED
END;
Ing. Informtica y Sistemas

12

E.G.A. - N.L.C.F.

Sistema de Gestin de Base de Datos

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;

Ing. Informtica y Sistemas

13

E.G.A. - N.L.C.F.

Você também pode gostar