Está en la página 1de 5

-- Creamos la base de datos

CREATE DATABASE Escuela;

-- Nos conectamos a la base de datos

USE Escuela;

-- Creamos la tabla Estudiantes

CREATE TABLE Estudiantes (

EstudianteID INT PRIMARY KEY IDENTITY(1,1),

Nombre VARCHAR(50) NOT NULL,

Apellido VARCHAR(50) NOT NULL,

Edad INT CHECK (Edad >= 18),

Genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL,

CarreraID INT,

CONSTRAINT FK_Estudiantes_Carreras FOREIGN KEY (CarreraID) REFERENCES


Carreras(CarreraID),

CONSTRAINT UC_Estudiantes_Nombre_Apellido UNIQUE (Nombre, Apellido)

);

-- Creamos la tabla Profesores

CREATE TABLE Profesores (

ProfesorID INT PRIMARY KEY IDENTITY(1,1),

Nombre VARCHAR(50) NOT NULL,

Apellido VARCHAR(50) NOT NULL,

Edad INT CHECK (Edad >= 25),

Genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL,

CONSTRAINT UC_Profesores_Nombre_Apellido UNIQUE (Nombre, Apellido)

);
-- Creamos la tabla Cursos

CREATE TABLE Cursos (

CursoID INT PRIMARY KEY IDENTITY(1,1),

Nombre VARCHAR(50) NOT NULL,

Creditos INT NOT NULL CHECK (Creditos > 0),

ProfesorID INT,

CONSTRAINT FK_Cursos_Profesores FOREIGN KEY (ProfesorID) REFERENCES


Profesores(ProfesorID)

);

-- Creamos la tabla Pensiones

CREATE TABLE Pensiones (

PensionID INT PRIMARY KEY IDENTITY(1,1),

EstudianteID INT,

Monto DECIMAL(10, 2) NOT NULL,

FechaPago DATE NOT NULL,

CONSTRAINT FK_Pensiones_Estudiantes FOREIGN KEY (EstudianteID) REFERENCES


Estudiantes(EstudianteID),

CONSTRAINT UC_Pensiones_EstudianteID_FechaPago UNIQUE (EstudianteID, FechaPago)

);

-- Creamos la tabla Carreras

CREATE TABLE Carreras (

CarreraID INT PRIMARY KEY IDENTITY(1,1),

Nombre VARCHAR(50) NOT NULL,

Duracion INT CHECK (Duracion > 0), -- En años

CONSTRAINT UC_Carreras_Nombre UNIQUE (Nombre)

);

-- Creamos la tabla Notas


CREATE TABLE Notas (

NotaID INT PRIMARY KEY IDENTITY(1,1),

EstudianteID INT,

CursoID INT,

Calificacion DECIMAL(4, 2) NOT NULL CHECK (Calificacion >= 0 AND Calificacion <= 100),

CONSTRAINT FK_Notas_Estudiantes FOREIGN KEY (EstudianteID) REFERENCES


Estudiantes(EstudianteID),

CONSTRAINT FK_Notas_Cursos FOREIGN KEY (CursoID) REFERENCES Cursos(CursoID)

);

-- Creamos la base de datos

CREATE DATABASE Escuela;

-- Nos conectamos a la base de datos

USE Escuela;

-- Creamos la tabla Estudiantes

CREATE TABLE Estudiantes (

EstudianteID INT PRIMARY KEY AUTO_INCREMENT,

Nombre VARCHAR(50) NOT NULL,

Apellido VARCHAR(50) NOT NULL,

Edad INT CHECK (Edad >= 18),

Genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL,

CarreraID INT,

FOREIGN KEY (CarreraID) REFERENCES Carreras(CarreraID)

);
-- Creamos la tabla Profesores

CREATE TABLE Profesores (

ProfesorID INT PRIMARY KEY AUTO_INCREMENT,

Nombre VARCHAR(50) NOT NULL,

Apellido VARCHAR(50) NOT NULL,

Edad INT CHECK (Edad >= 25),

Genero ENUM('Masculino', 'Femenino', 'Otro') NOT NULL

);

-- Creamos la tabla Cursos

CREATE TABLE Cursos (

CursoID INT PRIMARY KEY AUTO_INCREMENT,

Nombre VARCHAR(50) NOT NULL,

Creditos INT NOT NULL CHECK (Creditos > 0),

ProfesorID INT,

FOREIGN KEY (ProfesorID) REFERENCES Profesores(ProfesorID)

);

-- Creamos la tabla Pensiones

CREATE TABLE Pensiones (

PensionID INT PRIMARY KEY AUTO_INCREMENT,

EstudianteID INT,

Monto DECIMAL(10, 2) NOT NULL,

FechaPago DATE NOT NULL,

FOREIGN KEY (EstudianteID) REFERENCES Estudiantes(EstudianteID)

);

-- Creamos la tabla Carreras

CREATE TABLE Carreras (


CarreraID INT PRIMARY KEY AUTO_INCREMENT,

Nombre VARCHAR(50) NOT NULL,

Duracion INT CHECK (Duracion > 0) -- En años

);

-- Creamos la tabla Notas

CREATE TABLE Notas (

NotaID INT PRIMARY KEY AUTO_INCREMENT,

EstudianteID INT,

CursoID INT,

Calificacion DECIMAL(4, 2) NOT NULL CHECK (Calificacion >= 0 AND Calificacion <= 100),

FOREIGN KEY (EstudianteID) REFERENCES Estudiantes(EstudianteID),

FOREIGN KEY (CursoID) REFERENCES Cursos(CursoID)

);

-- Agregamos restricciones de unicidad

ALTER TABLE Estudiantes ADD CONSTRAINT UC_Estudiantes_Nombre_Apellido UNIQUE (Nombre,


Apellido);

ALTER TABLE Carreras ADD CONSTRAINT UC_Carreras_Nombre UNIQUE (Nombre);

ALTER TABLE Profesores ADD CONSTRAINT UC_Profesores_Nombre_Apellido UNIQUE (Nombre,


Apellido);

-- Agregamos restricción de unicidad compuesta

ALTER TABLE Pensiones ADD CONSTRAINT UC_Pensiones_EstudianteID_FechaPago UNIQUE


(EstudianteID, FechaPago);

---cambiar mombre de columna


EXEC sp_rename 'CURSOS.NOMBRE_CURSO','NOMBRE_CURSOS','COLUMN';

También podría gustarte