Nama : Danang Wisnu Prayoga
NIM : 24060120140160
Kelas : B1
PRAKTIKUM 5 BASIS DATA
1. Membuat table “praktikum_5” pada database
Perintah:
create database praktikum_5;
use praktikum_5;
2. Membuat abel Regions
CREATE TABLE REGIONS (
REGION_ID decimal NOT NULL,
REGION_NAME varchar(25) DEFAULT NULL,
PRIMARY KEY (REGION_ID)
);
3. Membuat Tabel Countries
CREATE TABLE COUNTRIES (
COUNTRY_ID char(2) NOT NULL,
COUNTRY_NAME varchar(40) DEFAULT NULL,
REGION_ID decimal DEFAULT NULL,
PRIMARY KEY (COUNTRY_ID)
);
4. Membuat Tabel Locations
CREATE TABLE LOCATIONS (
LOCATION_ID decimal(4,0) NOT NULL DEFAULT '0',
STREET_ADDRESS varchar(40) DEFAULT NULL,
POSTAL_CODE varchar(12) DEFAULT NULL,
CITY varchar(30) NOT NULL,
STATE_PROVINCE varchar(25) DEFAULT NULL,
COUNTRY_ID char(2) DEFAULT NULL,
PRIMARY KEY (LOCATION_ID),
KEY LOC_CITY_IX (CITY),
KEY LOC_COUNTRY_IX (COUNTRY_ID),
KEY LOC_STATE_PROVINCE_IX (STATE_PROVINCE)
);
5. Membuat Tabel Departments
CREATE TABLE DEPARTMENTS (
DEPARTMENT_ID decimal(4,0) NOT NULL DEFAULT '0',
DEPARTMENT_NAME varchar(30) NOT NULL,
MANAGER_ID decimal(6,0) DEFAULT NULL,
LOCATION_ID decimal(4,0) DEFAULT NULL,
PRIMARY KEY (DEPARTMENT_ID),
KEY DEPT_LOCATION_IX (LOCATION_ID)
);
6. Membuat Tabel Employees
CREATE TABLE EMPLOYEES (
EMPLOYEE_ID decimal(6,0) NOT NULL DEFAULT '0',
FIRST_NAME varchar(20) DEFAULT NULL,
LAST_NAME varchar(25) NOT NULL,
EMAIL varchar(25) NOT NULL,
PHONE_NUMBER varchar(20) DEFAULT NULL,
HIRE_DATE date NOT NULL,
JOB_ID varchar(10) NOT NULL,
SALARY decimal(8,2) DEFAULT NULL,
COMMISSION_PCT decimal(2,2) DEFAULT NULL,
MANAGER_ID decimal(6,0) DEFAULT NULL,
DEPARTMENT_ID decimal(4,0) DEFAULT NULL,
BONUS varchar(5) DEFAULT NULL,
PRIMARY KEY (EMPLOYEE_ID),
UNIQUE KEY EMP_EMAIL_UK (EMAIL),
KEY EMP_DEPARTMENT_IX (DEPARTMENT_ID),
KEY EMP_JOB_IX (JOB_ID),
KEY EMP_MANAGER_IX (MANAGER_ID),
KEY EMP_NAME_IX (LAST_NAME,FIRST_NAME)
);
7. Membuat Tabel Jobs
CREATE TABLE JOBS (
JOB_ID varchar(10) NOT NULL DEFAULT '',
JOB_TITLE varchar(35) NOT NULL,
MIN_SALARY decimal(6,0) DEFAULT NULL,
MAX_SALARY decimal(6,0) DEFAULT NULL,
PRIMARY KEY (JOB_ID)
);
8. Membuat Tabel Job_history
CREATE TABLE JOB_HISTORY (
EMPLOYEE_ID decimal(6,0) NOT NULL,
START_DATE date NOT NULL,
END_DATE date NOT NULL,
JOB_ID varchar(10) NOT NULL,
DEPARTMENT_ID decimal(4,0) DEFAULT NULL,
PRIMARY KEY (EMPLOYEE_ID,START_DATE),
KEY JHIST_DEPARTMENT_IX (DEPARTMENT_ID),
KEY JHIST_EMPLOYEE_IX (EMPLOYEE_ID),
KEY JHIST_JOB_IX (JOB_ID)
);
9. Membuat relasi semua table, dengan perintah
ALTER TABLE COUNTRIES
ADD CONSTRAINT COUNTR_REG_FK FOREIGN KEY (REGION_ID)
REFERENCES REGIONS (REGION_ID);
-----
ALTER TABLE LOCATIONS
ADD CONSTRAINT LOC_C_ID_FK FOREIGN KEY (COUNTRY_ID)
REFERENCES COUNTRIES (COUNTRY_ID);
-----
ALTER TABLE DEPARTMENTS
ADD CONSTRAINT DEPT_LOC_FK FOREIGN KEY (LOCATION_ID)
REFERENCES LOCATIONS (LOCATION_ID);
ALTER TABLE DEPARTMENTS
ADD CONSTRAINT DEPT_MGR_FK FOREIGN KEY (MANAGER_ID)
REFERENCES EMPLOYEES (MANAGER_ID);
-----
ALTER TABLE EMPLOYEES
ADD CONSTRAINT EMP_DEPT_FK FOREIGN KEY (DEPARTMENT_ID)
REFERENCES DEPARTMENTS (DEPARTMENT_ID);
ALTER TABLE EMPLOYEES
ADD CONSTRAINT EMP_JOB_FK FOREIGN KEY (JOB_ID) REFERENCES
JOBS (JOB_ID);
ALTER TABLE EMPLOYEES
ADD CONSTRAINT EMP_MANAGER_FK FOREIGN KEY (MANAGER_ID)
REFERENCES DEPARTMENTS (MANAGER_ID);
-----
ALTER TABLE JOB_HISTORY
ADD CONSTRAINT JHIST_DEPT_FK FOREIGN KEY (DEPARTMENT_ID)
REFERENCES DEPARTMENTS (DEPARTMENT_ID);
ALTER TABLE JOB_HISTORY
ADD CONSTRAINT JHIST_EMP_FK FOREIGN KEY (EMPLOYEE_ID)
REFERENCES EMPLOYEES (EMPLOYEE_ID);
ALTER TABLE JOB_HISTORY
ADD CONSTRAINT JHIST_JOB_FK FOREIGN KEY (JOB_ID) REFERENCES
JOBS (JOB_ID);
10. Tampilan isi tables, memanggil dengan perintah desc nama_tabel;