Bases de Datos en MySQL
Creacin de tablas
e insercin de datos
Profa: Blanca Estela Conde Hernnde
Modelo Entidad-Relacin de una
escuela
Base de datos: Escuela
1. Genera las siguientes
tablas:
ALUMNOS
DATO
TIPO DE
DATO
PROFESORES
DATO
TIPO DE
DATO
CLAVE_ALUMN
O
INT
CLAVE_PROFES
OR
INT
NOMBRE
VARCHAR(60
)
NOMBRE
VARCHAR(6
0)
EDAD
INT
CURSO_ACTUA
INT
EJEMPLO:
L
Clave principal
(PK)
Mysql> CREATE TABLE ALUMNOS(CLAVE_ALUMNO
INT,
-> NOMBRE VARCHAR(60), EDAD INT,
Tablas(2)
AULAS
DATO
TIPO DE
DATO
CLAVE_AULA
INT
CAPACIDAD
INT
EJEMPLO:
ASIGNATURAS
DATO
TIPO DE
DATO
CLAVE_ASIGNATU INT
RA
CLAVE_AULA
INT
CURSO
VARCHAR(30
)
DESCRIPCION
Clave
(FK)
VARCHAR(70
Foranea
)
Mysql> CREATE TABLE
ASIGNATURAS(CLAVE_ASIGNATURA -> INT,
CLAVE_AULA INT, CURSO VARCHAR(30),
-> DESCRIPCION VARCHAR(60) , PRIMARY KEY
-> (CLAVE_ASIGNATURA ), FOREING KEY
(CLAVE_AULA)
Tablas(3)
HORARIOS
DATO
TIPO DE
DATO
CLAVE_HORARIO
INT
CLAVE_ASIGNATU
RA
INT
DIA
VARCHAR(1
0)
HORA_INICIO
TIME
HORA_FIN
TIME
EJEMPLO:
LISTAS
DATO
TIPO DE
DATO
CLAVE_LISTA
INT
CLAVE_ALUMNO
INT
CLAVE_PROFESO
R
INT
CLAVE_ASIGNATU INT
RA
Mysql> CREATE TABLE LISTAS(CLAVE_LISTA INT, CLAVE_ALUMNO
INT,
-> CLAVE_PROFESOR INT, CLAVE_ASIGNATURA INT, PRIMARY KEY
-> (CLAVE_LISTA), FOREING KEY (CLAVE_ALUMNO) REFERENCES
-> ALUMNOS(CLAVE_ALUMNO), FOREIGN KEY(CLAVE_PROFESOR)
REFERENCES
2. Inserta los siguientes datos en la tablas
alumnos:
CLAVE_ALUM
NO
NOMBRE
1
2
3
JUAN PEREZ ROSAS
4
5
EDA
D
CURSO_ACTU
AL
12
11
13
3
2
3
TANIA MONDRAGON
GARCIA
11
ALEJANDRO CANSECO
DIAZ
10
JORGE LOPEZ FLORES
LAURA DIAZ HERNANDEZ
EJEMPLO:
Mysql> INSERT INTO ALUMNOS VALUES(1, JUAN
PEREZ ROSAS, 12, 3);
2. Inserta los siguientes datos en la tablas
profesor:
CLAVE_PROFES
OR
NOMBRE
ADRIANA GONZALEZ
ROBLES
2
3
JUAN GARCIA PEREZ
4
5
LAURA ITURRIA ESCOBAR
ADRIAN FERNANDEZ
ROJAS
CLAUDIA GUZMAN
JIMENEZ
EJEMPLO:
Mysql> INSERT INTO PROFESORES VALUES(1,
ADRIANA GONZALEZ ROBLES);
2. Inserta los siguientes datos en la tablas
aulas:
CLAVE_AU
LA
CAPACIDAD
1
2
3
50
60
50
EJEMPLO:
Mysql> INSERT INTO AULAS VALUES(1, 50);
2. Inserta los siguientes datos en la tablas
asignaturas:
CLAVE_ASIGNAT CLAVE_AUL
CURSO
DESCRIPCION
URA
2
3
4
5
HISTORIA
HISTORIA DE
MEXICO
MATEMATIC
AS
ARITMETICA
BASICA
FILOSOFIA
LOGICA
QUIMICA
QUIMICA
ELEMENTAL
TICS
INFORMATICA
BASICA
1
2
EJEMPLO:
Mysql> INSERT INTO ASIGNATURAS VALUES(1, 2,
HISTORIA, DESCRIPCION);
2. Inserta los siguientes datos en la tablas
horarios:
CLAVE_HORAR CLAVE_ASIGNATU
DIA
HORA_INICI HORA_FIN
IO
RA
LUNES
10:00
11:00
MARTES
7:00
8:00
MIERCOLE
S
11:00
12:00
JUEVES
8:00
9:00
JUEVES
9:00
10:00
3
4
5
1
4
EJEMPLO:
Mysql> INSERT INTO HORARIOS
VALUES(1,2,LUNES,10:00,11:00);
2. Inserta los siguientes datos en la tabla
listas:
CLAVE_LIST CLAVE_ALUM
CLAVE_PROFE CLAVE_ASIGNATURA
A
NO
SOR
3
4
5
5
3
3
EJEMPLO:
Mysql> INSERT INTO LISTAS VALUES(1,5,1,3);
Consultas de datos: SELECT
Mostrar todos los campos de la tabla alumnos
SELECT * FROM alumnos;
Muestra el nombre y curso actual de los alumnos
que tienen 10 aos
SELECT nombre,curso FROM alumnos WHERE
edad=10;
Muestra el nombre de los alumnos que cursan 3 y
tienen 10 o mas aos
SELECT nombre FROM alumnos
WHERE curso_actual=3 AND
edad>=10;
Consultas de datos: SELECT
(2)
Muestra todos los datos de los alumnos donde
su edad este entre 8 y 12 aos
edad
SELECT * FROM alumnos WHERE
BETWEEN 8 AND 12;
Muestra los datos de los alumnos donde el
nombre empiece con M y cursen 3
SELECT * FROM alumnos WHERE
nombre
LIKE M% AND curso_actual=3;
Ejercicios: Consultas
Obtener el nombre de los alumnos que
actualmente estan cursando 2 ao
Obtener los datos de los alumnos cuya edad
sea menor o igual a 11 aos o que estn
cursando 3
Obtener el nombre de los alumnos donde su
nombre empiece con J
Obtener los datos de los alumnos que estn
cursando entre 2 y 3er ao
Ordenar datos: ORDER BY
Ordenar ascendentemente los nombres de los
alumnos
SELECT * FROM alumnos ORDER BY nombre;
Muestra el nombre y la edad de los alumnos
ordenndolos del mayor al menor
SELECT nombre, edad FROM alumnos
ORDER BY edad DESC;
Muestra los nombres de los alumnos que cursan 3
ordenados alfabticamente
SELECT nombre FROM alumnos
WHERE curso_actual=3 ORDER BY
nombre;
Ejercicios de ordenacin
Muestra los datos de los profesores
ordenados alfabticamente
Muestra el nombre y edad de los alumnos
que cursan 2 ordenando de la Z a la A
Muestra los datos de los alumnos
ordenndolos por curso del mayor a menor
Consultas a varias tablas
Muestra el nombre de la asignatura y el
numero de aula donde esta asignada
SELECT asignaturas.curso,
aulas.clave_aula
FROM asignaturas, aulas
WHERE
aulas.clave_aula=asignaturas.clave_aula;
Muestra las aulas donde se imparte la
asignatura de historia
SELECT aulas.clave_aula FROM
aulas,asignaturas
Consultas a varias tablas(2)
Muestra los das y horarios en los que se
imparte la asignatura de historia
SELECT horarios.hora_inicio,
horarios.hora_fin,horarios.dia
FROM horarios, asignaturas
WHERE asignaturas.nombre=Historia AND
horarios.clave_asignatura=asignaturas.clave
_asignatura
ORDER BY horarios.dia,horarios.hora_inicio
Consultas a varias tablas(3)
Muestra los alumnos cuyo profesor es Adrian
Fernandez Rojas
SELECT DISTINC alumnos.nombre
FROM alumnos, profesores, listas
WHERE profesores.nombre=Adrian
Fernandez Rojas
AND
listas.clave_profesor=profesores.clave_profe
sor
AND
alumnos.clave_alumno=listas.clave_alumno
ORDER BY alumnos.nombre;
Consultas a varias tablas(4)
Muestra las asignaturas que comienzan entre 8 y
10 el da Jueves
SELECT asignaturas.curso, horarios.hora_inicio,
horarios.hora_fin, horarios.dia
FROM horarios, asignaturas
WHERE
horarios.clave_asignatura=asignaturas.clave_asi
gnatura
AND horarios.hora_inicio BETWEEN 08:00:00
AND 10:00:00
AND horarios.dia=lunes
ORDER BY horarios.dia,horarios.hora_inicio,
asignaturas.nombre