Oracle SQL: Creación, Modificación de Tablas y Permisos

Classified in Arts and Humanities

Written on in English with a size of 4.34 KB

Creación de Tablas con Restricciones

A continuación se detallan las sentencias DDL para crear las tablas EB_EMPLEADOS y EB_BECASCONCEDIDAS en el tablespace TBLLEARNING:

CREATE TABLE EB_EMPLEADOS ( DNIE VARCHAR2(9) CONSTRAINT PK_EB_EMPLEADOS PRIMARY KEY, NOMBREE VARCHAR2(80) CONSTRAINT UQ_EB_EMPLEADOS_NOMBREE UNIQUE NOT NULL, DIRECCION VARCHAR2(80), POBLACION VARCHAR2(50), PROVINCIA VARCHAR2(30) DEFAULT 'CIUDAD REAL', MOVIL NUMBER(9), SEXO CHAR(1) CONSTRAINT CH_EB_EMPLEADOS_SEXO CHECK (SEXO IN ('H', 'M')), FECHAALTA DATE CONSTRAINT CH_EB_EMPLEADOS_FECHAALTA CHECK (FECHAALTA BETWEEN DATE '2005-04-01' AND DATE '2220-01-01'), NROSEGSOC VARCHAR2(22), DNIDIR VARCHAR2(9), TIPOEMPLEADO CHAR(1) CONSTRAINT CH_EB_EMPLEADOS_TIPOEMPLEADO CHECK (TIPOEMPLEADO IN ('R', 'I')), NRO_HIJOS NUMBER(2) CONSTRAINT CH_EB_EMPLEADOS_NRO_HIJOS CHECK (NRO_HIJOS BETWEEN 0 AND 25), IDNIVEL NUMBER(3) CONSTRAINT FK_EB_EMPLEADOS_IDNIVEL REFERENCES EB_NIVELES(IDNIVEL), CONSTRAINT FK_EB_EMPLEADOS_DNIDIR FOREIGN KEY (DNIDIR) REFERENCES EB_EMPLEADOS(DNIE) ) TABLESPACE TBLLEARNING;
CREATE TABLE EB_BECASCONCEDIDAS ( DNIH VARCHAR2(9), IDBECA NUMBER(6), FECHACONCESION DATE CONSTRAINT CH_EB_BECASCONCEDIDAS_FECHACONCESION CHECK (FECHACONCESION BETWEEN DATE '2005-02-12' AND DATE '2200-01-01'), COBRADA CHAR(1) CONSTRAINT CH_EB_BECASCONCEDIDAS_COBRADA CHECK (COBRADA IN ('S', 'N')), CONSTRAINT PK_EB_BECASCONCEDIDAS PRIMARY KEY (DNIH, IDBECA, FECHACONCESION), CONSTRAINT FK_EB_BECASCONCEDIDAS_DNIH FOREIGN KEY (DNIH) REFERENCES EB_HIJOS(DNIH), CONSTRAINT FK_EB_BECASCONCEDIDAS_IDBECA FOREIGN KEY (IDBECA) REFERENCES EB_BECAS(IDBECA) ) TABLESPACE TBLLEARNING;

Modificación de la Tabla EB_NIVELES

Agregado de una nueva columna y su respectiva restricción de tipo CHECK:

ALTER TABLE EB_NIVELES ADD TIPONIVEL CHAR(1);
ALTER TABLE EB_NIVELES ADD CONSTRAINT CH_EB_NIVELES_TIPONIVEL CHECK (TIPONIVEL IN ('L', 'G', 'J', 'H'));

Reestructuración de Claves e Identificadores

Modificación del modelo para incorporar y propagar el nuevo identificador IDEMPLEADO:

ALTER TABLE EB_EMPLEADOS ADD IDEMPLEADO NUMBER(10); ALTER TABLE EB_HIJOS ADD IDEMPLEADO NUMBER(10); UPDATE EB_HIJOS H SET IDEMPLEADO = (SELECT E.IDEMPLEADO FROM EB_EMPLEADOS E WHERE E.DNIE = H.DNIE); ALTER TABLE EB_HIJOS DROP CONSTRAINT FK_EB_HIJOS_DNIE; ALTER TABLE EB_HIJOS ADD CONSTRAINT FK_EB_HIJOS_IDEMPLEADO FOREIGN KEY (IDEMPLEADO) REFERENCES EB_EMPLEADOS(IDEMPLEADO); ALTER TABLE EB_HIJOS DROP COLUMN DNIE; ALTER TABLE EB_BECASCONCEDIDAS ADD IDEMPLEADO NUMBER(10); UPDATE EB_BECASCONCEDIDAS BC SET IDEMPLEADO = (SELECT E.IDEMPLEADO FROM EB_EMPLEADOS E WHERE E.DNIE = (SELECT H.DNIE FROM EB_HIJOS H WHERE H.DNIH = BC.DNIH)); ALTER TABLE EB_BECASCONCEDIDAS DROP CONSTRAINT FK_EB_BECASCONCEDIDAS_DNIH; ALTER TABLE EB_BECASCONCEDIDAS ADD CONSTRAINT FK_EB_BECASCONCEDIDAS_IDEMPLEADO FOREIGN KEY (IDEMPLEADO) REFERENCES EB_EMPLEADOS(IDEMPLEADO);
ALTER TABLE EB_BECASCONCEDIDAS DROP COLUMN DNIH; ALTER TABLE EB_EMPLEADOS DROP CONSTRAINT PK_EB_EMPLEADOS; ALTER TABLE EB_EMPLEADOS ADD CONSTRAINT PK_EB_EMPLEADOS PRIMARY KEY (IDEMPLEADO);

Creación del Usuario y Conexión Inicial

Definición del usuario LEARN1 con cuota de almacenamiento:

CREATE USER LEARN1 IDENTIFIED BY Ex2019 DEFAULT TABLESPACE TBLLEARNING TEMPORARY TABLESPACE TEMP QUOTA 600M ON TBLLEARNING;
GRANT CONNECT TO LEARN1;

Gestión y Revocación de Privilegios

Asignación de Privilegios

GRANT CONNECT, RESOURCE TO LEARN1;
GRANT CREATE USER, DROP USER TO LEARN1;
GRANT CREATE VIEW, DROP VIEW TO LEARN1;
GRANT SELECT, INSERT, UPDATE ON EB_EMPLEADOS TO LEARN1;
GRANT SELECT, INSERT, UPDATE ON EB_BECASCONCEDIDAS TO LEARN1;

Revocación de Permisos

-- Para revocar permisos:

REVOKE CREATE USER, DROP USER FROM LEARN1;
REVOKE CREATE VIEW, DROP VIEW FROM LEARN1; REVOKE SELECT, INSERT, UPDATE ON EB_EMPLEADOS FROM LEARN1; REVOKE SELECT, INSERT, UPDATE ON EB_BECASCONCEDIDAS FROM LEARN1; REVOKE CONNECT, RESOURCE FROM LEARN1;

Related entries: