SQL Database Schema for Conference Attendance

Classified in Arts and Humanities

Written on in English with a size of 3 KB

Creación de la Tabla Participantes

DROP TABLE PARTICIPANTES CASCADE CONSTRAINTS;

CREATE TABLE PARTICIPANTES(
    CODIGO CHAR(5) NOT NULL,
    NOMBRE VARCHAR2(25) NOT NULL,
    APELLIDOS VARCHAR2(100) NOT NULL,
    DIRECCION VARCHAR2(255),
    TELEFONO VARCHAR2(15) UNIQUE,
    CONSTRAINT PK_PARTICIPANTES PRIMARY KEY (CODIGO),
    CONSTRAINT MAY_NOM_PAR CHECK (NOMBRE = UPPER(NOMBRE)),
    CONSTRAINT MAY_APE_PAR CHECK (APELLIDOS = UPPER(APELLIDOS)),
    CONSTRAINT TEL_PAR CHECK (TELEFONO LIKE '+0034%'),
    CONSTRAINT COD_PAR CHECK (CODIGO LIKE 'P%')
);

Inserción de Datos en Participantes

INSERT INTO PARTICIPANTES VALUES ('P_001', 'MARÍA', 'LÓPEZ PÉREZ', NULL, '+00344455');

-- Otra forma de inserción
INSERT INTO PARTICIPANTES (CODIGO, NOMBRE, APELLIDOS, TELEFONO)
VALUES ('P_001', 'MARÍA', 'LÓPEZ PÉREZ', '+00344455');

INSERT INTO PARTICIPANTES VALUES ('P_002', 'JOSÉ', 'FERNÁNDEZ GIL', 'Calle del Valle', NULL);
INSERT INTO PARTICIPANTES VALUES ('P_003', 'ROBERTO', 'GARCÍA TORRES', 'Paseo de Recoletos', '+00348888');
INSERT INTO PARTICIPANTES VALUES ('P_004', 'ANA', 'RODRÍGUEZ PLA', 'Calle de la Luz', '+00345555');
COMMIT;

Creación de la Tabla Conferencias

DROP TABLE CONFERENCIAS CASCADE CONSTRAINTS;

CREATE TABLE CONFERENCIAS(
    CODIGO CHAR(4) NOT NULL,
    NOMBRE VARCHAR2(10) UNIQUE NOT NULL,
    TIPO VARCHAR2(10) NOT NULL,
    CONSTRAINT PK_CONFERENCIAS PRIMARY KEY (CODIGO),
    CONSTRAINT TIT_NOMBRE CHECK (NOMBRE = INITCAP(NOMBRE)),
    CONSTRAINT TIPO CHECK (TIPO IN ('Simple', 'Entrevista')),
    CONSTRAINT COD_CONF CHECK (CODIGO LIKE 'C%')
);

Inserción de Datos en Conferencias

INSERT INTO CONFERENCIAS VALUES ('C_01', 'Cisco', 'Simple');
INSERT INTO CONFERENCIAS VALUES ('C_02', 'Oracle', 'Entrevista');
INSERT INTO CONFERENCIAS VALUES ('C_03', 'Linux', 'Simple');
INSERT INTO CONFERENCIAS VALUES ('C_04', 'Ms Office', 'Entrevista');
COMMIT;

Creación de la Tabla Asisten

DROP TABLE ASISTEN CASCADE CONSTRAINTS;

CREATE TABLE ASISTEN(
    COD_PARTICIPANTE CHAR(5) NOT NULL,
    COD_CONFERENCIA CHAR(4) NOT NULL,
    FECHA DATE DEFAULT SYSDATE NOT NULL,
    HORAS NUMBER(2),
    CONSTRAINT PK_ASISTEN PRIMARY KEY (COD_PARTICIPANTE, COD_CONFERENCIA, FECHA),
    CONSTRAINT FK_ASISTEN_PAR FOREIGN KEY (COD_PARTICIPANTE) REFERENCES PARTICIPANTES (CODIGO),
    CONSTRAINT FK_ASISTEN_CON FOREIGN KEY (COD_CONFERENCIA) REFERENCES CONFERENCIAS (CODIGO) ON DELETE CASCADE,
    CONSTRAINT VALOR_HORA CHECK (HORAS BETWEEN 1 AND 10)
);

Inserción de Datos en Asisten

ALTER SESSION SET NLS_DATE_FORMAT = 'dd-mm-yyyy';

INSERT INTO ASISTEN VALUES ('P_001', 'C_02', '12-10-2013', 3);
INSERT INTO ASISTEN VALUES ('P_001', 'C_03', '01-03-2014', 10);
INSERT INTO ASISTEN VALUES ('P_002', 'C_01', '23-10-2013', 4);
INSERT INTO ASISTEN VALUES ('P_002', 'C_02', '17-03-2014', 2);
INSERT INTO ASISTEN (COD_CONFERENCIA, COD_PARTICIPANTE) VALUES ('C_02', 'P_001');

Related entries: