0% encontró este documento útil (0 votos)
159 vistas4 páginas

BD02 Tarea

El documento describe una serie de comandos SQL para crear y modificar tablas y usuarios en una base de datos. Se crean tablas para profesores, cursos y alumnos con sus atributos y restricciones. Luego se añaden, modifican y eliminan atributos y restricciones en las tablas, se cambian claves primarias, se renombran tablas y se eliminan. Finalmente se crea un usuario y se le asignan permisos sobre una de las tablas.

Cargado por

Antonio Martin
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
159 vistas4 páginas

BD02 Tarea

El documento describe una serie de comandos SQL para crear y modificar tablas y usuarios en una base de datos. Se crean tablas para profesores, cursos y alumnos con sus atributos y restricciones. Luego se añaden, modifican y eliminan atributos y restricciones en las tablas, se cambian claves primarias, se renombran tablas y se eliminan. Finalmente se crea un usuario y se le asignan permisos sobre una de las tablas.

Cargado por

Antonio Martin
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

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;

También podría gustarte