CREATE TYPE "genero" AS ENUM ('Masculino', 'Femenino');
CREATE TABLE personas(
	id_persona serial PRIMARY KEY,
	nombre varchar(25) NOT NULL,
	primerapellido varchar(25) NOT NULL,
	segundoapellido varchar(25) NOT NULL DEFAULT '---',
	genero genero,
	telefono bigint,
	ciudad varchar(50),
	direccion varchar(50),
	delegacion varchar(50),
	fecha_nacimiento date,
	e_mail varchar(30)
);

CREATE SEQUENCE boleta_seq START 2019000000 INCREMENT BY 1;
CREATE TABLE estudiantes(
	boleta bigint PRIMARY KEY DEFAULT NEXTVAL('boleta_seq'),
	id_persona integer NOT NULL,
	FOREIGN KEY (id_persona) REFERENCES personas(id_persona)
);

CREATE TABLE docente(
	id_docente serial PRIMARY KEY,
	id_persona integer NOT NULL,
	grado_academico varchar(50) NOT NULL,
	area_especialidad varchar(50) NOT NULL DEFAULT '---',
	FOREIGN KEY (id_persona) REFERENCES personas(id_persona)
);

CREATE TABLE aula(
	id_aula serial PRIMARY KEY,
	nombre_aula integer,
	tipo varchar(15) NOT NULL,
	capacidad integer
);

CREATE TABLE plantel(
	id_plantel serial PRIMARY KEY,
	clave_plantel varchar(10),
	nombre_plantel varchar(100)
);

CREATE TABLE carrera(
	id_carrera serial PRIMARY KEY NOT NULL,
	clave_carrera varchar(10),
	id_plantel integer NOT NULL,
	nombre_carrera varchar(80),
	FOREIGN KEY (id_plantel) REFERENCES plantel(id_plantel)
);

CREATE TABLE materia(
	id_materia serial PRIMARY KEY,
	clave varchar(5) NOT NULL,
	id_carrera integer NOT NULL,
	nombre_materia varchar(80) NOT NULL,
	creditos double precision NOT NULL,
	semestre integer,
	academia varchar(50),
	FOREIGN KEY (id_carrera) REFERENCES carrera(id_carrera)
);

CREATE TABLE horarios(
	id_horario serial PRIMARY KEY,
	id_materia integer NOT NULL,
	id_aula integer NOT NULL,
	dia varchar(10),
	hora_inicio time,
	hora_fin time,
	FOREIGN KEY (id_materia) REFERENCES materia(id_materia),
	FOREIGN KEY (id_aula) REFERENCES aula(id_aula)
);

CREATE TABLE grupos(
	id_grupo serial PRIMARY KEY,
	id_profesor integer NOT NULL,
	id_materia integer NOT NULL,
	grupo varchar(7) NOT NULL,
	numero_estudiantes integer NOT NULL,
	FOREIGN KEY (id_profesor) REFERENCES docente(id_docente),
	FOREIGN KEY (id_materia) REFERENCES materia(id_materia)
);

CREATE TABLE estudiante_materia(
	id_boleta integer NOT NULL,
	id_materia integer NOT NULL,
	calificacion double precision,
	FOREIGN KEY (id_boleta) REFERENCES estudiantes(boleta),
	FOREIGN KEY (id_materia) REFERENCES materia(id_materia)
);

INSERT INTO personas(
	nombre, primerapellido, segundoapellido,genero)
	VALUES ('Jeremy Job','Baez','Castillo','Masculino'),
	('Miriam Alessia','Basurto','Lara','Femenino'),
	('Giovanna Guadalupe','Bautista','Guadarrama','Femenino'),
	('Vianey','Belmonte','Lopez','Femenino'),
	('Dayanara','Calderon','Cahuantzi','Femenino'),
	('Neide Shany','Calderon','Fuentes','Femenino'),
	('Frida','Capetillo','Salas','Femenino'),
	('Gonzalo Quetzalcoatl','Cruz','Torrijos','Masculino'),
	('Irma Lizbeth','Diaz','Espinosa','Femenino'),
	('Guadalupe','Diaz','Roque','Femenino'),
	('Frida Sophia','Garcia','Castro','Femenino'),
	('Francisco Javier','Guzman','Braulio','Masculino'),
	('Brenda Paola','Hernandez','Badillo','Femenino'),
	('Yaotl Felipe','Lopez','Vizuet','Masculino'),
	('Angelica','Loranca','Vazquez','Femenino'),
	('Azael','Martinez','Saavedra','Masculino'),
	('Maria Fernanda','Mejia','Vargas','Femenino'),
	('Fidel Zeus','Moreno','Perez','Masculino'),
	('Jeyna Evelyn','Muñoz','Montoya','Femenino'),
	('Emiliano Pedro','Noguez','Torres','Masculino'),
	('Arian Pamela','Perez','Olivares','Femenino'),
	('Andrea Lizeth','Ramirez','Juarez','Femenino'),
	('Itzel Virginia','Rivas','Sosa','Femenino'),
	('Roxana','Riveros','Juarez','Femenino'),
	('Karol Michelle','Rosas','Gonzalez','Femenino'),
	('Mauricio David','Rosiles','Redonda','Masculino'),
	('David','Salgado','Samano','Masculino'),
	('Brandon Ian','Sandoval','Villanueva','Masculino'),
	('Itzel Jacqueline','Suarez','Florez','Femenino'),
	('Guadalupe Denise','Tagle','Perez','Femenino'),
	('Monserrat Dulce','Aguilar','Gonzalez','Femenino'),
	('Danae','Aguilar','Romero','Femenino'),
	('Hypatia Abigali','Cervantez','Lopez','Femenino'),
	('Jesus Ricardo','Chiman','Olivera','Masculino'),
	('Isaac','Espinosa','Moreno','Masculino'),
	('Alexa Ali','Franco','Malpica','Femenino'),
	('Gloria Rubi','Gallegos','Rodriguez','Femenino'),
	('Monserrat','Gudiño','Macin','Femenino'),
	('Melanie Valeria','Guzman','Alvarez','Femenino'),
	('Paola Monserrat','Hernandez','Castelan','Femenino'),
	('Brandon Abraham','Hernandez','Gonzalez','Masculino'),
	('Jesus Nestor','Hernandez','Vergara','Masculino'),
	('Israel','Herrans','Martinez','Masculino'),
	('Angel Edson de Jesus','Jimenez','Lopez','Masculino'),
	('Aniel Patricia','Lopez','Calderon','Femenino'),
	('Geodibelit','Lopez','Jimenez','Femenino'),
	('Miguel Angel','Marcial','Reyes','Masculino'),
	('Cristian','Martinez','Dominguez','Masculino'),
	('Karla Lilian','Martinez','Martinez','Femenino'),
	('Ismael','Mejia','Alvarez','Masculino'),
	('Ana Dalay','Morales','Morales','Femenino'),
	('Samantha','Navidad','Zuñiga','Femenino'),
	('Denisse Evelin','Osornio','De la Cruz','Femenino'),
	('Andrea Getzemany','Otero','Gomez','Femenino'),
	('Delia Guadalupe','Robles','Galeana','Femenino'),
	('Yoselin','Rosas','Ordoñez','Femenino'),
	('Carlos Sebastian','Trejo','Pacheco','Masculino'),
	('Adrian','Alvarez','Calderon','Masculino'),
	('Escarlet Jetzemanari','Alvarez','Martinez','Femenino'),
	('Fernando Daniel','Carrizosa','Alvarez','Masculino'),
	('Citlali Guadalupe','Castañeda','Giron','Femenino'),
	('Aranza Estefania','Chavez','Espinosa','Femenino'),
	('Zadkiel Alejandro','Cobos','Arredondo','Masculino'),
	('Abraham Alfonso','Diaz','Cazares','Masculino'),
	('Adrian','Estrada','Gallegos','Masculino'),
	('Gerardo Israel','Falcon','Duran','Masculino'),
	('Angel Gabriel','Franco','Delgado','Masculino'),
	('Eduardo','Garcia','Rodriguez','Masculino'),
	('Francisco Alejandro','Guevara','Barrera','Masculino'),
	('Carlos Eduardo','Hernandez','Martinez','Masculino'),
	('Rocio','Hernandez','Martinez','Femenino'),
	('Mitzi Aquetzali','Herrera','Vazquez','Femenino'),
	('Nuria Adilene','Jonguitud','Gonzalez','Femenino'),
	('Gisela','Muñoz','Garcia','Femenino'),
	('Gerardo','Oropeza','Magallanes','Masculino'),
	('Jovita','Perez','Muñoz','Femenino'),
	('Celia','Pulido','Romero','Femenino'),
	('Ilce Lorena','Ramirez','Bojorgez','Femenino'),
	('Maria de los Angeles','Reyes','Fernandez','Femenino'),
	('Pedro Ivan','Romero','Hernandez','Masculino'),
	('Rodrigo Ceceo','Sanchez','Florentino','Masculino'),
	('Alexander','Torres','Pizano','Masculino'),
	('Carlos Sebastian','Trejo','Pacheco','Masculino'),
	('Leonel Ranferi','Vasquez','Ramos','Masculino'),
	('Danira','Vela','Alonso','Femenino'),
	('Italivy Marsel','Velazquez','Segura','Femenino'),
	('Dante Gerardo','Zambrano','Rosendo','Masculino'),
	('Miguel Angel','Zapata','Rosales','Masculino'),
	('Mitzy Alondra','Alvarez','Alameda','Femenino'),
	('Alisson','Arredondo','Barajas','Femenino'),
	('Johana Sherlink','Arzate','Perez','Femenino'),
	('Roberto','Bartolo','Hernandez','Masculino'),
	('Jorge Gabriel','Betancourt','Campero','Masculino'),
	('Eduardo','Brown','Medina','Masculino'),
	('Gustavo Ulises','Cruz','Luciano','Masculino'),
	('Rene Ivan','Flores','Almogabar','Masculino'),
	('Alexis','Fuentes','Franco','Masculino'),
	('Yureymi','Galindez','Roman','Masculino'),
	('Edgar Daniel','Garcia','Gonzalez','Masculino'),
	('Miguel Andre','Jara','Perez','Masculino'),
	('Mitzy Damaris','Morales','Rangel','Femenino');
	
insert into estudiantes(id_persona) 
	values(1),(2),(4),(5),(7),(9),(10),
		   (11),(12),(13),(14),(15),(17),(19),(20),
		   (21),(23),(24),(26),(27),(28),(29),(30),
		   (31),(32),(33),(34),(35),(36),(37),(38),(39),(40),
		   (41),(42),(43),(45),(47),(48),(49),
		   (51),(52),(53),(54),(57),(58),(59),(60),
		   (62),(63),(64),(65),(66),(69),(70),
		   (71),(73),(74),(75),(76),(77),(78),(79),(80),
		   (81),(83),(84),(85),(86),(87),(88),(89),(90),
		   (91),(92),(94),(95),(96),(98),(99),(100);

INSERT INTO docente(
	id_persona, grado_academico, area_especialidad)
	VALUES (25,'Doctorado','Inteligencia Artificial'),
	(16,'Licenciatura','Sistemas Computacionales Móviles'),
	(46,'Técnico','Computación'),
	(82,'Licenciatura','Sistemas Computacionales Móviles'),
	(101,'Maestría','Tecnologás de la Información'),
	(56,'Licenciatura','Computo Científico'),
	(68,'Doctorado','Sistemas Computacionales de Alto Desempeño'),
	(67,'Doctorado','Mecatrónica'),
	(61,'Licenciatura','Sistemas Computacionales'),
	(6,'Maestría','Mecatrónica'),
	(44,'Doctorado','Ciencias de Datos'),
	(93,'Técnico','Tecnología de la Información'),
	(8,'Maestría','Inteligencia Artificial'),
	(55,'Doctorado','Computo Científico'),
	(97,'Doctorado','Sistemas Computacionales Móviles'),
	(3,'Técnico','Tecnología de la Información'),
	(22,'Licenciatura','Sistemas Computacionales'),
	(18,'Licenciatura','Computo Científico'),
	(50,'Técnico','Electronica'),
	(72,'Doctorado','Inteligencia Artificial');
	
INSERT INTO aula(
	nombre_aula, tipo, capacidad)
	VALUES ('1001','Aula',36),
	('1002','Aula',36),
	('1003','Aula',36),
	('1004','Aula',36),
	('1005','Aula',36),
	('1006','Aula',36),
	('1007','Aula',36),
	('1101','Laboratorio',36),
	('1102','Laboratorio',36),
	('1103','Laboratorio',36),
	('1104','Laboratorio',36),
	('1105','Laboratorio',36),
	('1106','Laboratorio',36),
	('1107','Laboratorio',36),
	('1201','Aula',36),
	('1202','Aula',36),
	('1203','Aula',36),
	('1204','Aula',36),
	('1205','Aula',36),
	('1206','Aula',36),
	('1207','Aula',36);
	
insert into Plantel(clave_plantel, nombre_plantel)
	values('ESCOM','Escuela Superior de Cómputo'),
	('CIC','Centro de Investigación en Cómputo'),
	('CIDETEC','Centro de Innovación y Desarrollo Tecnológico en Cómputo'),
	('ESFM','Escuela Superior de Física'),
	('ESIME ZAC','Escuela Superior de Mécanica y Electrica - Zacatenco'),
	('ESIME AZC','Escuela Superior de Mécanica y Electrica - Azcapotzalco'),
	('ESIME CUL','Escuela Superior de Mécanica y Electrica - Culhuacan'),
	('ESIME TIC','Escuela Superior de Mécanica y Electrica - Ticoman'),
	('UPIBI','Unidad Profesional Interdisciplinaria de Biotecnología'),
	('UPIIG','Unidad Profesional Interdisciplinaria de Ingeniería de Guanajuato'),
	('UPIITA','Unidad Profesional Interdisciplinaria de Ingeniería y Tecnologías Avanzadas'),
	('UPIIZ','Unidad Profesional Interdisciplinaria de Ingeniería de Zacatecas'),
	('UPIEM','Unidad Profesional Interdisciplinaria de Energía y Movilidad'),
	('UPIIT','Unidad Profesional Interdisciplinaria de Ingenieria de Tlaxcala');
	
insert into carrera(id_plantel,clave_carrera,nombre_carrera) values
	(1,'ISC','Ingeniería en Sistemas Computacionales'),
	(1,'LCD','Licenciatura en Ciencias de Datos'),
	(1,'IAA','Ingeniería en Inteligencia Artificial'),
	(1,'MCSCM','Maestría en Ciencias en Sistemas Computacionales Móviles'),
	(2,'DCC','Doctorado en Ciencias Computacionales'),
	(2,'MCC','Maestría en Ciencias Computacionales'),
	(2,'MCIC','Maestría en Ciencias en Ingeniería de Cómputo'),
	(3,'MTC','Maestría en Tecnología de Cómputo'),
	(3,'DISRM','Doctorado en Ingeiería de Sistemas Robóticos y Mecatrónicos'),
	(4,'LMA','Licenciatura en Matématica y Algorítmica'),
	(5,'ICE','Ingeniería en Comunicaciones y Electrónica'),
	(5,'MCIS','Maestría en Ciencias en Ingeniería de Sistemas'),
	(5,'MCIT','Maestría en Ciencias en Ingeniería de Telecomunicaciones'),
	(5,'DIS','Doctorado en Ingeniería de Sistemas'),
	(5,'DCIT','Doctorado en Ciencias en Ingeniería de Telecomunicaciones'),
	(6,'DISRM','Doctorado en Ingeiería de Sistemas Robóticos y Mecatrónicos'),
	(7,'IC','Ingeniería en Computación'),
	(7,'ICE','Ingeniería en Comunicaciones y Electrónica'),
	(7,'MCISE','Maestría en Ciencias en Sistemas Energéticos'),
	(7,'MISTI','Maestría en Ingeniería en Seguridad y Tecnologías de la Información'),
	(8,'MIA','Maestría en Ingeniería Aeronáutica'),
	(9,'IB','Ingeniería Biotecnológica'),
	(10,'IB','Ingeniería Biotecnológica'),
	(11,'IT','Ingeniería Telemática'),
	(11,'MTA','Maestría en Tecnología Avanzada'),
	(11,'DTA','Doctorado en Tecnología Avanzada'),
	(12,'ISC','Ingeniería en Sistemas Computacionales'),
	(12,'IAA','Ingeniería en Inteligencia Artificial'),
	(13,'ISERI','Ingeniería en Sistemas Energéticos y Redes Inteligentes'),
	(14,'IB','Ingeniería Biotecnológica'),
	(14,'LCD','Licenciatura en Ciencias de Datos'),
	(14,'IAA','Ingeniería en Inteligencia Artificial');
	
insert into Materia(id_carrera,clave,nombre_materia,creditos,semestre,academia)
	values(1,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(1,'CA','Cálculo Aplicado',7.5,02,'Ciencias Básicas'),
	(1,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(1,'IS','Ingeniería de Software',7.5,05,'Ciencias en Computación'),
	(1,'MD','Mineria de Datos',7.5,05,'Ciencias en Computación'),
	(1,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),
	(2,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(2,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(2,'MD','Mineria de Datos',7.5,05,'Ciencias en Computación'),
	(2,'IS','Ingeniería de Software',5,01,'Ingeniería en Sistemas'),
	(2,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),
	(3,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(3,'FIA','Fundamentos de Inteligencia Artificial',7.5,04,'Inteligencia Artificial'),
	(3,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(3,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),	
	(4,'ADM','Arquitectura de Dispositivos Móviles',7.5,02,'Sistemas Moviles'),
	(5,'MD','Mineria de Datos',5,03,'Ciencias en Computación'),
	(5,'IS','Ingeniería de Software',5,01,'Ciencias en Computación'),
	(6,'FIA','Fundamentos de Inteligencia Artificial',5,02,'Inteligencia Artificial'),
	(6,'IS','Ingeniería de Software',5,01,'Ciencias en Computación'),
	(6,'MD','Mineria de Datos',5,03,'Ciencias en Computación'),
	(7,'TG','Teoría de Grafos',5,03,'Formación Básica'),
	(8,'MDD','Matemáticas Discretas',5,01,'Formación Básica'),
	(9,'RA','Robotica Avanzada',5,03,'Digitales'),
	(27,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(27,'CA','Cálculo Aplicado',7.5,02,'Ciencias Básicas'),
	(27,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(27,'IS','Ingeniería de Software',7.5,05,'Ciencias en Computación'),
	(27,'MD','Mineria de Datos',7.5,05,'Ciencias en Computación'),
	(27,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),
	(28,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(28,'FIA','Fundamentos de Inteligencia Artificial',7.5,04,'Inteligencia Artificial'),
	(28,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(28,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),	
	(32,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(32,'FIA','Fundamentos de Inteligencia Artificial',7.5,04,'Inteligencia Artificial'),
	(32,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(32,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),	
	(31,'FP','Fundamentos de Programación',7.5,01,'Ciencias en Computación'),
	(31,'BD','Bases de Datos',7.5,03,'Ingeniería en Sistemas'),
	(31,'MD','Mineria de Datos',7.5,05,'Ciencias en Computación'),
	(31,'IS','Ingeniería de Software',5,01,'Ingeniería en Sistemas'),
	(31,'MDD','Matemáticas Discretas',7.5,01,'Formación Básica'),
	(29,'PB','Programación Básica',7.5,01,'Tecnologías Digitales'),
	(29,'PA','Programación Avanzada',7.5,02,'Tecnologías Digitales'),
	(29,'BD','Bases de Datos',7.5,05,'Tecnologías Digitales');
	
INSERT INTO Horarios(
	id_materia, id_aula, dia, hora_inicio, hora_fin) VALUES
	(1, 1, 'Lunes', '7:00', '8:30'),
	(1, 1, 'Miercoles', '7:00', '8:30'),
	(1, 8, 'Jueves', '7:00', '8:30'),
	(2, 1, 'Lunes', '8:30', '10:00'),
	(2, 1, 'Miercoles', '8:30', '10:00'),
	(2, 8, 'Jueves', '8:30', '10:00'),
	(3, 1, 'Lunes', '10:30', '12:00'),
	(3, 1, 'Miercoles', '10:30', '12:00'),
	(3, 8, 'Jueves', '10:30', '12:00'),
	(4, 1, 'Lunes','12:00','13:30'),
	(4, 1, 'Miercoles','12:00','13:30'),
	(4, 8, 'Jueves','12:00','13:30'),
	(5, 1, 'Lunes','20:00','21:30'),
	(5, 1, 'Miercoles','20:00','21:30'),
	(5, 8, 'Jueves','20:00','21:30'),
	(6, 1, 'Lunes','15:00','16:30'),
	(6, 1, 'Miercoles','15:00','16:30'),
	(6, 8, 'Jueves','15:00','16:30'),
	(7, 1, 'Lunes','16:30','18:00'),
	(7, 1, 'Miercoles','16:30','18:00'),
	(7, 8, 'Jueves','16:30','18:00'),
	(8, 1, 'Lunes','18:30','20:00'),
	(8, 1, 'Miercoles','18:30','20:00'),
	(8, 8, 'Jueves','18:30','20:00'),	
	(9, 9, 'Lunes', '7:00', '8:30'),
	(9, 2, 'Martes', '7:00', '8:30'),
	(9, 2, 'Jueves', '7:00', '8:30'),
	(10, 9, 'Lunes', '8:30', '10:00'),
	(10, 2, 'Martes', '8:30', '10:00'),
	(10, 2, 'Jueves', '8:30', '10:00'),
	(11, 9, 'Lunes', '10:30', '12:00'),
	(11, 2, 'Martes', '10:30', '12:00'),
	(11, 2, 'Jueves', '10:30', '12:00'),
	(12, 9, 'Lunes','12:00','13:30'),
	(12, 2, 'Martes','12:00','13:30'),
	(12, 2, 'Jueves','12:00','13:30'),
	(13, 9, 'Lunes','20:00','21:30'),
	(13, 2, 'Martes','20:00','21:30'),
	(13, 2, 'Jueves','20:00','21:30'),
	(14, 9, 'Lunes','15:00','16:30'),
	(14, 2, 'Miercoles','15:00','16:30'),
	(14, 2, 'Jueves','15:00','16:30'),
	(15, 9, 'Lunes','16:30','18:00'),
	(15, 2, 'Martes','16:30','18:00'),
	(15, 2, 'Jueves','16:30','18:00'),
	(16, 9, 'Lunes','18:30','20:00'),
	(16, 2, 'Martes','18:30','20:00'),
	(16, 2, 'Jueves','18:30','20:00'),	
	(17, 3, 'Lunes', '7:00', '8:30'),
	(17, 3, 'Jueves', '7:00', '8:30'),
	(17, 10, 'Viernes', '7:00', '8:30'),
	(18, 3, 'Lunes', '8:30', '10:00'),
	(18, 3, 'Jueves', '8:30', '10:00'),
	(18, 10, 'Viernes', '8:30', '10:00'),
	(19, 3, 'Lunes', '10:30', '12:00'),
	(19, 3, 'Jueves', '10:30', '12:00'),
	(19, 10, 'Viernes', '10:30', '12:00'),
	(20, 3, 'Lunes','12:00','13:30'),
	(20, 3, 'Jueves','12:00','13:30'),
	(20, 10, 'Viernes','12:00','13:30'),
	(21, 3, 'Lunes','20:00','21:30'),
	(21, 3, 'Jueves','20:00','21:30'),
	(21, 10, 'Viernes','20:00','21:30'),
	(22, 3, 'Lunes','15:00','16:30'),
	(22, 3, 'Jueves','15:00','16:30'),
	(22, 10, 'Viernes','15:00','16:30'),
	(23, 3, 'Lunes','16:30','18:00'),
	(23, 3, 'Jueves','16:30','18:00'),
	(23, 10, 'Viernes','16:30','18:00'),
	(24, 3, 'Lunes','18:30','20:00'),
	(24, 3, 'Jueves','18:30','20:00'),
	(24, 10, 'Viernes','18:30','20:00'),	
	(25, 4, 'Lunes', '7:00', '8:30'),
	(25, 11, 'Miercoles', '7:00', '8:30'),
	(25, 4, 'Jueves', '7:00', '8:30'),
	(26, 4, 'Lunes', '8:30', '10:00'),
	(26, 11, 'Miercoles', '8:30', '10:00'),
	(26, 4, 'Jueves', '8:30', '10:00'),
	(27, 4, 'Lunes', '10:30', '12:00'),
	(27, 11, 'Miercoles', '10:30', '12:00'),
	(27, 4, 'Jueves', '10:30', '12:00'),
	(28, 4, 'Lunes','12:00','13:30'),
	(28, 11, 'Miercoles','12:00','13:30'),
	(28, 4, 'Jueves','12:00','13:30'),
	(29, 4, 'Lunes','20:00','21:30'),
	(29, 11, 'Miercoles','20:00','21:30'),
	(29, 4, 'Jueves','20:00','21:30'),
	(30, 4, 'Lunes','15:00','16:30'),
	(30, 11, 'Miercoles','15:00','16:30'),
	(30, 4, 'Jueves','15:00','16:30'),
	(31, 4, 'Lunes','16:30','18:00'),
	(31, 11, 'Miercoles','16:30','18:00'),
	(31, 4, 'Jueves','16:30','18:00'),
	(32, 4, 'Lunes','18:30','20:00'),
	(32, 11, 'Miercoles','18:30','20:00'),
	(32, 4, 'Jueves','18:30','20:00'),
	(33, 5, 'Lunes', '7:00', '8:30'),
	(33, 12, 'Martes', '7:00', '8:30'),
	(33, 5, 'Jueves', '7:00', '8:30'),
	(34, 5, 'Lunes', '8:30', '10:00'),
	(34, 12, 'Martes', '8:30', '10:00'),
	(34, 5, 'Jueves', '8:30', '10:00'),
	(35, 5, 'Lunes', '10:30', '12:00'),
	(35, 12, 'Martes', '10:30', '12:00'),
	(35, 5, 'Jueves', '10:30', '12:00'),
	(36, 5, 'Lunes','12:00','13:30'),
	(36, 12, 'Martes','12:00','13:30'),
	(36, 5, 'Jueves','12:00','13:30'),
	(37, 5, 'Lunes','20:00','21:30'),
	(37, 12, 'Martes','20:00','21:30'),
	(37, 5, 'Jueves','20:00','21:30'),
	(38, 5, 'Lunes','15:00','16:30'),
	(38, 12, 'Miercoles','15:00','16:30'),
	(38, 5, 'Jueves','15:00','16:30'),
	(39, 5, 'Lunes','16:30','18:00'),
	(39, 12, 'Martes','16:30','18:00'),
	(39, 5, 'Jueves','16:30','18:00'),
	(40, 5, 'Lunes','18:30','20:00'),
	(40, 12, 'Martes','18:30','20:00'),
	(40, 5, 'Jueves','18:30','20:00'),
	(41, 6, 'Lunes', '7:00', '8:30'),
	(41, 13, 'Miercoles', '7:00', '8:30'),
	(41, 6, 'Jueves', '7:00', '8:30'),
	(42, 6, 'Lunes', '8:30', '10:00'),
	(42, 13, 'Miercoles', '8:30', '10:00'),
	(42, 6, 'Jueves', '8:30', '10:00'),
	(43, 6, 'Lunes', '10:30', '12:00'),
	(43, 13, 'Miercoles', '10:30', '12:00'),
	(43, 6, 'Jueves', '10:30', '12:00'),
	(44, 6, 'Lunes','12:00','13:30'),
	(44, 13, 'Miercoles','12:00','13:30'),
	(44, 6, 'Jueves','12:00','13:30'),
	(45, 6, 'Lunes','20:00','21:30'),
	(45, 13, 'Miercoles','20:00','21:30'),
	(45, 6, 'Jueves','20:00','21:30'),
	(46, 6, 'Lunes','15:00','16:30'),
	(46, 13, 'Miercoles','15:00','16:30'),
	(46, 6, 'Jueves','15:00','16:30');
	
insert into estudiante_materia(id_boleta,id_materia,calificacion) values
	(2019000000,1,8.2),
	(2019000000,2,6.1),
	(2019000000,3,6.2),
	(2019000000,4,9.2),
	(2019000000,5,2.1),
	(2019000001,6,10),
	(2019000001,7,1.1),
	(2019000002,8,8.6),
	(2019000003,9,3.4),
	(2019000003,10,8),
	(2019000003,11,8.5),
	(2019000003,12,8.7),
	(2019000003,13,2.9),
	(2019000003,14,10),
	(2019000004,15,4.1),
	(2019000004,16,10),
	(2019000004,17,9),
	(2019000004,18,9.1),
	(2019000005,19,10),
	(2019000005,20,9),
	(2019000005,21,7.8),
	(2019000005,22,8.2),
	(2019000006,23,2),
	(2019000006,24,10),
	(2019000006,25,3.1),
	(2019000006,26,10),
	(2019000006,27,1),
	(2019000007,28,5.6),
	(2019000008,29,10),
	(2019000008,30,5),
	(2019000008,31,9.6),
	(2019000008,32,4.5),
	(2019000008,33,8.2),
	(2019000008,34,3.0),
	(2019000009,35,6.7),
	(2019000009,36,7.9),
	(2019000009,37,5.6),
	(2019000009,38,7.3),
	(2019000010,39,4.0),
	(2019000011,40,2.4),
	(2019000011,41,6.4),
	(2019000011,42,8.7),
	(2019000011,43,9.0),
	(2019000012,44,5.7),
	(2019000012,45,1.2),
	(2019000012,46,7.2),
	(2019000013,1,8.2),
	(2019000013,2,6.1),
	(2019000013,3,6.2),
	(2019000013,4,9.2),
	(2019000014,5,2.1),
	(2019000015,6,10),
	(2019000015,7,1.1),
	(2019000015,8,8.6),
	(2019000016,9,3.4),
	(2019000016,10,8),
	(2019000016,11,8.5),
	(2019000016,12,8.7),
	(2019000017,13,2.9),
	(2019000017,14,10),
	(2019000017,15,4.1),
	(2019000017,16,10),
	(2019000017,17,9),
	(2019000017,18,9.1),
	(2019000018,19,10),
	(2019000018,20,9),
	(2019000018,21,7.8),
	(2019000018,22,8.2),
	(2019000018,23,2),
	(2019000018,24,10),
	(2019000019,25,3.1),
	(2019000019,26,10),
	(2019000020,27,1),
	(2019000020,28,5.6),
	(2019000020,29,10),
	(2019000020,30,5),
	(2019000020,31,9.6),
	(2019000021,32,4.5),
	(2019000022,33,8.2),
	(2019000022,34,3.0),
	(2019000022,35,6.7),
	(2019000022,36,7.9),
	(2019000022,37,5.6),
	(2019000022,38,7.3),
	(2019000023,39,4.0),
	(2019000023,40,2.4),
	(2019000023,41,6.4),
	(2019000024,42,8.7),
	(2019000024,43,9.0),
	(2019000024,44,5.7),
	(2019000024,45,1.2),
	(2019000024,46,7.2),
	(2019000025,1,8.2),
	(2019000025,2,6.1),
	(2019000025,3,6.2),
	(2019000025,4,9.2),
	(2019000026,5,2.1),
	(2019000026,6,10),
	(2019000026,7,1.1),
	(2019000026,8,8.6),
	(2019000026,9,3.4),
	(2019000026,10,8),
	(2019000027,11,8.5),
	(2019000027,12,8.7),
	(2019000027,13,2.9),
	(2019000028,14,10),
	(2019000028,15,4.1),
	(2019000028,16,10),
	(2019000028,17,9),
	(2019000029,18,9.1),
	(2019000030,19,10),
	(2019000030,20,9),
	(2019000030,21,7.8),
	(2019000030,22,8.2),
	(2019000030,23,2),
	(2019000031,24,10),
	(2019000032,25,3.1),
	(2019000032,26,10),
	(2019000033,27,1),
	(2019000033,28,5.6),
	(2019000033,29,10),
	(2019000033,30,5),
	(2019000034,31,9.6),
	(2019000034,32,4.5),
	(2019000034,33,8.2),
	(2019000034,34,3.0),
	(2019000035,35,6.7),
	(2019000035,36,7.9),
	(2019000035,37,5.6),
	(2019000035,38,7.3),
	(2019000035,39,4.0),
	(2019000036,40,2.4),
	(2019000036,41,6.4),
	(2019000036,42,8.7),
	(2019000036,43,9.0),
	(2019000036,44,5.7),
	(2019000036,45,1.2),
	(2019000035,46,7.2),
	(2019000035,1,8.2),
	(2019000035,2,6.1),
	(2019000035,3,6.2),
	(2019000035,4,9.2),
	(2019000036,5,2.1),
	(2019000037,6,10),
	(2019000038,7,1.1),
	(2019000039,8,8.6),
	(2019000039,9,3.4),
	(2019000039,10,8),
	(2019000039,11,8.5),
	(2019000040,12,8.7),
	(2019000040,13,2.9),
	(2019000040,14,10),
	(2019000041,15,4.1),
	(2019000041,16,10),
	(2019000042,17,9),
	(2019000042,18,9.1),
	(2019000042,19,10),
	(2019000042,20,9),
	(2019000043,21,7.8),
	(2019000043,22,8.2),
	(2019000043,23,2),
	(2019000043,24,10),
	(2019000044,25,3.1),
	(2019000044,26,10),
	(2019000044,27,1),
	(2019000044,28,5.6),
	(2019000044,29,10),
	(2019000044,30,5),
	(2019000045,31,9.6),
	(2019000045,32,4.5),
	(2019000045,33,8.2),
	(2019000045,34,3.0),
	(2019000046,35,6.7),
	(2019000046,36,7.9),
	(2019000046,37,5.6),
	(2019000046,38,7.3),
	(2019000046,39,4.0),
	(2019000047,40,2.4),
	(2019000047,41,6.4),
	(2019000047,42,8.7),
	(2019000048,43,9.0),
	(2019000048,44,5.7),
	(2019000048,45,1.2),
	(2019000048,46,7.2),
	(2019000048,1,8.2),
	(2019000049,2,6.1),
	(2019000049,3,6.2),
	(2019000050,4,9.2),
	(2019000050,5,2.1),
	(2019000050,6,10),
	(2019000051,7,1.1),
	(2019000051,8,8.6),
	(2019000051,9,3.4),
	(2019000051,10,8),
	(2019000052,11,8.5),
	(2019000053,12,8.7),
	(2019000053,13,2.9),
	(2019000053,14,10),
	(2019000053,15,4.1),
	(2019000053,16,10),
	(2019000053,17,9),
	(2019000054,18,9.1),
	(2019000054,19,10),
	(2019000054,20,9),
	(2019000054,21,7.8),
	(2019000054,22,8.2),
	(2019000054,23,2),
	(2019000055,24,10),
	(2019000055,25,3.1),
	(2019000056,26,10),
	(2019000056,27,1),
	(2019000056,28,5.6),
	(2019000056,29,10),
	(2019000056,30,5),
	(2019000057,31,9.6),
	(2019000057,32,4.5),
	(2019000057,33,8.2),
	(2019000057,34,3.0),
	(2019000057,35,6.7),
	(2019000057,36,7.9),
	(2019000058,37,5.6),
	(2019000059,38,7.3),
	(2019000060,39,4.0),
	(2019000060,40,2.4),
	(2019000060,41,6.4),
	(2019000060,42,8.7),
	(2019000060,43,9.0),
	(2019000060,44,5.7),
	(2019000061,45,1.2),
	(2019000062,46,7.2),
	(2019000063,1,8.2),
	(2019000063,2,6.1),
	(2019000063,3,6.2),
	(2019000064,4,9.2),
	(2019000064,5,2.1),
	(2019000064,6,10),
	(2019000065,7,1.1),
	(2019000065,8,8.6),
	(2019000065,9,3.4),
	(2019000065,10,8),
	(2019000065,11,8.5),
	(2019000066,12,8.7),
	(2019000066,13,2.9),
	(2019000067,14,10),
	(2019000067,15,4.1),
	(2019000067,16,10),
	(2019000067,17,9),
	(2019000067,18,9.1),
	(2019000067,19,10),
	(2019000068,20,9),
	(2019000069,21,7.8),
	(2019000070,22,8.2),
	(2019000070,23,2),
	(2019000070,24,10),
	(2019000070,25,3.1),
	(2019000070,26,10),
	(2019000071,27,1),
	(2019000071,28,5.6),
	(2019000072,29,10),
	(2019000072,30,5),
	(2019000072,31,9.6),
	(2019000073,32,4.5),
	(2019000073,33,8.2),
	(2019000073,34,3.0),
	(2019000074,35,6.7),
	(2019000074,36,7.9),
	(2019000075,37,5.6),
	(2019000075,38,7.3),
	(2019000075,39,4.0),
	(2019000075,40,2.4),
	(2019000075,41,6.4),
	(2019000076,42,8.7),
	(2019000076,43,9.0),
	(2019000077,44,5.7),
	(2019000077,45,1.2),
	(2019000077,46,7.2),
	(2019000077,1,8.2),
	(2019000078,2,6.1),
	(2019000078,3,6.2),
	(2019000078,4,9.2),
	(2019000078,5,2.1),
	(2019000079,6,10),
	(2019000080,7,1.1),
	(2019000080,8,8.6);
	
insert into grupos(id_profesor,id_materia,grupo,numero_estudiantes) values
	(1,1,'1FP1',0),
	(1,2,'2CA1',0),
	(1,3,'3BD1',0),
	(2,4,'5IS1',0),
	(2,5,'5MD1',0),
	(3,6,'1MDD',0),
	(3,7,'1FP2',0),
	(3,8,'3BD2',0),
	(3,9,'5MD2',0),
	(3,10,'5IS2',0),
	(4,11,'2MDD',0),
	(4,12,'1FP3',0),
	(4,13,'4FIA',0),
	(4,14,'3BD3',0),
	(5,15,'3MDD',0),
	(6,16,'2ADM',0),
	(6,17,'3MD3',0),
	(6,18,'1IS3',0),
	(6,19,'2FIA',0),
	(7,20,'1IS4',0),
	(7,21,'3MD4',0),
	(7,22,'3TG1',0),
	(7,23,'3MDD',0),
	(8,24,'3RA1',0),
	(8,25,'1FP4',0),
	(8,26,'2CA1',0),
	(8,27,'3BD4',0),
	(9,28,'5IS5',0),
	(10,29,'5MD5',0),
	(10,30,'4MDD',0),
	(11,31,'1FP5',0),
	(12,32,'3FIA',0),
	(12,33,'3BD5',0),
	(12,34,'5MDD',0),
	(13,35,'1FP6',0),
	(14,36,'4FIA',0),
	(14,37,'3BD6',0),	
	(15,38,'6MDD',0),
	(15,39,'1FP7',0),
	(16,40,'3BD7',0),
	(16,41,'5MD6',0),
	(16,42,'1IS6',0),
	(16,43,'7MDD',0),
	(17,44,'1PB1',0),
	(17,45,'2PB1',0),
	(17,46,'3BD8',0);
	
create table plantel_carrera(
	id_carrera integer,
	id_plantel integer
);
alter table plantel_carrera add constraint "fk_plantel_plantel_carrera" foreign key (id_plantel) references plantel(id_plantel);
alter table plantel_carrera add constraint "fk_carrera_plantel_carrera" foreign key (id_carrera) references carrera(id_carrera);
insert into plantel_carrera select id_carrera, id_plantel from carrera;

create table aula_horario(
	id_aula integer,
	id_horario integer
);
alter table aula_horario add constraint "fk_aula_aula_horario" foreign key (id_aula) references aula(id_aula);
alter table aula_horario add constraint "fk_horario_aula_horario" foreign key (id_horario) references horarios(id_horario);
insert into aula_horario select id_aula, id_horario from horarios;

create table carrera_materia(
	id_carrera integer,
	id_materia integer
);
alter table carrera_materia add constraint "fk_carrera_carrera_materia" foreign key (id_carrera) references carrera(id_carrera);
alter table carrera_materia add constraint "fk_materia_carrera_materia" foreign key (id_materia) references materia(id_materia);
insert into carrera_materia select id_carrera, id_materia from materia;

create table horario_materia(
	id_horario integer,
	id_materia integer
);
alter table horario_materia add constraint "fk_horario_horario_materia" foreign key (id_horario) references horarios(id_horario);
alter table horario_materia add constraint "fk_materia_horario_materia" foreign key (id_materia) references materia(id_materia);
insert into horario_materia select id_horario, id_materia from horarios; 

PostgreSQL online editor

Write, Run & Share PostgreSQL queries online using OneCompiler's PostgreSQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for PostgreSQL. Getting started with the OneCompiler's PostgreSQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose database as 'PostgreSQL' and start writing queries to learn and test online without worrying about tedious process of installation.

About PostgreSQL

PostgreSQL is a open source relational database system and is also knows as Postgres.

Key Features:

  • Postgres is not only free and open-source but also it is highly extensible.
  • Custom Data types and funtions from various programming languaues can be introduced and the good part is compiling entire database is not required.
  • ACID(Atomicity, Consistency, Isolation, Durability) compliant.
  • First DBMS which implemented Multi-version concurrency control (MVCC) feature.
  • It's the default database server for MacOS.
  • It supports all major operating systems like Linux, Windows, OpenBSD,FreeBSD etc.

Syntax help

1. CREATE

CREATE command is used to create a table, schema or an index.

Syntax:

         CREATE TABLE table_name (
                column1 datatype,
                column2 datatype,
                ....);

2. ALTER

ALTER command is used to add, modify or delete columns or constraints from the database table.

Syntax

ALTER TABLE Table_name ADD column_name datatype;

3. TRUNCATE:

TRUNCATE command is used to delete the data present in the table but this will not delete the table.

Syntax

TRUNCATE table table_name;

4. DROP

DROP command is used to delete the table along with its data.

Syntax

DROP TABLE table_name;

5. RENAME

RENAME command is used to rename the table name.

Syntax

ALTER TABLE table_name1 RENAME to new_table_name1; 

6. INSERT

INSERT Statement is used to insert new records into the database table.

Syntax

INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

7. SELECT

Select statement is used to select data from database tables.

Syntax:

SELECT column1, column2, ...
FROM table_name; 

8. UPDATE

UPDATE statement is used to modify the existing values of records present in the database table.

Syntax

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition; 

9. DELETE

DELETE statement is used to delete the existing records present in the database table.

Syntax

DELETE FROM table_name where condition;