Dms Lab Exam: Project (P - Num, P - Name) Worker (W - Id, W - Name, Job - Id, CHPH, DOJ) Project - Worker (P - Num, W - Id)

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

DMS LAB EXAM

Q1) Create Tables for following schemas using SQL DDL using primary key,
foreign key and necessary constraints

Project =(P_num, P_name);

Worker= (W_id, W_name, job_id, CHPH, DOJ);

Project_Worker = (P_num, W_id);

Do the following:

1. Insert some rows in each table


2. Find Out the project number for which maximum workers are working
3. Find out workers not working on any project
4. Find out project numbers of which CHPH is Maximum
5. Can we create index on job_id? If yes then create it

Queries to Create Table and Insert values into the table:

CREATE TABLE PROJECT

(
P_NUM INT,

P_NAME VARCHAR(100) NOT NULL,

PRIMARY KEY(P_NUM)

INSERT INTO PROJECT VALUES (1,'first')

INSERT INTO PROJECT VALUES (2,'second')

INSERT INTO PROJECT VALUES (3,'third')

INSERT INTO PROJECT VALUES (4,'fourth')

INSERT INTO PROJECT VALUES (5,'fifth')

INSERT INTO PROJECT VALUES (6,'sixth')

CREATE TABLE WORKER

W_ID INT NOT NULL,


W_NAME VARCHAR(100),

JOB_ID INT,

CHPH INT,

DOJ DATE,

PRIMARY KEY(W_ID)

INSERT INTO WORKER VALUES (111, 'Ashish',001,1500,'Feb-15-2010')

INSERT INTO WORKER VALUES (222, 'Amit',002,2000,'Jan-19-2000')

INSERT INTO WORKER VALUES (333, 'Ashok',003,1000,'Feb-21-2009')

INSERT INTO WORKER VALUES (444, 'Naresh',004,1200,'Mar-19-2005')

INSERT INTO WORKER VALUES (555, 'Govind',005,1600,'Aug-20-1999')

INSERT INTO WORKER VALUES (666, 'Krishna',006,1100,'Dec-19-2011')

INSERT INTO WORKER VALUES (777, 'Shubham',007,500,'Nov-19-2016')

CREATE TABLE "PROJECT_WORKER"

( "P_NUM" NUMBER,

"W_ID" NUMBER,
CONSTRAINT "PROJECT_WORKER_FK" FOREIGN KEY ("P_NUM")

REFERENCES "PROJECT" ("P_NUM") ENABLE,

CONSTRAINT "PROJECT_WORKER_FK2" FOREIGN KEY ("W_ID")

REFERENCES "WORKER" ("W_ID") ENABLE

INSERT INTO PROJECT_WORKER(P_NUM, W_ID) VALUES (1, 111)

INSERT INTO PROJECT_WORKER(P_NUM, W_ID) VALUES (2, 222)

INSERT INTO PROJECT_WORKER(P_NUM, W_ID) VALUES (2, 333)

2. Find Out the project number for which maximum workers are working
SELECT P_NUM, COUNT(W_ID) AS WORKERS

FROM PROJECT_WORKER

GROUP BY P_NUM ORDER BY WORKERS DESC

3. Find out workers not working on any project:

SELECT W.W_ID, W.W_NAME, P.P_NUM

FROM WORKER W

LEFT JOIN PROJECT_WORKER P

ON W.W_ID=P.W_ID

WHERE P.P_NUM IS NULL

4. Find out project numbers of which CHPH is Maximum

SELECT WORKER.W_ID,WORKER.W_NAME,
PROJECT_WORKER.P_NUM, WORKER.CHPH
FROM WORKER,PROJECT_WORKER
WHERE WORKER.W_ID=PROJECT_WORKER.W_ID
ORDER BY WORKER.CHPH DESC;

5. Can we create index on job_id? If yes then create it

Yes, we can as follows:

CREATE INDEX JOB ON WORKER(JOB_ID)

You might also like