/*	SCRIPT PARA EL MANEJO DE BASES DE DATOS
	PARA PRUEBAS EN CLASE
*/

-- Mostrar las bases de datos
SHOW DATABASES;

-- Crea la base de datos
CREATE DATABASE IF NOT EXISTS practicas_taller_web CHARACTER SET utf8 COLLATE utf8_general_ci;

-- Muestra las bases de datos
SHOW DATABASES;

-- Usa la base de datos 
USE practicas_taller_web;

-- Creación de la tabla licenciatura
CREATE TABLE licenciatura (
	clave VARCHAR(10) PRIMARY KEY,
	nombre VARCHAR (150)
)ENGINE = InnoDB;

-- Creación de la tabla alumno
CREATE TABLE alumno (
	matricula VARCHAR(15) PRIMARY KEY,
	nombre VARCHAR(45),
	primer_apellido VARCHAR(45),
	segundo_apellido VARCHAR(45),
	licenciatura_clave VARCHAR(10) NOT NULL,
	CONSTRAINT alumno_licenciatura
	FOREIGN KEY (licenciatura_clave) REFERENCES licenciatura (clave)
		ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB;

-- Creación de la tabla usuario
CREATE TABLE usuario (
	id_usuario INT AUTO_INCREMENT PRIMARY KEY,
	password VARCHAR(40),
	alumno_matricula VARCHAR(10),
	CONSTRAINT usuario_alumno
	FOREIGN KEY (alumno_matricula) REFERENCES alumno (matricula)
		ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB;

-- Creación de la tabla uea
CREATE TABLE uea(
	clave_uea VARCHAR (10) PRIMARY KEY,
	nombre VARCHAR(50),
	creditos INT
)ENGINE=InnoDB;


-- Creación de la tabla alumno_uea
CREATE TABLE alumno_uea(
	id_alumno_uea INT AUTO_INCREMENT PRIMARY KEY,
	trimestre VARCHAR(10),
	calificacion VARCHAR(3),
	calificacion_numerica FLOAT,
	alumno_matricula VARCHAR(15),
	uea_clave_uea VARCHAR(10),
	CONSTRAINT alumno_uea_alumno_matricula
	FOREIGN KEY (alumno_matricula) 
	REFERENCES alumno(matricula) 
	ON DELETE CASCADE ON UPDATE CASCADE,
	CONSTRAINT alumno_uea_uea_clave
	FOREIGN KEY (uea_clave_uea)
	REFERENCES uea(clave_uea)
	ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;

