0% encontró este documento útil (0 votos)
32 vistas4 páginas

Actividad 03

El documento describe la creación de tablas en MySQL para una base de datos de una escuela. Se crean tablas para profesores, asignaturas, provincias, poblaciones, alumnos, matrículas e impartición. Luego se insertan registros de ejemplo en algunas tablas, incluyendo 5 asignaturas y 5 alumnos. Finalmente, se incluyen consultas SQL para obtener listados de alumnos matriculados y no matriculados con diferentes criterios de ordenación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas4 páginas

Actividad 03

El documento describe la creación de tablas en MySQL para una base de datos de una escuela. Se crean tablas para profesores, asignaturas, provincias, poblaciones, alumnos, matrículas e impartición. Luego se insertan registros de ejemplo en algunas tablas, incluyendo 5 asignaturas y 5 alumnos. Finalmente, se incluyen consultas SQL para obtener listados de alumnos matriculados y no matriculados con diferentes criterios de ordenación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Actividad 03

Ejer01

Diagrama E/R
Creación de tablas en MYSQL
USE victor_schema;

CREATE TABLE profesor (


`cod_prof` integer AUTO_INCREMENT,
`direccion` varchar(50) NOT NULL,
`nombre` varchar(50) NOT NULL,
`tfn` numeric(9) NOT NULL,
`dni` varchar(9) NOT NULL,
CONSTRAINT pk_codprof PRIMARY KEY (cod_prof)

);

CREATE TABLE asignatura (


`cod_asignatura` integer AUTO_INCREMENT,
`nombre` varchar(50) NOT NULL,
CONSTRAINT pk_codasignatura PRIMARY KEY (cod_asignatura)
);

CREATE TABLE provincia (


`cod_prov` char(2),
`nombre` varchar(50) NOT NULL,
CONSTRAINT pk_codprov PRIMARY KEY (cod_prov)
);

CREATE TABLE poblacion (


`nombre` varchar(50) NOT NULL,
`cod_pob` char(3),
`cod_prov` char(2),
CONSTRAINT pk_codpob PRIMARY KEY (cod_pob),
CONSTRAINT fk_codprov FOREIGN KEY (cod_prov) REFERENCES provincia (cod_prov)
);

CREATE TABLE alumno (


`cod_alu` integer AUTO_INCREMENT,
`dni` varchar(9) NOT NULL,
`direccion` varchar(50) NOT NULL,
`nombre` varchar(50) NOT NULL,
`tfn` numeric(9) NOT NULL,
`cod_pob` char(3),
`cod_prov` char(2),
CONSTRAINT pk_codalu PRIMARY KEY (cod_alu),
CONSTRAINT fk_codpob2 FOREIGN KEY (cod_pob) REFERENCES poblacion (cod_pob),
CONSTRAINT fk_codprov2 FOREIGN KEY (cod_prov) REFERENCES provincia (cod_prov)
);

CREATE TABLE matricula (


`año` char(4) NOT NULL,
`cod_asignatura` integer,
`cod_alu` integer,
CONSTRAINT fk_codasignatura FOREIGN KEY (cod_asignatura) REFERENCES asignatura (cod_asignatura),
CONSTRAINT fk_codalu FOREIGN KEY (cod_alu) REFERENCES alumno (cod_alu)
);

CREATE TABLE imparte (


`cod_asignatura` integer,
`cod_prof` integer,
CONSTRAINT fk_codasignatura2 FOREIGN KEY (cod_asignatura) REFERENCES asignatura (cod_asignatura),
CONSTRAINT fk_codprof FOREIGN KEY (cod_prof) REFERENCES profesor (cod_prof)
);

Inserción de 5 alumnos y 5 asignaturas para el año 2022


INSERT INTO asignatura (nombre) VALUES ('Matematicas');
INSERT INTO asignatura (nombre) VALUES ('Fisica');
INSERT INTO asignatura (nombre) VALUES ('Lengua');
INSERT INTO asignatura (nombre) VALUES ('Tecnologia');
INSERT INTO asignatura (nombre) VALUES ('TIC');
INSERT INTO asignatura (nombre) VALUES ('Dibujo Tecnico');

INSERT INTO provincia (nombre,cod_prov) VALUES ('Badajoz','06');

INSERT INTO poblacion (nombre,cod_pob,cod_prov) VALUES ('Zafra', '300', '06');

INSERT INTO alumno (dni,direccion,nombre,tfn,cod_prov,cod_pob) VALUES ('11223344M','avda constitucion 11','Luisa


Fernandez Gomez','654444222','06','300');
INSERT INTO alumno (dni,direccion,nombre,tfn,cod_prov,cod_pob) VALUES ('77662244S','avda constitucion 22','Esther
Alvarez Lopez','654444222','06','300');
INSERT INTO alumno (dni,direccion,nombre,tfn,cod_prov,cod_pob) VALUES ('00550044I','avda constitucion 33','Juan
Gomez Gonzalez','654444222','06','300');
INSERT INTO alumno (dni,direccion,nombre,tfn,cod_prov,cod_pob) VALUES ('88776655K','avda constitucion 44','Ismael
Perez Fuerte','654444222','06','300');
INSERT INTO alumno (dni,direccion,nombre,tfn,cod_prov,cod_pob) VALUES ('99112244J','avda constitucion 55','Camila
Ruiz Hernandez','654444222','06','300');

Matriculación de los 3 primeros alumnos del apartado anterior.

INSERT INTO matricula (año,cod_asignatura,cod_alu) VALUES ('2022','1','1');


INSERT INTO matricula (año,cod_asignatura,cod_alu) VALUES ('2022','2','2');
INSERT INTO matricula (año,cod_asignatura,cod_alu) VALUES ('2022','3','3');

Mostrar todos los alumnos que no están matriculados

SELECT a1.cod_alu, a1.nombre


FROM alumno as a1
LEFT JOIN matricula as m1
on a1.cod_alu=m1.cod_alu
WHERE m1.cod_alu is null;

Listado de alumnos con todos sus datos ordenados por nombre.

SELECT *
FROM alumno
ORDER BY nombre ASC;

Listado de todos los alumnos con asignaturas matriculadas, ordenados


alfabeticamente por asignatura, apellidos y nombre en este orden
SELECT a1.nombre, m1.cod_asignatura, asig1.nombre
FROM alumno as a1
INNER JOIN matricula as m1
ON m1.cod_alu=a1.cod_alu
INNER JOIN asignatura as asig1
on asig1.cod_asignatura=m1.cod_asignatura
WHERE m1.cod_asignatura is not null
ORDER BY asig1.nombre, a1.nombre ASC;

Listado de alumnos con todos sus datos que estan matriculados en


tecnología y TIC, ordenados alfabeticamente por materia, apellidos y
nombre respectivamente.
SELECT *
FROM alumno as a1
INNER JOIN matricula as m1
ON m1.cod_alu=a1.cod_alu
INNER JOIN asignatura as asig1
ON asig1.cod_asignatura=m1.cod_asignatura
WHERE asig1.nombre LIKE '%Tecnología%' OR '%TIC%'
ORDER BY asig1.nombre, a1.nombre ASC;

También podría gustarte