CREACIÓN DE LA TABLA ALUMNO, AQUÍ ES DONDE NOSOTROS GUARDAREMOS LA INFORMACIÓN DE LOS
ESTUDIANTES.
create table alumno(
numero_matricula char(3)not null,
nombre char(20)not null,
primary key (numero_matricula))
CREACIÓN DE LA TABLA EXAMEN ALUMNO ES TABLA ES UNA ENTIDAD DE MUCHO A MUCHO ENTRE LAS TABLAS
EXAMEN Y ALUMNO.
create table examen_alum(
numero_matricula char(3) not null,
numero_examen int not null,
nota int not null,
foreign key (numero_matricula)references alumno(numero_matricula),
foreign key (numero_examen)references examen(numero_examen))
CREACIÓN DE LA TABLA EXAMEN, AQUÍ ES DONDE LA INFORMACIÓN DE LOS EXÁMENES SON INGRESADOS.
create table examen(
numero_examen int not null,
numero_pregunta int not null,
fecha_realizada datetime not null,
primary key (numero_examen))
CREACIÓN DE LA TABLA PRÁCTICA, AQUÍ ES DON DE LA INFORMACIÓN DE LAS PRÁCTICAS ES INGRESADA.
create table practicas(
codigo_practicas char(3)not null,
titulo char(20)not null,
grado_dificultad char(20)not null,
primary key (codigo_practicas))
CREACIÓN DE LA TABLA TIPO DE PRACTICAS ESTA TABLA ES UNA ENTIDAD DE MUCHO A MUCHO ENTRE ALUMNO
Y PRACTICAS.
create table tipo_practica(
numero_matricula char(3)not null,
codigo_practicas char(3)not null,
fecha datetime,
nota_obtenida int,
foreign key (numero_matricula)references alumno(numero_matricula),
foreign key (codigo_practicas)references practicas(codigo_practicas))
CREACIÓN DE LA TABLA PROFESOR, AQUÍ ES DONDE SE INGRESA LA INFORMACIÓN DE LOS PROFESORES
REQUERIDA POR LOS SOLICITANTES.
create table profesores(
cedula_profesor char(10)not null,
nombre char(20)not null,
primary key (cedula_profesor))
CREACIÓN DE LA TABLA PROFESOR Y PRACTICAS, ESTA TABLA ES UNA ENTIDAD DE MUCHO A MUCHO ENTRE LAS
TABLAS PROFESORES Y PRACTICAS.
create table profesor_practicas(
cedula_profesor char(10),
codigo_practicas char(3) not null,
fecha_practicas datetime not null,
foreign key (cedula_profesor)references profesores(cedula_profesor),
foreign key (codigo_practicas)references practicas(codigo_practicas))
*******
CON UN SELECT VEREMOS LAS TABLAS QUE HEMOS CREADO EN NUESTRA BASE.
select * from alumno
select * from examen
select * from Examen_alum
select * from practicas
select * from profesores
select * from tipo_practica
select * from profesor_practicas
******
AGREGANDOS CAMPOS A LAS TABLAS CREADAS.
AGREGAR EL CAMPO APELLIDO, DIRECCION, TELEFONO A LA TABLA "ALUMNO".
select * from alumno
alter table alumno add apellido char(20)
alter table alumno add dirección varchar(20)
alter table alumno add teléfono char(9)
AGREGAR EL CAMPO APELLIDO, DIRECCION, TELEFONO A LA TABLA "PROFESORES".
select * from profesores
alter table profesores add apellido char(20)
alter table profesores add direccion char(20)
alter table profesores add teléfono char(9)
********
INSERTAR INFORMACIÓN EN LAS TABLAS CREADAS.
INSERT.
Insert es otras de las instrucciones que nos permite insertar información en las bases de datos.
Vamos a insertar en la tabla alumno.
select * from alumno
insert alumno(numero_matricula,nombre,apellido,direccion,telefono)
values ('001','José','Sánchez','Cdla. Las Orquideas','093433578')
insert alumno(numero_matricula,nombre,apellido,direccion,telefono)
values ('002','Javier','Fernandez','Urdesa Central','095486972')
insert alumno(numero_matricula,nombre,apellido,direccion,telefono)
values ('003','Juan','Soto','Cdla. Huancavilca','098456792')
insert alumno(numero_matricula,nombre,apellido,direccion,telefono)
values ('004','Paul','Cucalon','Cdla. Alborada','094589786')
insert alumno(numero_matricula,nombre,apellido,direccion)
values ('005','Freddy','Garces','Cdla. Atarazana')
*******
INSERT A LA TABLA EXAMEN.
Vamos a insertar en la tabla examen.
Select * from examen
insert examen(numero_examen,numero_pregunta,fecha_realizada)
values (1,10,'2004-06-10')
insert examen(numero_examen,numero_pregunta,fecha_realizada)
values (2,20,'2005-10-14')
insert examen(numero_examen,numero_pregunta,fecha_realizada)
values (3,10,'2005-07-21')
insert examen(numero_examen,numero_pregunta,fecha_realizada)
values (4,15,'2005-08-28')
****
INSERT A LA TABLA PROFESORES.
Vamos a insertar en la tabla profesores.
select * from profesores
insert profesores(cedula_profesor,nombre,apellido,direccion,telefono)
values ('0922469878','Luis','Gomez','Cdla. Las Acacias','094254369')
insert profesores(cedula_profesor,nombre,apellido,direccion,telefono)
values ('0945369847','Carlos','Garcia','Los Almendros','094697815')
insert profesores(cedula_profesor,nombre,apellido,direccion,telefono)
values ('0925653438','Erick','Ramirez','Sauces 9','098264536')
insert profesores(cedula_profesor,nombre,apellido,direccion,telefono)
values ('0956421389','Henry','Marquez','Cdla. Las Fae','096457893')
insert profesores(cedula_profesor,nombre,apellido,direccion)
values ('0922468923','Marcelo','Silva','Geranios')
*********
INSERT A LA TABLA PRÁCTICAS.
Vamos a insertar en la tabla práctica.
select * from practicas
insert practicas(codigo_practicas,titulo,grado_dificultad)
values ('001','Calculo','Alta')
insert practicas(codigo_practicas,titulo,grado_dificultad)
values ('002','Comunicacion Social','Media')
insert practicas(codigo_practicas,titulo,grado_dificultad)
values ('003','Internet','Alta')
insert practicas(codigo_practicas,titulo,grado_dificultad)
values ('004','Ecologia','Baja')
*******
INSERT A LA TABLA PROFESOR PRACTICAS.
Vamos a insertar en la tabla Profesor_practicas
select * from profesor_practicas
insert profesor_practicas(cedula_profesor,codigo_practicas,fecha_practicas)
values ('0922469878','001','2005-06-12')
insert profesor_practicas(cedula_profesor,codigo_practicas,fecha_practicas)
values ('0945369847','002','2005-07-15')
insert profesor_practicas(cedula_profesor,codigo_practicas,fecha_practicas)
values ('0925653438','003','2005-08-19')
insert profesor_practicas(cedula_profesor,codigo_practicas,fecha_practicas)
values ('0956421389','004','2005-09-28')
********
INSERT A LA TABLA TIPO PRACTICAS.
Vamos a insertar en la tabla tipo _ prácticas
select * from tipo_practica
insert tipo_practica(numero_matricula,codigo_practicas,fecha,nota_obtenida)
values('001','001','2005-04-15',20)
insert tipo_practica(numero_matricula,codigo_practicas,fecha,nota_obtenida)
values('002','002','2005-05-14',18)
insert tipo_practica(numero_matricula,codigo_practicas,fecha,nota_obtenida)
values('003','003','2005-06-10',19)
insert tipo_practica(numero_matricula,codigo_practicas,fecha,nota_obtenida)
values('004','004','2005-06-15',20)
*********
INSERT A LA TABLA EXAMEN ALUMNO.
Vamos a insertar en la tabla examen _ alum.
select * from examen_alum
insert examen_alum(numero_matricula,numero_examen,nota)
values ('001',1,20)
insert examen_alum(numero_matricula,numero_examen,nota)
values ('002',2,18)
insert examen_alum(numero_matricula,numero_examen,nota)
values ('003',3,19)
insert examen_alum(numero_matricula,numero_examen,nota)
values ('004',4,17)
*******
FUNCIONES AGREGADAS CON ALIAS
En las funciones agregadas encontramos a:
Count
Max
Min
Avg
Sum
select count(numero_matricula)as Matriculas from alumno
select max(nota) as 'Nota Alta' from examen_alum
select min(nota_obtenida) as 'Minima nota' from tipo_practica
select avg(nota)as'Promedio de las notas' from examen_alum
select sum(nota_obtenida)from tipo_practica
*******
DISTINCT
Distinct permite eliminar los registros repetidos en la tabla cuando los presenta en la salida (en la consulta).
DISTINCT A LA COLUMNA NUMERO DE PREGUNTA DE LA TABLA EXAMEN
La cual hay valores que se repiten
select * from examen
select distinct numero_pregunta from examen
***
DISTINCT A LA COLUMNA NOTA OBTENIDA DE LA TABLA TIPO_PRACTICA.
La cual hay valores que se repiten.
select * from tipo_practica
select distinct nota_obtenida from tipo_practica
*****
OPERADOR WHERE.
La cláusula where puede usarse para determinar qué registros de las tablas enumeradas en la cláusula from
aparecerán en los resultados de la instrucción select.
Después de escribir esta cláusula se deben especificar las condiciones expuestas en los pactados si no se emplea esta
cláusula, la consulta devolverá todas las filas de la tabla. Where es opcional, pero cuando aparece debe ir a
continuación de from.
ESTE WHERE PRESENTA EL NOMBRE Y APELLIDO DE LA PERSONA.
Que quiere en la condición where.
select * from profesores
select nombre, apellido from profesores where apellido='Gómez'
**************
Que quiere en la condición where.
select * from alumno
select nombre, apellido from alumno where numero_matricula='3'
***********
OPERADORES DEL WHERE.
Los operadores de where se clasifican en:
Comparación
Cadena
Comparación lógica
Rango de valores
Listas
Valores desconocidos
COMPARACION.
select * from tipo_practica
select codigo_practicas,nota_obtenida from tipo_practica
where nota_obtenida >=19
*********
CADENA.
select * from profesores
select nombre, dirección from profesores where nombre like 'E%'
select apellido, dirección from profesores where apellido like '%z'
select nombre, dirección from profesores where nombre like '_a%'
select direccion from profesores where direccion like 'c%'
*********
COMPARACION LOGICA.
select * from profesores
select nombre,apellido,direccion
from profesores
where nombre like 'E%' and apellido like '%z'
******
RANGO DE VALORES.
select * from tipo_practica
*******
select fecha from tipo_practica
where fecha between'2005-04-01' and '2005-05-31'
********
LISTAS.
select * from practicas
select titulo,grado_dificultad
from practicas where titulo in ('comunicacion social','Ecologia')
****
VALORES DESCONOCIDOS.
select * from alumno
select nombre,telefono from alumno where telefono is null
select apellido,telefono from alumno where telefono is not null
***********
ORDER BY.
Order by te permite ordenar tus columnas de forma ascendente y descendente.
select * from profesores
select cedula_profesor as cedula,nombre
from profesores
order by nombre desc
select cedula_profesor as cedula,nombre
from profesores
order by nombre asc
select cedula_profesor as cedula,nombre,apellido
from profesores
order by nombre asc,apellido desc
************
GROUP BY.
Group by es similar al distinct que utilizamos anteriormente, el group by se encarga de agrupar el contenido igual.
select * from practicas
select grado_dificultad from practicas
where grado_dificultad ='alta'
group by grado_dificultad
********
select * from tipo_practica
select nota_obtenida from tipo_practica
where nota_obtenida='20'
group by nota_obtenida
*******
HAVING.
select * from examen_alum
select numero_examen,avg(nota)as Promedio
from examen_alum
group by numero_examen
having avg(nota)>=18
*********
select * from tipo_practica
select numero_matricula,max(nota_obtenida)as 'nota máxima'
from tipo_practica
group by numero_matricula
having max(nota_obtenida)>=19
*********
JOINS.
Consultar que nombre del alumno y el grado de dificultad hizo en la práctica
select * from alumno
select * from practicas
select * from tipo _ practicas
select alumno.nombre,practicas.grado_dificultad
from alumno,tipo_practica,practicas
where alumno.numero_matricula=tipo_practica.numero_matricula and
tipo_practica.codigo_practicas=practicas.codigo_practicas and
alumno.numero_matricula=4
*********
Consultar que nombre y el apellido del profesor que da la clase "Calculo"
select * from practicas
select * from profesores
select * from profesor_practicas
select profesores.nombre,profesores.apellido
from practicas,profesores,profesor_practicas
where profesor_practicas.cedula_profesor=profesores.cedula_profesor and
practicas.codigo_practicas=profesor_practicas.codigo_practicas and
practicas.titulo='calculo'
**********
Consultar que la nota y el apellido del alumno Sánchez
select * from alumno
select * from examen_alum
select examen_alum.nota,alumno.apellido
from alumno,examen_alum
where alumno.numero_matricula=examen_alum.numero_matricula and
examen_alum.numero_examen=1
***********
SUB QUERY.
Los sub query con parecidos a los joins sino que estos hacen las consultas por separado (tabla por tabla hasta
terminar la consulta que esperas).
select * from alumno
select * from Examen_alum
select nota,numero_matricula
from examen_alum
where numero_matricula =
(select numero_matricula from alumno where apellido='Sánchez')
******
UPDATE.
El update sirve para actualizar una información que ya a sido ingresa a la base de dato.
Como ven en este ejemplo el alumno Freddy no tiene teléfono ingresado.
********
Utilizamos esta sentencia para actualizarlo.
select * from alumno
update alumno
set teléfono ='095564891'
where nombre='Freddy'
********
Como ven en este ejemplo el profesor Marcelo no tiene teléfono ingresado.
Select * from profesores
update profesores
set telefono='098645872'
where nombre='Marcelo'
********
DELETE.
La sentencia delete permite borrar el contenido de una columna de la tabla a la cual se le da una referencia.
Le asemos un select a la tabla examen_alum para ver el contenido de la tabla antes de borrar una columna.
select * from examen_alum
********
delete from examen_alum where nota='20'
******
Lo mismo hacemos con la tabla tipo _ practicas, primero hacemos un select a la tabla antes de borrar la columna a
seleccionar..
select * from tipo_practica
******
delete from tipo_practica where fecha='2005-04-15'