Está en la página 1de 15

Adrián

TAREA 2 Pérez
Chillarón

BASES DE DATOS
Adrián Pérez Chillarón Tarea 2 21/12/2023

Empezamos iniciando SQL plus desde la consola de comandos, iniciando sesión con el
usuario creado en la tarea 1:

Creamos el usuario revistas con la contraseña revista:

1
Adrián Pérez Chillarón Tarea 2 21/12/2023

Le concedemos los roles CONNECT y RESOURCE:

Nos conectamos con las credenciales creadas anteriormente:

2
Adrián Pérez Chillarón Tarea 2 21/12/2023

Creación de tablas

Tabla sucursal código:


CREATE TABLE SUCURSAL (

CODIGO CHAR(4) CONSTRAINT PK_SUCURSAL PRIMARY KEY,

DIRECCION VARCHAR2(40),

TELEFONO CHAR(9));

Tabla periodista código:


CREATE TABLE PERIODISTA (

DNI CHAR(9) CONSTRAINT PK_PERIODISTA PRIMARY KEY,

NOMBRE VARCHAR2(50) CONSTRAINT NN_NOMBRE NOT NULL,

DIRECCION VARCHAR2(40), TELEFONO CHAR(9),

ESPECIALISTA VARCHAR2(40));

3
Adrián Pérez Chillarón Tarea 2 21/12/2023

Tabla empleado código:


CREATE TABLE EMPLEADO (

DNI CHAR(9) CONSTRAINT PK_EMPLEADO PRIMARY KEY,

NOMBRE VARCHAR2(50) CONSTRAINT NN_NOMBRE_EMPLEADO NOT NULL,

DIRECCION VARCHAR2(40),

TELEFONO CHAR(9), SUCURSAL CHAR(4) CONSTRAINT FK_SUCURSAL

REFERENCES SUCURSAL(CODIGO));

4
Adrián Pérez Chillarón Tarea 2 21/12/2023

Tabla revista código:


CREATE TABLE REVISTA (

NUMREG CHAR(8) CONSTRAINT PK_REVISTA PRIMARY KEY,

TITULO VARCHAR2(50) CONSTRAINT NN_TITULO NOT NULL,

PERIODICIDAD VARCHAR2(40) DEFAULT 'MENSUAL', TIPO VARCHAR2(20),

SUCURSAL CHAR(4) CONSTRAINT FK_SUCURSAL_REVISTA

REFERENCES SUCURSAL(CODIGO),

CONSTRAINT CK_PERIODICIDAD

CHECK (PERIODICIDAD IN ('SEMANAL', 'QUINCENAL', 'MENSUAL', 'TRIMESTRAL', 'ANUAL')));

Tabla numrevista código:


CREATE TABLE NUMREVISTA (

NUMREG CHAR(8),

NUMERO NUMBER(3),

NUMPAGINAS NUMBER(3),

FECHA DATE,

CANTVENDIDAS NUMBER(6),

CONSTRAINT PK_NUMREVISTA PRIMARY KEY (NUMREG, NUMERO),

CONSTRAINT FK_NUMREVISTA FOREIGN KEY(NUMREG)

REFERENCES REVISTA(NUMREG),

CONSTRAINT CK_NUMPAGINAS CHECK (NUMPAGINAS > 0));

5
Adrián Pérez Chillarón Tarea 2 21/12/2023

Tabla escribe código:


CREATE TABLE ESCRIBE (

NUMREG CHAR(8),

DNI_PERIODISTA CHAR(8),

CONSTRAINT PK_ESCRIBE PRIMARY KEY (NUMREG, DNI_PERIODISTA),

CONSTRAINT FK1_ESCRIBE FOREIGN KEY(NUMREG)

REFERENCES REVISTA(NUMREG),

CONSTRAINT FK2_ESCRIBE FOREIGN KEY(DNI_PERIODISTA)

REFERENCES PERIODISTA(DNI));

6
Adrián Pérez Chillarón Tarea 2 21/12/2023

Comprobamos en la página de inicio que las tablas se han creado:

7
Adrián Pérez Chillarón Tarea 2 21/12/2023

Modificación de tablas

1. Añade la columna país a la tabla SUCURSAL con un máximo de 30 caracteres.


ALTER TABLE SUCURSAL ADD PAIS VARCHAR2(30);

2. Modifica la columna dirección de PERIODISTA que pueda almacenar hasta 60


caracteres.
ALTER TABLE PERIODISTA MODIFY DIRECCION VARCHAR2(60);

8
Adrián Pérez Chillarón Tarea 2 21/12/2023

3.Añade una restricción a la tabla REVISTA para que el TITULO de la revista sea de tipo
título (InitCap).
UPDATE REVISTA SET TITULO = INITCAP(TITULO);

4. Añade una restricción para que el título de la revista sea único.


ALTER TABLE REVISTA ADD CONSTRAINT UQ_TITULO UNIQUE (TITULO);

5.Comprueba las restricciones de la tabla REVISTA con SELECT..


SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'REVISTA';

9
Adrián Pérez Chillarón Tarea 2 21/12/2023

6. Cambia el nombre de la columna ESPECIALISTA por ESPECIALIDAD, en la tabla


PERIODISTA.
ALTER TABLE PERIODISTA RENAME COLUMN ESPECIALISTA TO ESPECIALIDAD;

7. Elimina la restricción NUMPAGINAS >0


ALTER TABLE NUMREVISTA DROP CONSTRAINT CK_NUMPAGINAS;

10
Adrián Pérez Chillarón Tarea 2 21/12/2023

8. Añade la restricción NUMPAGINAS >5


ALTER TABLE NUMREVISTA ADD CONSTRAINT CK_NUMPAGINAS CHECK (NUMPAGINAS > 5);

9.Cambia el nombre de la tabla ESCRIBE por TRABAJA.


ALTER TABLE ESCRIBE RENAME TO TRABAJA;

11
Adrián Pérez Chillarón Tarea 2 21/12/2023

10. Elimina todas las filas de la tabla TRABAJA.


DELETE FROM TRABAJA; (Posteriormente intento seleccionar SELECT * FROM TRABAJA;
una fila de la tabla trabaja para comprobar que ya no existen).

11. Elimina la columna NUMPAGINAS de la tabla NUMREVISTA.


ALTER TABLE NUMREVISTA DROP COLUMN NUMPAGINAS;

12
Adrián Pérez Chillarón Tarea 2 21/12/2023

12.Elimina todas las tablas. Explica la forma correcta de hacerlo.


Para la eliminación de las tablas aplicamos el DROP seguido de table y del nombre de
cada tabla:
DROP TABLE TRABAJA;

DROP TABLE NUMREVISTA;

DROP TABLE ESCRIBE; (Intento borrarla para comprobar que el cambio de nombre a
TRABAJA antes funcionó y por lo tanto ya no existe una tabla llamada ESCRIBE)
DROP TABLE REVISTA;

DROP TABLE EMPLEADO;

DROP TABLE PERIODISTA;

DROP TABLE SUCURSAL;

Comprobación de la eliminación de las tablas:

13
Adrián Pérez Chillarón Tarea 2 21/12/2023

14

También podría gustarte