company

-- 1. Create DEPARTMENT (basic, no FK yet)

CREATE TABLE DEPARTMENT (

    Dname VARCHAR(50) NOT NULL,

    Dnumber INT PRIMARY KEY,

    Mgr_ssn CHAR(9),

    Mgr_start_date DATE

);


-- 2. Create EMPLOYEE

CREATE TABLE EMPLOYEE (

    Fname VARCHAR(20),

    Minit CHAR(1),

    Lname VARCHAR(20),

    Ssn CHAR(9) PRIMARY KEY,

    Bdate DATE,

    Address VARCHAR(100),

    Sex CHAR(1),

    Salary DECIMAL(10,2),

    Super_ssn CHAR(9),

    Dno INT,

    FOREIGN KEY (Super_ssn) REFERENCES EMPLOYEE(Ssn),

    FOREIGN KEY (Dno) REFERENCES DEPARTMENT(Dnumber)

);


-- 3. Alter DEPARTMENT (add manager FK → EMPLOYEE)

ALTER TABLE DEPARTMENT

ADD CONSTRAINT fk_mgr FOREIGN KEY (Mgr_ssn) REFERENCES EMPLOYEE(Ssn);


-- 4. Create DEPT_LOCATIONS

CREATE TABLE DEPT_LOCATIONS (

    Dnumber INT,

    Dlocation VARCHAR(50),

    PRIMARY KEY (Dnumber, Dlocation),

    FOREIGN KEY (Dnumber) REFERENCES DEPARTMENT(Dnumber)

);


-- 5. Create PROJECT

CREATE TABLE PROJECT (

    Pname VARCHAR(50),

    Pnumber INT PRIMARY KEY,

    Plocation VARCHAR(50),

    Dnum INT,

    FOREIGN KEY (Dnum) REFERENCES DEPARTMENT(Dnumber)

);


-- 6. Create WORKS_ON

CREATE TABLE WORKS_ON (

    Essn CHAR(9),

    Pno INT,

    Hours DECIMAL(5,2),

    PRIMARY KEY (Essn, Pno),

    FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn),

    FOREIGN KEY (Pno) REFERENCES PROJECT(Pnumber)

);


-- 7. Create DEPENDENT

CREATE TABLE DEPENDENT (

    Essn CHAR(9),

    Dependent_name VARCHAR(20),

    Sex CHAR(1),

    Bdate DATE,

    Relationship VARCHAR(20),

    PRIMARY KEY (Essn, Dependent_name),

    FOREIGN KEY (Essn) REFERENCES EMPLOYEE(Ssn)

);




Comments

Popular posts from this blog

college

company database