Tecnología

Inicio

Cómo escribir Oracle código SQL que creará la tabla de empleados

Cómo escribir Oracle código SQL que creará la tabla de empleados


La tabla de empleados es una de las muchas tablas creadas en el esquema de ejemplo recursos humanos proporcionado por Oracle. La base de datos de recursos humanos seguimiento de la información de los empleados e instalaciones de una empresa ficticia. Oracle proporciona las bases de datos de ejemplo para crear una base común de ejemplos en la documentación técnica.

Instrucciones

1 Conectarse a Oracle con una cuenta que tiene los permisos adecuados para crear y alterar tablas.

2 Introduzca el siguiente código SQL (lenguaje de consulta estructurado) para configurar la seguridad de la base de datos de recursos humanos:

DROP CASCADE hr USUARIO;

CREAR hr usuario identificado por horas;

MODIFICAR USUARIO hr TEMPORAL temp TABLESPACE;

Concesión de crear la sesión

, create table

, Crear procedimiento

, Crear la secuencia

, Crear gatillo

, Cree vista

, Crear sinónimos

, Alterar sesión

A hr;

CONECTAR / AS SYSDBA;

GRANT EXECUTE en sys.dbms_stats a los recursos humanos;

COMETER;

3 Introduzca el siguiente código SQL en el entorno de desarrollo para crear la base de datos de recursos humanos:

CREAR TABLA regiones

( region_id NUMBER

Restricción NOT NULL region_id_nn

, REGION_NAME VARCHAR2 (25)

);

Crear único ÍNDICE reg_id_pk

EN regiones (REGION_ID);

ALTER TABLE regiones

ADD (reg_id_pk CONSTREÑIMIENTO

PRIMARY KEY (region_id)

);

CREAR TABLA países

( country_id CHAR(2)

Restricción NOT NULL country_id_nn

, COUNTRY_NAME VARCHAR2 (40)

, NÚMERO REGION_ID

, Country_c_id_pk CONSTREÑIMIENTO

PRIMARY KEY (country_id)

)

ÍNDICE DE ORGANIZACIÓN;

ALTER TABLE países

ADD (countr_reg_fk CONSTREÑIMIENTO

FOREIGN KEY (region_id)

Referencias (regiones) REGION_ID

);

CREAR TABLA ubicaciones

( location_id NUMBER(4)

, Street_address VARCHAR2 (40)

, Postal_code VARCHAR2 (12)

, Ciudad VARCHAR2 (30)

Restricción NOT NULL loc_city_nn

, State_province VARCHAR2 (25)

, Country_id CHAR (2)

);

Crear único ÍNDICE loc_id_pk

EN ubicaciones (location_id);

ALTER TABLE ubicaciones

ADD (loc_id_pk CONSTREÑIMIENTO

PRIMARY KEY (location_id)

, Loc_c_id_fk CONSTREÑIMIENTO

FOREIGN KEY (country_id)

REFERENCIAS países (country_id)

);

CREAR SECUENCIA locations_seq

INICIAR CON 3300

INCREMENTO POR 100

MAXVALUE 9900

NOCACHE

NOCYCLE;

CREAR TABLA departamentos

( department_id NUMBER(4)

, Department_name VARCHAR2 (30)

Restricción NOT NULL dept_name_nn

, NÚMERO MANAGER_ID (6)

, NÚMERO location_id (4)

);

Crear único ÍNDICE dept_id_pk

EN departamentos (department_id);

ALTER TABLE departamentos

ADD (dept_id_pk CONSTREÑIMIENTO

PRIMARY KEY (department_id)

, CONSTREÑIMIENTO dept_loc_fk

FOREIGN KEY (location_id)

Contacto Referencias (location_id)

);

CREAR SECUENCIA departments_seq

INICIAR CON 280

INCREMENTO DE 10

MAXVALUE 9990

NOCACHE

NOCYCLE;

Crear puestos de trabajo CUADRO

( job_id VARCHAR2(10)

, Job_title VARCHAR2 (35)

Restricción NOT NULL job_title_nn

, NÚMERO min_salary (6)

, NÚMERO MAX_SALARY (6)

);

Crear único ÍNDICE job_id_pk

En el empleo (job_id);

ALTER TABLE empleos

ADD (job_id_pk CONSTREÑIMIENTO

PRIMARY KEY(job_id)

);

CREAR TABLA empleados

( employee_id NUMBER(6)

, First_name VARCHAR2 (20)

, Apellidos VARCHAR2 (25)

RESTRICCIÓN emp_last_name_nn NO NULO

, Correo electrónico VARCHAR2 (25)

RESTRICCIÓN emp_email_nn NO NULO

, Phone_number VARCHAR2 (20)

, FECHA fecha_contratación

RESTRICCIÓN emp_hire_date_nn NO NULO

, Job_id VARCHAR2 (10)

RESTRICCIÓN emp_job_nn NO NULO

, NÚMERO salario (8,2)

, NÚMERO COMMISSION_PCT (2,2)

, NÚMERO MANAGER_ID (6)

, NÚMERO department_id (4)

, Emp_salary_min CONSTREÑIMIENTO

CHECK (salario> 0)

, Emp_email_uk CONSTREÑIMIENTO

UNIQUE (correo electrónico)

);

Crear único ÍNDICE emp_emp_id_pk

EN empleados (employee_id);

ALTER TABLE empleados

ADD (emp_emp_id_pk CONSTREÑIMIENTO

PRIMARY KEY (employee_id)

, Emp_dept_fk CONSTREÑIMIENTO

FOREIGN KEY (department_id)

REFERENCIAS departamentos

, Emp_job_fk CONSTREÑIMIENTO

FOREIGN KEY (job_id)

Bolsa de empleos (JOB_ID)

, Emp_manager_fk CONSTREÑIMIENTO

FOREIGN KEY (MANAGER_ID)

REFERENCIAS empleados

);

ALTER TABLE departamentos

ADD (dept_mgr_fk CONSTREÑIMIENTO

FOREIGN KEY (manager_id)

Referencias (empleados) EMPLOYEE_ID

);

CREAR SECUENCIA employees_seq

INICIAR CON 207

Incrementar en 1

NOCACHE

NOCYCLE;

CREAR TABLA job_history

( employee_id NUMBER(6)

Restricción NOT NULL jhist_employee_nn

, FECHA fecha_inicial

Restricción NOT NULL jhist_start_date_nn

, FECHA fecha_final

Restricción NOT NULL jhist_end_date_nn

, Job_id VARCHAR2 (10)

Restricción NOT NULL jhist_job_nn

, NÚMERO department_id (4)

, Jhist_date_interval CONSTREÑIMIENTO

CHECK (fecha_final> fecha_inicial)

);

Crear único ÍNDICE jhist_emp_id_st_date_pk

EN job_history (employee_id, fecha_inicial);

ALTER job_history TABLA

ADD (jhist_emp_id_st_date_pk CONSTREÑIMIENTO

PRIMARY KEY (employee_id, start_date)

, Jhist_job_fk CONSTREÑIMIENTO

FOREIGN KEY (job_id)

Bolsa de empleos

, Jhist_emp_fk CONSTREÑIMIENTO

FOREIGN KEY (employee_id)

REFERENCIAS empleados

, Jhist_dept_fk CONSTREÑIMIENTO

FOREIGN KEY (department_id)

REFERENCIAS departamentos

);

COMETER;

4 Introduzca el siguiente código SQL en el entorno de desarrollo para añadir el empleado vista de detalles de la base de datos:

CREAR O CAMBIAR VISTA EMP_DETAILS_VIEW

(ID de empleado,

identificación Laboral,

MANAGER_ID

department_id,

location_id,

country_id,

nombre de pila,

apellido,

salario,

COMMISSION_PCT,

Nombre del Departamento,

título profesional,

ciudad,

state_province,

nombre del país,

REGION_NAME)

COMO SELECCIONAR

E.EMPLOYEE_ID,

e.job_id,

E.id_director,

e.department_id,

d.location_id,

l.country_id,

e.first_name,

e.LAST_NAME,

e.salary,

e.commission_pct,

d.department_name,

j.job_title,

l.city,

l.state_province,

c.country_name,

r.region_name

DE

empleados e,

departamentos d,

j empleos,

ubicaciones de l,

Paises C,

r regiones

DONDE e.department_id = d.department_id

Y d.location_id = l.location_id

Y l.country_id = c.country_id

Y c.region_id = r.region_id

Y j.job_id = e.job_id

CON SÓLO LECTURA;

COMETER;