Bases de Datos en MySQL

Download Report

Transcript Bases de Datos en MySQL

Bases de Datos en MySQL
Creación de tablas e
inserción de datos
Profa: Blanca Estela Conde Hernández
Modelo Entidad-Relación de una escuela…
Base de datos: Escuela
1. Genera las siguientes tablas:
ALUMNOS
DATO
TIPO DE
DATO
PROFESORES
DATO
TIPO DE
DATO
CLAVE_ALUMNO
INT
CLAVE_PROFESOR
INT
NOMBRE
VARCHAR(60)
NOMBRE
VARCHAR(60)
EDAD
INT
CURSO_ACTUAL
INT
Clave principal (PK)
EJEMPLO:
Mysql> CREATE TABLE ALUMNOS(CLAVE_ALUMNO INT,
-> NOMBRE VARCHAR(60), EDAD INT,
-> CURSO_ACTUAL INT, PRIMARY KEY (CLAVE_ALUMNO ));
Tablas(2)
AULAS
DATO
TIPO DE
DATO
ASIGNATURAS
DATO
TIPO DE
DATO
CLAVE_AULA
INT
CLAVE_ASIGNATURA
INT
CAPACIDAD
INT
CLAVE_AULA
INT
CURSO
VARCHAR(30)
DESCRIPCION
VARCHAR(70)
EJEMPLO:
Clave Foranea (FK)
Mysql> CREATE TABLE ASIGNATURAS(CLAVE_ASIGNATURA
-> INT, CLAVE_AULA INT, CURSO VARCHAR(30),
-> DESCRIPCION VARCHAR(60) , PRIMARY KEY
-> (CLAVE_ASIGNATURA ), FOREING KEY (CLAVE_AULA)
-> REFERENCES AULAS(CLAVE_AULA));
Tablas(3)
HORARIOS
DATO
TIPO DE
DATO
CLAVE_HORARIO
INT
CLAVE_ASIGNATURA
INT
DIA
VARCHAR(10)
HORA_INICIO
TIME
HORA_FIN
TIME
LISTAS
DATO
TIPO DE
DATO
CLAVE_LISTA
INT
CLAVE_ALUMNO
INT
CLAVE_PROFESOR
INT
CLAVE_ASIGNATURA
INT
EJEMPLO:
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
-> PROFESORES(CLAVE_PROFESOR), FOREIGN KEY(CLAVE_ASIGNATURA)
-> REFERENCES ASIGNATURAS(CLAVE_ASIGNATURA));
2. Inserta los siguientes datos en la tablas alumnos:
CLAVE_ALUMNO
EDAD
CURSO_ACTUAL
LAURA DIAZ HERNANDEZ
12
11
13
3
2
3
4
TANIA MONDRAGON GARCIA
11
2
5
ALEJANDRO CANSECO DIAZ
10
1
1
2
3
NOMBRE
JUAN PEREZ ROSAS
JORGE LOPEZ FLORES
EJEMPLO:
Mysql> INSERT INTO ALUMNOS VALUES(‘1’, ‘JUAN PEREZ ROSAS’,
 ’12’, ‘3’);
2. Inserta los siguientes datos en la tablas profesor:
CLAVE_PROFESOR
1
2
3
NOMBRE
ADRIANA GONZALEZ ROBLES
JUAN GARCIA PEREZ
ADRIAN FERNANDEZ ROJAS
4
LAURA ITURRIA ESCOBAR
5
CLAUDIA GUZMAN JIMENEZ
EJEMPLO:
Mysql> INSERT INTO PROFESORES VALUES(‘1’, ‘ADRIANA
GONZALEZ ROBLES’);
2. Inserta los siguientes datos en la tablas aulas:
CLAVE_AULA
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_ASIGNATURA
CLAVE_AULA
CURSO
DESCRIPCION
1
2
3
2
HISTORIA
HISTORIA DE MEXICO
3
MATEMATICAS
ARITMETICA BASICA
FILOSOFIA
LOGICA
QUIMICA
QUIMICA ELEMENTAL
TICS
INFORMATICA
BASICA
3
4
1
5
2
EJEMPLO:
Mysql> INSERT INTO ASIGNATURAS VALUES(‘1’, ‘2’,
 ’HISTORIA’, ‘DESCRIPCION’);
2. Inserta los siguientes datos en la tablas horarios:
CLAVE_HORARIO
CLAVE_ASIGNATURA
DIA
HORA_INICIO
HORA_FIN
1
2
LUNES
10:00
11:00
2
3
MARTES
7:00
8:00
MIERCOLES
11:00
12:00
JUEVES
8:00
9:00
JUEVES
9:00
10:00
3
4
5
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_LISTA
CLAVE_ALUMNO
CLAVE_PROFESOR
CLAVE_ASIGNATURA
1
5
1
3
2
4
2
5
1
3
3
1
3
1
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
años
SELECT nombre,curso FROM alumnos WHERE edad=10;
 Muestra el nombre de los alumnos que cursan 3º y tienen 10 o mas
años
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 años
SELECT * FROM alumnos WHERE edad
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º año
 Obtener los datos de los alumnos cuya edad sea menor o igual a
11 años o que estén cursando 3º
 Obtener el nombre de los alumnos donde su nombre empiece
con “J”
 Obtener los datos de los alumnos que están cursando entre 2º y
3er año
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 ordenándolos del
mayor al menor
SELECT nombre, edad FROM alumnos
ORDER BY edad DESC;
 Muestra los nombres de los alumnos que cursan 3º ordenados
alfabéticamente
SELECT nombre FROM alumnos
WHERE curso_actual=3 ORDER BY nombre;
Ejercicios de ordenación
 Muestra los datos de los profesores ordenados alfabéticamente
 Muestra el nombre y edad de los alumnos que cursan 2º
ordenando de la Z a la A
 Muestra los datos de los alumnos ordenándolos 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
WHERE asignaturas.curso=‘Historia’ AND
aulas.clave_aula=asignaturas.clave_aulas;
Consultas a varias tablas(2)
 Muestra los días 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_profesor
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 día Jueves
SELECT asignaturas.curso, horarios.hora_inicio,
horarios.hora_fin, horarios.dia
FROM horarios, asignaturas
WHERE horarios.clave_asignatura=asignaturas.clave_asignatura
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