betoesquivel icon

AMSS sql ddl

betoesquivel | PRO | 11/04/14 06:59:17 PM UTC | 0 ⭐ | 379 👁️ | Never ⏰ | []
SQL |

2 KB

|

None

|

0 👍

/

0 👎

CREATE TABLE escuela (
  id INT NOT NULL,
  nombre VARCHAR(30),
  
  PRIMARY KEY (id)
  
) ENGINE=INNODB;
 
CREATE TABLE departamento (
  id INT NOT NULL,
  nombre VARCHAR(30),
  idEscuela INT NOT NULL,
  idJefe INT NOT NULL,
  
  PRIMARY KEY (id),
  
  FOREIGN KEY (idEscuela)
    REFERENCES escuela(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
  
) ENGINE=INNODB;
 
CREATE TABLE profesor (
  id INT NOT NULL,
  nombre VARCHAR(30),
  idDepartamento INT NOT NULL,
  
  PRIMARY KEY (id),
  
  FOREIGN KEY (idDepartamento)
    REFERENCES departamento(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
  
) ENGINE=INNODB;
 
CREATE TABLE curso (
  id INT NOT NULL,
  nombre VARCHAR(30),
  idDepartamento INT NOT NULL,
  
  PRIMARY KEY (id),
  
  FOREIGN KEY (idDepartamento)
    REFERENCES departamento(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
  
) ENGINE=INNODB;
 
CREATE TABLE estudiante (
  id INT NOT NULL,
  nombre VARCHAR(30),
  idEscuela INT NOT NULL,
  
  PRIMARY KEY (id),
  
  FOREIGN KEY (idEscuela)
    REFERENCES escuela(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
  
) ENGINE=INNODB;
 
CREATE TABLE curso_estudiante (
  idCurso INT NOT NULL,
  idEstudiante INT NOT NULL,
  calificacion INT,
  
  PRIMARY KEY (idCurso, idEstudiante),
  
  FOREIGN KEY (idCurso)
    REFERENCES curso(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE,
  
  FOREIGN KEY (idEstudiante)
    REFERENCES estudiante(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
  
) ENGINE=INNODB;
 
CREATE TABLE curso_profesor (
  idCurso INT NOT NULL,
  idProfesor INT NOT NULL,
  
  PRIMARY KEY (idCurso, idProfesor),
  
  FOREIGN KEY (idCurso)
    REFERENCES curso(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE,
  
  FOREIGN KEY (idProfesor)
    REFERENCES profesor(id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
  
) ENGINE=INNODB;
 
ALTER TABLE departamento
 
ADD CONSTRAINT
FOREIGN KEY (idJefe) REFERENCES profesor(id)
ON UPDATE CASCADE
ON DELETE CASCADE;

Comments