dbms exercise 2

 welcome

----------------------------------------------------------------------

CREATE TABLE EMPLOYEE (

    ENO NUMBER (4),

    ENAME VARCHAR2(50) NOT NULL,

    DEPTNO NUMBER (2),

    JOBTITLE VARCHAR2(50),

    DOB DATE,

    SALARY NUMBER(8,2),

    COMM NUMBER(8,2),

    CONSTRAINT PM_KEY PRIMARY KEY(ENO),

    CONSTRAINT CK CHECK (SALARY > 0),

    CONSTRAINT CKR CHECK (DEPTNO BETWEEN 10 AND 90)

);

ALTER TABLE EMPLOYEE

ADD CONSTRAINT JT CHECK ( JOBTITLE IN ('MANAGER','ANALYST','CLERK','SALESMAN'));

ALTER TABLE EMPLOYEE
ADD CONSTRAINT com_gr_slry CHECK (COMM < SALARY);
CREATE OR REPLACE TRIGGER trigger_doj
BEFORE INSERT OR UPDATE ON EMPLOYEE
FOR EACH ROW
BEGIN
IF :NEW.DOJ = TRUNC(SYSDATE) THEN
RAISE_APPLICATION_ERROR(-20001,'Date of Joining (DOJ) cannot be the current date.');
END IF;
END;
/

INSERT INTO EMPLOYEE VALUES(1001,'John Smith',10,'MANAGER',TO_DATE('2022-01-15','YYYY-MM-DD'),5500.00,NULL);
INSERT INTO EMPLOYEE VALUES(1002,'Alice Brown',20,'ANALYST',TO_DATE('2022-03-20','YYYY-MM-DD'),4500.00,500.00);
INSERT INTO EMPLOYEE VALUES(1003,'Mark Wilson',10,'CLERK',TO_DATE('2022-06-10','YYYY-MM-DD'),2500.00,NULL);
INSERT INTO EMPLOYEE VALUES(1004,'Sarah Davis',30,'SALESMAN',TO_DATE('2022-08-05','YYYY-MM-DD'),3500.00,1000.00);
INSERT INTO EMPLOYEE VALUES(1005,'Robert Jones',20,'ANALYST',TO_DATE('2023-01-15','YYYY-MM-DD'),4200.00,600.00);
INSERT INTO EMPLOYEE VALUES(1006,'Emma Miller',30,'CLERK',TO_DATE('2023-03-01','YYYY-MM-DD'),2800.00,NULL);
INSERT INTO EMPLOYEE VALUES(1007,'Jamse Anderson',10,'MANAGER',TO_DATE('2023-05-20','YYYY-MM-DD'),5800.00,800.00);
UPDATE EMPLOYEE
SET COMM = COMM - 100
WHERE COMM > 500;
UPDATE EMPLOYEE 
SET SALARY = SALARY + (SALARY * 0.10) 
WHERE DOJ < TO_DATE('2023-01-01','YYYY-MM-DD');
UPDATE EMPLOYEE
SET COMM = 300
WHERE DEPTNO = 10 AND COMM IS NULL;
ALTER TABLE EMPLOYEE
    DROP CONSTRAINT JT;

ALTER TABLE EMPLOYEE
    ADD CONSTRAINT JT CHECK (JOBTITLE IN('MANAGER','ANALYST','CLERK','SALESMAN','SENIOR CLERK'));


UPDATE EMPLOYEE
SET JOBTITLE = 'SENIOR CLERK' 
WHERE  JOBTITLE =  'CLERK' AND SALARY >= 2500 ;
UPDATE EMPLOYEE
SET COMM = 200
WHERE DEPTNO = 30 AND COMM IS NULL;

DELETE EMPLOYEE 
WHERE COMM IS NULL AND SALARY <3000;
UPDATE EMPLOYEE
SET SALARY = SALARY+(SALARY*0.15)
WHERE DEPTNO = 10 AND JOBTITLE = 'MANAGER';
UPDATE EMPLOYEE
SET SALARY = SALARY+(SALARY*0.10)
WHERE DEPTNO = 20 AND JOBTITLE = 'ANALYST';
UPDATE EMPLOYEE
SET SALARY = SALARY+(SALARY*0.05)
WHERE JOBTITLE = 'CLERK' AND JOBTITLE = 'SENIOR CLERK';
UPDATE EMPLOYEE
SET COMM = 1000
WHERE SALARY >= 5000 AND JOBTITLE = 'MANAGER';
UPDATE EMPLOYEE
SET COMM = 800
WHERE SALARY >= 4000 AND JOBTITLE = 'ANALYST';
UPDATE EMPLOYEE
SET COMM = 500
WHERE SALARY < 4000 AND COMM IS NULL;


DELETE EMPLOYEE
WHERE JOBTITLE = ' CLERK ' AND SALARY < 3000;

DELETE EMPLOYEE
WHERE JOBTITLE = 'ANALYST' AND COMM < 600;

DELTER EMPLOYEE
WHERE JOBTITLE = 'MANAGER' AND DEPTNO != 10;

ALTER TABLE EMPLOYEE
DROP CONSTRAINT JT;

ALTER TABLE EMPLOYEE
ADD CONSTRAINT JT CHECK (JOBTITLE IN(
    'MANAGER',
    'SENIOR MANAGER',
    'LEAD MANAGER',
    'ANALYST',
    'SENIOR ANALYST',
    'LEAD ANALYST',
    'CLERK',
    'SENIOR CLERK',
    'SALESMAN'
    ));
UPDATE EMPLOYEE
SET JOBTITLE = 'SENIOR MANAGER'
WHERE SALARY > 5000 AND COMM IS NOT NULL AND JOBTITLE = 'MANAGER' ;

UPDATE EMPLOYEE
SET JOBTITLE = 'SENIOR ANALYST'
WHERE SALARY > 5000 AND COMM IS NOT NULL AND JOBTITLE = 'ANALYST';

UPDATE EMPLOYEE
SET JOBTITLE = 'LEAD MANAGER'
WHERE SALARY > 4000 AND DEPTNO = 20 AND JOBTITLE = 'MANAGER';

UPDATE EMPLOYEE
SET JOBTITLE = 'LEAD ANALYST'
WHERE SALARY > 4000 AND DEPTNO = 20 AND JOBTITLE = 'ANALYST';




Comments

Popular posts from this blog

alter table

DDL create table