-
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;