You are on page 1of 16

Lab 04

CRTEATE DATABASE Company;

USE Company;

Table worker
CREATE TABLE WORKER(

Fname VARCHAR(40),

Minit INT,

Lname VARCHAR(20),

SSN INT PRIMARY KEY,

BDate DATE NOT NULL,

address VARCHAR(50),

SEX varchar(10),

Salary INT,

Super_SSN INT,

dno INT

);

Table dept
CREATE TABLE dept(

Dname VARCHAR(40),

DNumber INT PRIMARY KEY,

mgr_ssn INT,

mgr_start_date DATE

);

Table location
CREATE TABLE location(

DNumber INT,

dDLocation VARCHAR(50) PRIMARY KEY

);
Table dept_project
CREATE dept_project(

PName VARCHAR(50) ,

PNo INT PRIMARY KEY,

PLocation VARCHAR(60),

DNum INT

);

Table work
CREATE TABLE Work(

ESSN INT ,

PNo INT,

Hours int

);

Table worker_dependent
CREATE TABLE worker_dependent(

essn INT,

dependent_name VARCHAR(50) PRIMARY KEY,

sex VARCHAR(2),

bdate DATE ,

relationship VARCHAR(10)

);
INSERTING DATA
WORKER
INSERT INTO worker

VALUES ('Irtiza',62,'Haider',190,'1999-09-10','Islamabad', 'M', 100000,35, 1),

('Kumail',32,'Ali',191,'2000-09-10','Islamabad', 'M', 300000,30, 2),

('Muhammad',24,'Suleman',192,'2001-09-10','Islamabad', 'M', 200000,39, 1);

DEPT
INSERT INTO dept

VALUES ('Irtaza',7,90,'2017-09-09'),

('Husaain',8,100,'2018-09-09'),

('Suleman',9,95,'2019-09-09');
LOCATION
INSERT INTO location

VALUES (2,'Karachi'),

(3, 'Lahore');
DEPT PROJECT
INSERT INTO dept_project

VALUES ('Android',21,'Lahore', 100),

('Web',22,'Karchi', 101),

('React',23,'Islamabad', 102)

;
WORK
INSERT INTO work

VALUES (1010,100,20),

(1011,102,21),

(1012,104,22);
WORK DEPENDENT
INSERT INTO worker_dependent

VALUES (50,'ali','M','2000-03-15','Son'),

(51,'husssain','M','2001-03-15','Son'),

(52,'irtiza','M','2002-03-15','Son');

ERRORS

UPDATE

UPDATE dept
SET mgr_ssn= 70
WHERE DNumber=9
UPDATE location
SET DNumber = 20
WHERE dDLocation= 'Karachi'

UPDATE worker
SET Fname = 'ali'
WHERE SSN = 190
DELETE
DELETE FROM location WHERE
dDLocation='Lahore'

Yes ,we can delete from PK column as shown above.


DROPPING DATABASE

DROP DATABASE Company;

CREATING AGAIN
USE company;
CREATE TABLE WORKER(
Fname VARCHAR(40),
Minit INT,
Lname VARCHAR(20),
SSN INT,
BDate DATE NOT NULL,
address VARCHAR(50),
SEX varchar(10),
Salary INT,
Super_SSN INT,
dno INT,
CONSTRAINT id PRIMARY KEY(SSN)
);
CREATE TABLE dept(
Dname VARCHAR(40),
DNumber INT ,
mgr_ssn INT,
mgr_start_date DATE,
CONSTRAINT id PRIMARY KEY(DNumber)
);
CREATE TABLE location(
DNumber INT,
dDLocation VARCHAR(50),
CONSTRAINT id PRIMARY KEY(dDlocation)
);
CREATE TABLE Work(
ESSN INT ,
PNo INT,
Hours int
);
CREATE TABLE worker_dependent(
essn INT,
dependent_name VARCHAR(50),
sex VARCHAR(2),
bdate DATE ,
relationship VARCHAR(10),
CONSTRAINT id PRIMARY KEY(dependent_name)

);

CREATE table dept_project(


PName VARCHAR(50) ,
PNo INT ,
PLocation VARCHAR(60),
DNum INT,
CONSTRAINT id PRIMARY KEY(PNo)
);

ALTER DATABASE

ALTER TABLE worker


ADD CONSTRAINT dno FOREIGN KEY (dno) REFERENCES dept(DNumber);

ALTER TABLE dept


ADD CONSTRAINT fk FOREIGN KEY (mgr_ssn) REFERENCES worker(SSN);
alter table location
ADD CONSTRAINT location_number FOREIGN KEY(DNumber) REFERENCES dept(DNumber);

ALTER table dept_project


ADD CONSTRAINT dnum FOREIGN KEY(DNum) REFERENCES dept(DNumber);

ALTER TABLE work


ADD CONSTRAINT eno FOREIGN KEY(ESSN) REFERENCES worker (SSN),
ADD CONSTRAINT pno FOREIGN KEY(PNo) REFERENCES dept_project(PNo),
ADD CONSTRAINT eno_pno PRIMARY KEY (ESSN, PNo);

ALTER TABLE worker_dependent


ADD CONSTRAINT essn FOREIGN KEY(essn) REFERENCES worker (SSN);

INSERTING DATA
INSERT INTO worker

VALUES ('Alam', 62, 'Khalid', 223, '2000-03-08', 'Islamabad', 'M', 260000, 35, 1),

('Haseeb', 76, 'Asim', 224, '1999-07-06', 'Lahore', 'M', 129000, 36, 2),

('Umar', 60, 'Javed', 225, '2000-12-22', 'Karachi', 'M', 34550, 37, 3);

INSERT INTO dept

VALUES ('EE', 1, 223, '2016-08-20'),

('CS', 2, 224, '2015-09-23'),

('SE', 3, 225, '2008-01-01');

INSERT INTO location

VALUES (1, 'Islamabad'),

(2, 'Karachi'),

(3, 'Chiniot');

INSERT INTO dept_project

VALUES ('Android', 11, 'Isb', 1),

('Web', 22, 'Khi', 2),

('Java', 33, 'Lhr', 3);


INSERT INTO work

VALUES (223,11,2),

(224,22,3),

(225,33,3);

INSERT INTO worker_dependent

VALUES (225, 'Asad', 'M', '2000-07-07', 'Son'),

(225, 'Umar', 'M', '1999-09-09', 'Son'),

(223, 'Ali', 'M', '1900-07-09', 'Son');

(b)
(c)
UPDATING DATA

UPDATE worker

SET dno = 4

WHERE ssn = 225;


UPDATE dept

SET dname = 'CS'

WHERE dnumber = 3;

UPDATE location

SET dnumber = 2

WHERE dlocation = 'Chiniot';

BEFORE:

AFTER:

This was valid because we already had a dnumber 2 in the dept table.

You might also like