EJERCICIO 1:
CREATE TABLE profesores (
nombre VARCHAR2(10) UNIQUE,
apellido1 VARCHAR2(10),
apellido2 VARCHAR2(10),
nif_profesor VARCHAR2(10)
CONSTRAINT nif_prof_pk PRIMARY KEY,
direccion VARCHAR2(20),
titulacion VARCHAR2(20),
SALARIO NUMBER(8) NOT NULL
);
CREATE TABLE cursos (
nombre_curso VARCHAR2(10) UNIQUE,
codigo_curso NUMBER(8) PRIMARY KEY,
nif_profesor VARCHAR2(10),
CONSTRAINT cur_nip_fk FOREIGN KEY (nif_profesor)
REFERENCES profesores (NIF_PROFESOR) ON DELETE CASCADE,
max_alumnos NUMBER(8),
fecha_ini DATE,
fecha_fin DATE,
CONSTRAINT cur_fec_ck CHECK (fecha_fin>fecha_ini),
horas_curso NUMBER(8) NOT NULL
);
CREATE TABLE alumnos (
nombre VARCHAR2 (10),
apellido1 VARCHAR2 (15),
apellido2 VARCHAR2 (15),
nif VARCHAR2 (10) PRIMARY KEY,
direccion VARCHAR2 (20),
sexo VARCHAR2 (1),
CONSTRAINT alu_sex_ck CHECK (SEXO IN ('M' , 'H')),
fecha_nacimiento DATE,
curso NUMBER(8),
CONSTRAINT cur_alum_fk FOREIGN KEY (curso)
REFERENCES cursos (codigo_curso)
);
EJERCICIO2:
1. Crea un nuevo atributo llamado Edad de tipo numérico a la tabla ALUMNOS.
ALTER TABLE alumnos ADD (edad NUMBER(2));
Añade las siguientes restricciones:
2. Modifica el campo que has creado anteriormente para que la edad del alumno o
alumna esté comprendida entre 14 y 65 años.
ALTER TABLE alumnos ADD CONSTRAINT eda_alu_ck
CHECK (edad BETWEEN 14 AND 65);
3. Modifica el campo Número de horas del CURSO de manera que solo pueda haber
cursos con 30, 40 o 60 horas.
ALTER TABLE cursos ADD CONSTRAINT hor_cur_ck
CHECK ((horas_curso IN('30', '40', '60'));
4. No podemos añadir un curso si su número máximo de alumnos es inferior a 15.
ALTER TABLE cursos ADD CONSTRAINT max_cur_ck
CHECK (max_alumnos >=15);
5. Elimina la restricción que controla los valores que puede tomar el atributo Sexo.
ALTER TABLE alumnos DROP CONSTRAINT alu_sex_ck;
6. Elimina la columna Dirección de la tabla PROFESORES.
ALTER TABLE profesores DROP COLUMN direccion;
7. Cambia la clave primaria de la tabla PROFESORES por Nombre y Apellidos.
/*Primero eliminamos la clave primaria que había anteriormente*/
ALTER TABLE profesores DROP CONSTRAINT nif_prof_pk
/*A continuación, añadimos la nueva clave primaria*/
ALTER TABLE profesores ADD CONSTRAINT nap_prof_pk
PRIMARY KEY (nombre, apellido1, apellido2);
8. Renombra la tabla PROFESORES por TUTORES.
RENAME profesores TO tutores;
9. Elimina la tabla ALUMNOS.
DROP TABLE alumnos;
10. Crea un usuario con tu nombre y clave BD02 y dale todos los privilegios sobre la tabla
CURSOS.
/*Creamos primero el usuario*/
CREATE USER antonio
IDENTIFIED BY bd02
DEFAULT TABLESPACE DAM
TEMPORARY TABLESPACE TEMP
PROFILE default;
/*A continuación le damos todos los privilegios sobre la tabla alumnos*/
GRANT ALL ON alumnos TO antonio;
11. Ahora al usuario anterior quítale permisos para modificar o actualizar la tabla CURSOS.
REVOKE SELECT, UPDATE ON alumnos FROM antonio;