Sunteți pe pagina 1din 4

CREATE DATABASE COMPANY;

USE COMPANY;
CREATE TABLE EMPLOYEE
(
FNAME VARCHAR(40),
MINIT CHAR(1),
LNAME VARCHAR(40),
SSN INT,
BDATE DATE,
ADDRESS VARCHAR(100),
SEX CHAR(1),
SALARY FLOAT DEFAULT(0.0),
SUPERSSN INT NULL,
DNO INT,
PRIMARY KEY(SSN),

);
select * from employee;
ALTER TABLE EMPLOYEE ADD CONSTRAINT[FK_EMPLOYEE_DEPARTMENT] FOREIGN KEY(DNO) REFERENCES
DEPARTMENT(DNUMBER) ON DELETE CASCADE ON UPDATE CASCADE;
insert into EMPLOYEE values('John',
'B','Smith',123456789,'1965-01-09','731 Fondren,Houston,TX','M',30000,333445555,5);
insert into EMPLOYEE values('Franklin',
'T','Wong',333445555,'1955-12-08','638 Voss,Houston,TX','M',40000,888665555,5);
insert into EMPLOYEE values('Alicia',
'J','Zelaya',999887777,'1968-07-19','3321 Castle,Spring,TX','F',25000,987654321,4);
insert into EMPLOYEE values('Jennifer',
's','SWallace',987654321,'1941-06-20','291 Berry,Bellaire,TX','F',43000,888665555,4);
insert into EMPLOYEE values('Ramesh',
'k','Narayan',666884444,'1962-09-15','975 Fire Oak,Humble,TX','M',38000,333445555,5);
insert into EMPLOYEE values('Joyce',
'A','English',453453453,'1972-07-31','5631 Rice,Houston,TX','F',25000,333445555,5);
insert into employee values('Ahmed',
'V','Jabbar',987987987,'1969-03-29','980 Dallas,Houston,TX','M',25000,987654321,4);
insert into EMPLOYEE values('James',
'E','Bong',888665555,'1937-11-10','450 Stone,Houston,TX','M',55000,null,1);

CREATE TABLE DEPARTMENT


(
DNAME VARCHAR(30),
DNUMBER INT,
MGRSSN INT,
MGRSTARTDATE DATE,
PRIMARY KEY(DNUMBER),
FOREIGN KEY(MGRSSN) REFERENCES EMPLOYEE(SSN) ON DELETE SET NULL
);
SELECT * FROM DEPARTMENT;

ALTER TABLE [DEPARTMENT] ADD CONSTRAINT[FK_DEPARTMENT_EMPLOYEE] FOREIGN KEY([MGRSSN INT])


REFERENCES EMPLOYEE([SSN]) ON DELETE CASCADE ON UPDATE CASCADE;
insert into department(DNAME,DNUMBER,MGRSSN,MGRSTARTDATE)
VALUES('Research',5,333445555,'1988-05-22');
insert into department(DNAME,DNUMBER,MGRSSN,MGRSTARTDATE)
VALUES('Administration',4,987654321,'1995-01-01');
insert into department(DNAME,DNUMBER,MGRSSN,MGRSTARTDATE)
VALUES('Headquarers',1,888665555,'1981-06-19');

CREATE TABLE DEPT_LOCATIONS


(
DNUMBER INT,
DLOCATION VARCHAR(40),
PRIMARY KEY (DLOCATION,DNUMBER),
FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT(DNUMBER) ON DELETE CASCADE
);
INSERT INTO DEPT_LOCATIONS(DNUMBER,DLOCATION) VALUES(1,'Houston');
INSERT INTO DEPT_LOCATIONS(DNUMBER,DLOCATION) VALUES(4,'Stafford');
INSERT INTO DEPT_LOCATIONS(DNUMBER,DLOCATION) VALUES(5,'Bellaire');
INSERT INTO DEPT_LOCATIONS(DNUMBER,DLOCATION) VALUES(5,'Sugartand');
INSERT INTO DEPT_LOCATIONS(DNUMBER,DLOCATION) VALUES(5,'Houston');
SELECT * FROM DEPT_LOCATIONS;

CREATE TABLE WORKS_ON


(
ESSN INT,
PNO INT,
HOURS FLOAT NULL,

PRIMARY KEY(ESSN,PNO),
FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN) ON DELETE CASCADE,

);
insert into WORKS_ON(ESSN,PNO,HOURS) values(123456789,1,32.5);
insert into WORKS_ON(ESSN,PNO,HOURS) values(123456789,2,7.5);
insert into WORKS_ON(ESSN,PNO,HOURS) values(666884444,3,40.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(453453453,1,20.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(453453453,2,20.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(333445555,2,10.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(333445555,3,10.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(333445555,10,10.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(333445555,20,10.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(999887777,30,30.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(999887777,10,10.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(987987987,10,35.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(987987987,30,5.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(987987987,30,20.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(987654321,20,15.0);
insert into WORKS_ON(ESSN,PNO,HOURS) values(888665555,20,null);

CREATE TABLE PROJECT


(
PNAME VARCHAR(40),
PNUMBER INT,
PLOCATION VARCHAR(40),
DNUM INT,
PRIMARY KEY(PNUMBER),
FOREIGN KEY(DNUM) REFERENCES DEPARTMENT(DNUMBER) ON DELETE CASCADE
);
SELECT * FROM PROJECT;
insert into PROJECT(PNAME,PNUMBER,PLOCATION,DNUM) values('ProductX',1,'Bellaire',5);
insert into PROJECT(PNAME,PNUMBER,PLOCATION,DNUM) values('ProductY',2,'sugarland',5);
insert into PROJECT(PNAME,PNUMBER,PLOCATION,DNUM) values('ProductZ',3,'Houston',5);
insert into PROJECT(PNAME,PNUMBER,PLOCATION,DNUM)
values('Computerization',10,'Stafford',4);
insert into PROJECT(PNAME,PNUMBER,PLOCATION,DNUM)
values('Reorganization',20,'Houston',1);
insert into PROJECT(PNAME,PNUMBER,PLOCATION,DNUM) values('Newbenefits',30,'Stafford',4);

CREATE TABLE DEPENDENT


(
ESSN INT,
DEPENDENT_NAME VARCHAR(40),
SEX CHAR(1),
BDATE DATE,
RELATIONSHIP VARCHAR(40),

PRIMARY KEY(DEPENDENT_NAME,ESSN),
FOREIGN KEY(ESSN)REFERENCES EMPLOYEE(SSN) ON DELETE CASCADE
);
select * from DEPENDENT;
insert into DEPENDENT values(333445555,'Alice','F','1986-04-05','Daughter');
insert into DEPENDENT values(333445555,'Theodore','M','1983-10-25','SON');
insert into DEPENDENT values(333445555,'Joy','F','1958-05-03','SPOUSE');
insert into DEPENDENT values(987654321,'Abner','M','1942-02-28','SPOUSE');
insert into DEPENDENT values(123456789,'Michael','M','1988-01-04','SON');
insert into DEPENDENT values(333445555,'Alice','F','1988-12-30','Daughter');
insert into DEPENDENT values(123456789,'Elizabeth','F','1967-05-05','SPOUSE');

--query
--1

USE COMPANY

EXECUTE sp_helpindex EMPLOYEE


use COMPANY

CREATE NONCLUSTERED INDEX IX_EMPLOYEE_SSN


ON EMPLOYEE(SSN DESC)
IX_EMPLOYEE_SSN Index Data

EXECUTE SP_HELPINDEX EMPLOYEE

--2
ALTER TABLE EMPLOYEE ADD CONSTRAINT [DF_EPLOYEE_SALARY] DEFAULT(0) FOR [SALARY];
--3
ALTER TABLE DEPARTMENT WITH CHECK ADD CONSTRAINT [FK_DEPARTMENT_EMPLOYEE2] FOREIGN
KEY([MGRSSN])
REFERENCES EMPLOYEE2 ([SSN]) ON DELETE CASCADE ON UPDATE CASCADE
--4
SELECT FNAME,LNAME,SALARY FROM EMPLOYEE WHERE SALARY>30000
--AVERAGE SALARY
SELECT FNAME,LNAME,SALARY FROM EMPLOYEE WHERE SALARY>(SELECT AVG(SALARY) FROM EMPLOYEE);
--5
update employee
set salary= salary+salary*0.3
where DNO in(select DNUMBER from DEPT_LOCATIONS where DLOCATION='Houston' )OR DNO
IN(SELECT PNUMBER FROM PROJECT WHERE PLOCATION='Houston');
SELECT * FROM EMPLOYEE;
--6
SELECT FNAME,LNAME,BDATE
FROM EMPLOYEE
WHERE SSN='987987987';
--7
SELECT DNAME FROM DEPARTMENT WHERE DNUMBER IN(SELECT DNO FROM EMPLOYEE WHERE
FNAME='Joyce' AND MINIT='A' AND LNAME='English');
--8
SELECT LNAME FROM EMPLOYEE,DEPARTMENT WHERE DNO=DNUMBER AND DNUMBER='1'
--USING SUBQUERY
SELECT LNAME FROM EMPLOYEE WHERE DNO IN(SELECT DNUMBER FROM DEPARTMENT WHERE DNUMBER=1 );
--USING SET OPRATION
(SELECT LNAME FROM EMPLOYEE,DEPARTMENT WHERE DNO=DNUMBER AND DNUMBER=1)
UNION(SELECT LNAME FROM WORKS_ON,EMPLOYEE,DEPARTMENT WHERE SSN=ESSN AND DNUMBER=1);
--9
SELECT PNAME
FROM EMPLOYEE AS E,DEPARTMENT AS D,PROJECT AS P
WHERE D.DNUMBER='4' AND E.SSN='999887777';
--SUBQUERY METHOD
SELECT PNAME FROM PROJECT,WORKS_ON,EMPLOYEE WHERE PNUMBER IN(SELECT PNO FROM WORKS_ON
WHERE PNO=PNUMBER )
OR ESSN IN(SELECT SSN FROM EMPLOYEE WHERE FNAME='Alicia' AND minit='J' AND
LNAME='Zelaya');
--10
SELECT PNAME,COUNT(*),SUM(HOURS)
FROM PROJECT, WORKS_ON
WHERE PNUMBER=PNO
GROUP BY PNAME;
--11
SELECT BDATE,ADDRESS
FROM EMPLOYEE
WHERE FNAME='John' and MINIT='B' AND LNAME='Smith' ;
--12
SELECT FNAME +' '+ LNAME ,SUPERSSN
FROM EMPLOYEE as e
WHERE e.SUPERSSN=333445555 or e.SUPERSSN=888665555 or e.SUPERSSN=987654321 or
e.SUPERSSN=null;
--13
SELECT FNAME,LNAME,SSN
FROM EMPLOYEE,WORKS_ON,PROJECT
WHERE PNUMBER=1 OR PNUMBER=2 OR PNUMBER=3;
--OR
SELECT FNAME+' '+LNAME,SSN
FROM EMPLOYEE,WORKS_ON,PROJECT
WHERE SSN IN(SELECT ESSN FROM WORKS_ON WHERE SSN=ESSN )
OR PNUMBER IN(SELECT PNO FROM PROJECT WHERE PNUMBER=1 OR PNUMBER=2 AND PNUMBER=3 );
--14
DELETE FROM EMPLOYEE WHERE DNO IN (SELECT DNUMBER FROM DEPARTMENT WHERE DNAME =
'Research');
--15
SELECT FNAME,LNAME
FROM EMPLOYEE
WHERE ADDRESS LIKE '%Houston,TX%';

S-ar putea să vă placă și