Wie Oracle SQL-Code, der Employee-Tabelle erstellen Will schreiben . Die Humanressourcen Datenbank verfolgt Mitarbeiter und Einrichtungen Informationen für ein fiktives Unternehmen . Oracle bietet die Beispiel-Datenbanken , um eine gemeinsame Grundlage für die Beispiele in der technischen Dokumentation zu erstellen. Anleitung
1
zu Oracle Connect mit einem Konto, das über die entsprechenden Berechtigungen zum Erstellen und Ändern von Tabellen hat .
2
Geben Sie die folgende SQL ( Structured Query Language ) , um die Sicherheit für die Konfiguration die Humanressourcen Datenbank:
DROP USER hr CASCADE ;
CREATE USER hr hr BY identifiziert werden;
ALTER USER hr temporären Tablespace temp;
GRANT erstellen Sitzung
, create table
, create procedure
schaffen Sequenz
, create trigger
schaffen View Of < p> erstellen Synonym
, ändern Sitzung
TO h;
/AS SYSDBA CONNECT ;
GRANT ON sys.dbms_stats ausführen TO h;
COMMIT ;
3
Geben Sie die folgende SQL in der Entwicklungsumgebung , um die menschliche Ressource -Datenbank zu erstellen : CREATE TABLE
Regionen
( region_id NUMBER
CONSTRAINT region_id_nn NOT NULL
, region_name VARCHAR2 ( 25)
);
CREATE UNIQUE INDEX reg_id_pk
ON Regionen ( region_id );
ALTER TABLE Regionen
ADD (Einschränkung reg_id_pk
PRIMARY KEY ( region_id )
);
CREATE TABELLE Ländern
( country_id CHAR (2)
CONSTRAINT country_id_nn NOT NULL
, country_name VARCHAR2 ( 40)
, region_id NUMBER
< p > , CONSTRAINT country_c_id_pk
PRIMARY KEY ( country_id )
)
ORGANISATION INDEX ; ALTER TABLE
Ländern
ADD (Einschränkung countr_reg_fk
FOREIGN KEY ( region_id )
Informationsquellen Regionen ( region_id )
);
CREATE TABLE Standorten
( location_id NUMBER ( 4 )
, street_address VARCHAR2 ( 40)
, postal_code VARCHAR2 ( 12)
, Stadt VARCHAR2 ( 30)
CONSTRAINT loc_city_nn NOT NULL
, state_province VARCHAR2 ( 25)
, country_id CHAR (2)
);
CREATE UNIQUE INDEX loc_id_pk
ON Standorten ( location_id ) ;
ALTER TABLE Standorten
ADD (Einschränkung loc_id_pk
PRIMARY KEY ( location_id )
, CONSTRAINT loc_c_id_fk
FOREIGN KEY ( country_id )
Informationsquellen Ländern ( country_id )
);
CREATE SEQUENCE locations_seq
START MIT 3300
INCREMENT BY 100
MAXVALUE 9900
NOCACHE
NOCYCLE ;
CREATE TABLE Abteilungen
( department_id NUMBER (4)
, department_name VARCHAR2 (30)
CONSTRAINT dept_name_nn NOT NULL
, manager_id NUMBER (6)
, location_id NUMBER (4)
);
< p > CREATE UNIQUE INDEX dept_id_pk
ON Abteilungen ( department_id );
ALTER TABLE Abteilungen
ADD (Einschränkung dept_id_pk
PRIMARY KEY ( department_id )
, CONSTRAINT dept_loc_fk
FOREIGN KEY ( location_id )
Referenzen Standorte ( location_id )
);
CREATE SEQUENCE departments_seq
< p > mit 280
INCREMENT START VON 10
MAXVALUE 9990
NOCACHE
NOCYCLE ;
CREATE TABLE Arbeitsplätze
< p > ( job_id VARCHAR2 ( 10)
, job_title VARCHAR2 ( 35)
CONSTRAINT job_title_nn NOT NULL
, min_salary NUMBER (6)
, max_salary NUMBER (6)
);
CREATE UNIQUE INDEX job_id_pk
ON Arbeitsplätze ( job_id );
ALTER TABLE Arbeitsplätze
ADD ( CONSTRAINT job_id_pk
PRIMARY KEY ( job_id )
);
CREATE TABLE Mitarbeiter
( employee_id NUMBER (6)
, first_name VARCHAR2 ( 20)
, last_name VARCHAR2 ( 25)
CONSTRAINT emp_last_name_nn NOT NULL
, E-Mail VARCHAR2 ( 25)
CONSTRAINT emp_email_nn NOT NULL
, phone_number VARCHAR2 ( 20)
, hire_date DATE
CONSTRAINT emp_hire_date_nn NOT NULL
, job_id VARCHAR2 ( 10)
CONSTRAINT emp_job_nn NICHT NULL
, Gehalt NUMBER (8,2)
, COMMISSION_PCT NUMBER (2,2)
, manager_id NUMBER (6)
, department_id NUMBER (4)
, CONSTRAINT emp_salary_min
CHECK ( Gehalt > 0)
, CONSTRAINT emp_email_uk
UNIQUE ( E-Mail)
);
CREATE UNIQUE INDEX emp_emp_id_pk
ON Mitarbeiter ( employee_id );
ALTER TABLE Mitarbeiter
ADD (Einschränkung emp_emp_id_pk
PRIMARY KEY ( employee_id )
, CONSTRAINT emp_dept_fk
FOREIGN KEY ( department_id )
Informationsquellen Abteilungen
, CONSTRAINT emp_job_fk
FOREIGN KEY ( job_id )
Referenzen Jobs ( job_id )
, CONSTRAINT emp_manager_fk
FOREIGN KEY ( manager_id )
Informationsquellen Mitarbeiter
);
ALTER TABLE Abteilungen
ADD (Einschränkung dept_mgr_fk
FOREIGN KEY ( manager_id )
Informationsquellen Mitarbeiter ( employee_id )
);
CREATE SEQUENCE employees_seq
START MIT 207
um 1 erhöht
NOCACHE
NOCYCLE ;
CREATE TABLE job_history
( employee_id NUMBER (6)
CONSTRAINT jhist_employee_nn NOT NULL
, start_date DATE
CONSTRAINT jhist_start_date_nn NOT NULL
, end_date DATE
CONSTRAINT jhist_end_date_nn NOT NULL
, job_id VARCHAR2 ( 10)
CONSTRAINT jhist_job_nn NOT NULL
, department_id NUMBER (4)
, CONSTRAINT jhist_date_interval
CHECK ( end_date > start_date )
);
CREATE UNIQUE INDEX jhist_emp_id_st_date_pk
ON job_history ( employee_id , start_date );
ALTER TABLE job_history
ADD (Einschränkung jhist_emp_id_st_date_pk
PRIMARY KEY ( employee_id , start_date )
, CONSTRAINT jhist_job_fk
FOREIGN KEY ( job_id )
Referenzen Jobs
, CONSTRAINT jhist_emp_fk
FOREIGN KEY ( employee_id )
Informationsquellen Mitarbeiter
, CONSTRAINT jhist_dept_fk
FOREIGN KEY ( department_id )
Informationsquellen Abteilungen
);
COMMIT ;
4
Geben Sie die folgende SQL in der Entwicklungsumgebung , um das Add Mitarbeiter Details zu der Datenbank zu lesen:
CREATE OR REPLACE VIEW e,
Abteilungen d ,
Jobs j ,
Standorten l ,
Ländern c ,
Regionen r
< p> WHERE e.department_id = d.department_id
UND d.location_id = l.location_id
UND l.country_id = c.country_id
UND c.region_id = r . region_id
UND j.job_id = e.job_id
Mit nur lesen ;
COMMIT ;