-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCREATE_TABLE_HR_MODEL.sql
72 lines (63 loc) · 2.3 KB
/
CREATE_TABLE_HR_MODEL.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
-- TABLO OLUŞTURMA İŞLEMLERİNDE İLERİDEKİ SAFHALARDA DA KULLANMAK İÇİN HR (İNSAN KAYNAKLARI) MODELİ TABLOLARI OLUŞTURUKACAKTIR.
-- BÖLGE TABLOSU OLUŞTURMA.
CREATE TABLE REGIONS(
REGION_ID NUMBER,
REGION_NAME VARCHAR2(25)
);
-- ÜLKELER TABLOSU OLUŞTURMA.
CREATE TABLE COUNTRIES(
COUNTRY_ID CHAR(2),
COUNTRY_NAME VARCHAR2(40),
REGION_ID NUMBER -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
);
-- LOKASYONLAR TABLOSU OLUŞTURMA.
CREATE TABLE LOCATIONS(
LOCATION_ID NUMBER(4),
STREET_ADDRESS VARCHAR2(40),
POSTAL_CODE VARCHAR2(12),
CITY VARCHAR2(30) NOT NULL, -- BOŞ GEÇİLEMEZ.
STATE_PROVINCE VARCHAR2(25),
COUNTRY_ID CHAR(2) -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
);
-- BÖLÜMLER TABLOSU OLUŞTURMA.
CREATE TABLE DEPARTMENTS(
DEPARTMENT_ID NUMBER(2),
DEPARTMENT_NAME VARCHAR2(30),
MANAGER_ID NUMBER(4),
LOCATION_ID NUMBER(4)
);
-- ÜNVAN TABLOSU OLUŞTURMA.
CREATE TABLE JOBS(
JOB_ID VARCHAR2(10),
JOB_TITLE VARCHAR2(35) NOT NULL, -- BOŞ GEÇİLEMEZ.
MIN_SALARY NUMBER(6),
MAX_SALARY NUMBER(6)
);
-- ÇALIŞANLAR TABLOSU OLUŞTURMA.
CREATE TABLE EMPLOYEES(
EMPLOYEE_ID NUMBER(6),
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25),
EMAIL VARCHAR2(25) NOT NULL, -- BOŞ GEÇİLEMEZ.
PHONE_NUMBER VARCHAR2(20),
HIRE_DATE DATE NOT NULL, -- BOŞ GEÇİLEMEZ.
JOB_ID VARCHAR2(10), -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
SALARY NUMBER(8,2),
COMISSION_PCT NUMBER(2,2),
MANAGER_ID NUMBER(4), -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
DEPARTMENT_ID NUMBER(4),
-- MAAŞ KOLONUNA NEGATİF DEĞER GİRİLEMESİN.
CONSTRAINT emp_salary_min CHECK(SALARY > 0),
-- MAİL ADRESLERİ TEKİL YANİ UNIQUE OLSUN.
CONSTRAINT emp_email_uk UNIQUE(EMAIL)
);
-- ÇALIŞANLARIN TARİH TABLOSUNU OLUŞTURMA.
CREATE TABLE JOB_HISTORY(
EMPLOYYE_ID NUMBER(6), -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
START_DATE DATE NOT NULL, -- BOŞ GEÇİLEMEZ.
END_DATE DATE NOT NULL, -- BOŞ GEÇİLEMEZ.
JOB_ID VARCHAR2(10), -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
DEPARTMENT_ID NUMBER(4), -- TABLOLAR ARASI İLİŞKİ KURMAK İÇİN.
-- İŞE BAŞLAMA TARİHİ BİTME TARİHİNDEN BÜYÜK OLMAMALI.
CONSTRAINT jhist_date_interval CHECK (END_DATE > START_DATE)
);