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

Práctica 1

El documento describe la creación y modificación de una base de datos llamada DOCENCIA, incluyendo la tabla PROFESOR y su estructura. Se detalla la creación de una tabla ASIG con una clave externa y la implementación de restricciones de borrado en cascada. Además, se incluyen instrucciones para insertar y eliminar registros en las tablas, así como la creación de índices y la gestión de prácticas relacionadas.

Cargado por

aimar.ruano387
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas4 páginas

Práctica 1

El documento describe la creación y modificación de una base de datos llamada DOCENCIA, incluyendo la tabla PROFESOR y su estructura. Se detalla la creación de una tabla ASIG con una clave externa y la implementación de restricciones de borrado en cascada. Además, se incluyen instrucciones para insertar y eliminar registros en las tablas, así como la creación de índices y la gestión de prácticas relacionadas.

Cargado por

aimar.ruano387
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 PDF, TXT o lee en línea desde Scribd

1.

Crear la BD DOCENCIA y la tabla PROFESOR

CREATE DATABASE DOCENCIA;


USE DOCENCIA;

CREATE TABLE PROFESOR (


DNI INT PRIMARY KEY,
NOM_P VARCHAR(10)
);

-- Comprobar estructura:
DESCRIBE PROFESOR;

2. Modificar la tabla PROFESOR

ALTER TABLE PROFESOR MODIFY NOM_P VARCHAR(30);


ALTER TABLE PROFESOR ADD N_HORAS INT;
ALTER TABLE PROFESOR ADD SALARIO INT;

-- Comprobar estructura:
DESCRIBE PROFESOR;

3. Crear tabla ASIG con clave externa y borrado en cascada

CREATE TABLE ASIG (


COD_A INT PRIMARY KEY,
NOM_A VARCHAR(10),
CRED DECIMAL(3,1),
DNI INT,
FOREIGN KEY (DNI) REFERENCES PROFESOR(DNI) ON DELETE CASCADE
);
4. Ver tablas de la BD

SHOW TABLES;

5. Intentar eliminar PROFESOR


DROP TABLE PROFESOR;
-- Aparecerá un error si `ASIG` depende de ella.
-- Para poder eliminarla:
DROP TABLE ASIG;
DROP TABLE PROFESOR;

-- Verificar que se eliminó:


SHOW TABLES;

6. Crear archivo CREAR. con las definiciones

Contenido del archivo CREAR.:

CREATE TABLE PROFESOR (


DNI INT PRIMARY KEY,
NOM_P VARCHAR(30),
N_HORAS INT,
SALARIO INT
);

CREATE TABLE ASIG (


COD_A INT PRIMARY KEY,
NOM_A VARCHAR(10),
CRED DECIMAL(3,1),
DNI INT,
FOREIGN KEY (DNI) REFERENCES PROFESOR(DNI) ON DELETE CASCADE
);

Ejecutar en consola:

SOURCE CREAR.;
7. Ver los índices existentes

SHOW INDEX FROM PROFESOR;


SHOW INDEX FROM ASIG;

8. Crear índice X_NOM_P en PROFESOR

CREATE INDEX X_NOM_P ON PROFESOR(NOM_P);


SHOW INDEX FROM PROFESOR;

9. Insertar registros en PROFESOR

INSERT INTO PROFESOR VALUES (111, '[Link]ía', 10, 700);


INSERT INTO PROFESOR VALUES (222, '[Link]', 12, 1200);
INSERT INTO PROFESOR VALUES (333, '[Link]', 8, 500);

-- Ver tabla:
SELECT * FROM PROFESOR;

10. Insertar en ASIG

INSERT INTO ASIG VALUES (01, 'BD', 6.0, 111);


-- Esta lanzará error: no existe el profesor 444
INSERT INTO ASIG VALUES (02, 'EMPRESA', 6.0, 444);
-- Corregir: cambiar 444 por un DNI existente
-- Por ejemplo:
-- INSERT INTO ASIG VALUES (02, 'EMPRESA', 6.0, 222);

INSERT INTO ASIG VALUES (03, 'ESTADISTICA', 4.5, 333);

-- Verificar datos:
SELECT * FROM ASIG;
SELECT * FROM PROFESOR;
11. Crear tabla PRACTICAS con restricciones nombradas

CREATE TABLE PRACTICAS (


COD_P INT PRIMARY KEY,
NOM_P VARCHAR(15),
COD_A INT,
CONSTRAINT FK_ASIG FOREIGN KEY (COD_A) REFERENCES ASIG(COD_A) ON
DELETE CASCADE
);

12. Insertar datos en PRACTICAS

INSERT INTO PRACTICAS VALUES (001, 'MANEJO ', 01);


INSERT INTO PRACTICAS VALUES (002, '[Link]', 02);

13. Eliminar la asignatura BD

DELETE FROM ASIG WHERE COD_A = 01;


-- Si existen prácticas con COD_A = 01, solo se eliminará si se activó
ON DELETE CASCADE.

14. Eliminar al profesor 333

DELETE FROM PROFESOR WHERE DNI = 333;

-- Las asignaturas de ese profesor también se eliminan automáticamente


si la FK en ASIG tiene ON DELETE CASCADE.
-- Verificar:
SELECT * FROM ASIG;
SELECT * FROM PROFESOR;

También podría gustarte