Anda di halaman 1dari 56

EXERCISES

PAGE 13
NO. 1 QUERY SELECT * FROM SALGRADE; RESULT

SELECT * FROM DEPT;

SELECT DNAME, LOC FROM DEPT;

SELECT ENAME, SAL, COMM, SAL + COMM AS 'SALARY + COMMISION' FROM EMP;

SELECT ENAME AS 'Name', DEPTNO AS 'Department', SAL AS 'Salary', SAL*0.03 AS 'Bonus' FROM EMP;

SELECT DISTINCT JOB FROM EMP;

SELECT ENAME + ' was hired on the ' + cast(HIREDATE AS varchar) + ' as a ' + JOB AS 'Employee' FROM EMP;

SELECT * FROM DIRECTOR;

SELECT DIRNAME, DIRBORN FROM DIRECTOR;

10

SELECT MVTITLE, NOMS, FROM MOVIE;

MVTYPE

11

SELECT MVTITLE AS 'Movie', DAILYCHARGE AS 'Old Hire Charge', DAILYCHARGE+(0.05*DAILYCHARGE) AS 'New charge' FROM MOVIE;

12

SELECT TPNUMB AS 'Tape Number', MEMBERNUMB AS 'Member Number', HIREDATE AS 'Hire date', HIREDATE+1 AS 'Proposed return date' FROM HIRING;

13

SELECT DISTINCT MVTYPE FROM MOVIE;

14

SELECT MVTITLE + ' is a ' + MVTYPE + ' and has a rating of ' + MPAA AS 'Movies' FROM MOVIE;

PAGE 21
NO. 1 QUERY SELECT JOB, SAL FROM EMP WHERE SAL < 2000; RESULT

SELECT ENAME,SAL FROM EMP WHERE DEPTNO = 20 AND SAL > 1000; SELECT* FROM EMP WHERE HIREDATE LIKE'%1982%'OR HIREDATE >'31-DEC-1982' ORDERBY ENAME DESC; SELECT DNAME FROM DEPT WHERE DNAME NOTLIKE'R%'; SELECT* FROM EMP WHERE COMM > SAL; SELECT* FROM EMP ORDERBY HIREDATE DESC;

5 6

SELECT ENAME FROM EMP WHERE SAL BETWEEN 1250 AND 2850;

8 9 10

SELECT ENAME, JOB FROM EMP WHERE DEPTNO ISNULL; SELECT* FROM HIRING WHERE RETURNDATE ISNOTNULL; SELECT DIRNAME FROM DIRECTOR WHERE DIRNAME LIKE'%A%';

11

SELECT MVTITLE FROM MOVIE WHERE MVTYPE IN('COMEDY');

12

SELECT MVTITLE FROM MOVIE WHERE NOMS > 0 AND AWRD = 0;

13

SSELECT MVTITLE, MVTYPE FROM MOVIE WHERE DAILYCHARGE BETWEEN 3 AND 5;

14

SELECT* FROM DIRECTOR WHERE DIRDIED ISNULL ORDERBY DIRBORN;

15

SELECT* FROM DIRECTOR WHERE DIRDIED ISNOTNULL; SELECT MVTITLE, MVTYPE, AWRD

16

17

FROM MOVIE WHERE YRMDE > 2000 ORDERBY MVTYPE, MVTITLE; SELECTDISTINCT MVTYPE FROM MOVIE;

PAGE 26
NO. 1 QUERY SELECT ENAME, JOB,CONVERT(VARCHAR, HIREDATE, 106) "Hire Date" FROM EMP WHERE DEPTNO = 30; RESULT

SELECT EMPNO, ENAME, SAL,CAST(SAL+(SAL*0.15)ASINT) "New Salary" FROM EMP;

SELECT EMPNO, ENAME, SAL,CAST(SAL+(SAL*0.15)ASINT) "New Salary",CAST(SAL+(SAL*0.15)-SAL ASINT) "Increase" FROM EMP;

SELECT ENAME,CONVERT(VARCHAR, HIREDATE, 3) "HIRE DATE",CONVERT(VARCHAR,DATEADD(MONTH,6,HIREDATE), 3) "REVIEW DATE" FROM EMP;

SELECT ENAME,DATEDIFF(M, HIREDATE,GETDATE()) "Number of months" FROM EMP WHERE DEPTNO = 30;

SELECT ENAME,CONVERT(VARCHAR, HIREDATE, 3) "HIRE DATE",DATENAME(WEEKDAY, HIREDATE) "DAY OF THE WEEK HIRED" FROM EMP;

SELECT ENAME,'COMMISSION'=CASEWHEN COMM ISNULLOR COMM=0 THEN'NO COMMISSION' ELSECONVERT(VARCHAR,COMM)END FROM EMP;

SELECT ENAME+' was hired on '+DATENAME(WEEKDAY, HIREDATE)+' '+ CASE WHEN DAY(HIREDATE)IN(1,21,31)THEN CONVERT(VARCHAR,DAY(HIREDATE))+'st' WHEN DAY(HIREDATE)IN(2,22)THEN CONVERT(VARCHAR,DAY(HIREDATE))+'nd' WHEN DAY(HIREDATE)IN(3,23)THEN CONVERT(VARCHAR,DAY(HIREDATE))+'rd' ELSE CONVERT(VARCHAR,DAY(HIREDATE))+'th' END+' of '+DATENAME(MONTH, HIREDATE)+' '+CONVERT(VARCHAR,YEAR(HIREDATE))AS "Details" FROM EMP; SELECTSTUDID,UNITID, DATEENROLLED,'Grade'= CASEWHEN MARK>= 0 andMARK<=49 THEN'NN' WHEN MARK>= 50 andMARK<=74 THEN'PA' WHEN MARK>= 75 and MARK<=89 THEN'PC' WHEN MARK>= 90 and MARK<=100 THEN'DI' END FROM RESULTS

10

SELECT GIVEN_NAME, FAMILY_NAME,LEFT(GIVEN_NAME,1)+' '+LEFT(FAMILY_NAME,5)AS "USER NAME" FROM STUDENT;

11

SELECTCONVERT(VARCHAR,MVTITLE)+' has been nominated '+ CONVERT(VARCHAR, NOMS)+' times and won '+ CONVERT(VARCHAR,AWRD)+' awards.'AS "Movies" FROM MOVIE;CONVERT(VARCHAR, NOMS)+' times and won '+ CONVERT(VARCHAR,AWRD)+' awards.' FROM MOVIE;

12

SELECT MEMBERNUMB,DATENAME(WEEKDAY, HIREDATE)+' '+ REPLACE(CONVERT(VARCHAR,HIREDATE,6),' ','-')AS "HIRE DATE", TPNUMB FROM HIRING;

13

SELECT DIRNAME+' was born in '+CONVERT(VARCHAR,DIRBORN)+ CASEWHENCONVERT(VARCHAR,DIRDIED)ISNULLTHEN' and is still alive ' ELSE' died in '+CONVERT(VARCHAR,DIRDIED) END AS "Director Details" FROM DIRECTOR; SELECTDISTINCT DAILYCHARGE,STATUS= CASE WHEN DailyCharge=2 THEN'Weekly hire' WHEN DailyCharge=3 THEN'Two days overnight' WHEN DailyCharge=5 THEN'New releases single disk' WHEN DailyCharge=7 THEN'New releases double disk' END FROM MOVIE;

14

15

16

SELECT MEMBERNUMB "Member",CONVERT(VARCHAR,HIREDATE,106) "Hire date", CASEWHEN RETURNDATE ISNULLTHEN' 'ELSECONVERT(VARCHAR, ReturnDate, 106)END "Return Date", CASEWHEN RETURNDATE ISNULLTHENDATEDIFF(DAY, HIREDATE,GETDATE()) ELSEDATEDIFF(DAY, HIREDATE, RETURNDATE) END AS "No of days hired" FROM HIRING; SELECT MVTITLE,CHARINDEX('THE',MVTITLE) "POSITION FOUND" FROM MOVIE WHERE MVTITLE LIKE'%THE%';

PAGE 32
NO. 1 QUERY SELECT ENAME, SAL, LOC FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO; RESULT

SELECT ENAME, SAL, LOC FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO WHERE JOB ='SALESMAN'; SELECT DNAME, JOB FROM DEPT JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO ORDERBY DNAME;

SELECTDISTINCT JOB, DNAME FROM DEPT JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO ORDERBY DNAME;

SELECT NAME, SHIPDATE FROM ORD, CUSTOMER WHERE ORD.CUSTID = CUSTOMER.CUSTID;

SELECT MVNUMB, MVTITLE, YRMDE, MVTYPE, DIRNAME FROM MOVIE JOIN DIRECTOR ON MOVIE.DIRNUMB = DIRECTOR.DIRNUMB;

SELECT STAR.STARNUMB, STARNAME, MOVIE.MVNUMB, MVTITLE FROM MOVIE JOIN MOVSTAR ON MOVIE.MVNUMB = MOVSTAR.MVNUMB JOIN STAR ON MOVSTAR.STARNUMB = STAR.STARNUMB;

SELECT MVNUMB, MVTITLE, DIRECTOR.DIRNUMB, DIRNAME FROM MOVIE JOIN DIRECTOR ON MOVIE.DIRNUMB = DIRECTOR.DIRNUMB WHERE MVTYPE='COMEDY'; SELECT MEMBERNAME, BONUSPOINTS, TPNUMB, HIREDATE FROM MEMBER JOIN HIRING ON MEMBER.MEMBERNUMB = HIRING.MEMBERNUMB ORDERBY MEMBERNAME;

10

11

SELECT MEMBERNAME, MVTITLE, MVTYPE, HIREDATE, RETURNDATE FROM MEMBER JOIN HIRING ON MEMBER.MEMBERNUMB = HIRING.MEMBERNUMB JOINTAPE ON HIRING.TPNUMB =TAPE.TPNUMB JOIN MOVIE ONTAPE.MVNUMB = MOVIE.MVNUMB ORDERBY MEMBERNAME; SELECT MEMBERNAME, BONUSPOINTS, TPNUMB, HIREDATE FROM MEMBER JOIN HIRING ON MEMBER.MEMBERNUMB = HIRING.MEMBERNUMB WHERE RETURNDATE ISNULL ORDERBY MEMBERNAME; SELECT MVTITLE, DIRNAME FROM MOVIE JOIN DIRECTOR ON MOVIE.DIRNUMB = DIRECTOR.DIRNUMB WHERE NOMS = 0; SELECT MVTITLE, STARNAME, BIRTHPLCE, DIRNAME FROM DIRECTOR JOIN MOVIE ON DIRECTOR.DIRNUMB = MOVIE.DIRNUMB JOIN MOVSTAR ON MOVIE.MVNUMB = MOVSTAR.MVNUMB JOIN STAR ON MOVSTAR.STARNUMB = STAR.STARNUMB;

12

13

PAGE 36
NO. 1 QUERY SELECT WORKER.ENAME, WORKER.EMPNO, WORKER.MGR, MGR.ENAME 'MGR NAME' FROM EMP AS WORKER, EMP AS MGR WHERE WORKER.MGR = MGR.EMPNO; RESULT

SELECT WORKER.ENAME, WORKER.EMPNO, WORKER.MGR, MGR.ENAME 'MGR NAME' FROM EMP AS WORKER LEFTJOIN EMP AS MGR ON WORKER.MGR = MGR.EMPNO;

SELECT WORKER.DEPTNO, WORKER.ENAME, DEPT.ENAME AS'COLLEAGUE' FROM EMP AS WORKER, EMP AS DEPT WHERE DEPT.DEPTNO = WORKER.DEPTNO AND DEPT.ENAME != WORKER.ENAME ORDERBY DEPTNO;

SELECT WORKER.ENAME, WORKER.HIREDATE, MGR.ENAME, MGR.HIREDATE FROM EMP AS WORKER, EMP AS MGR WHERE WORKER.MGR = MGR.EMPNO AND WORKER.HIREDATE < MGR.HIREDATE; SELECT ENAME, JOB, DNAME, SAL, GRADE FROM EMP LEFTJOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO JOIN SALGRADE ON SAL BETWEEN SALGRADE.LOSAL AND SALGRADE.HISAL;

SELECT WORKER.ENAME, WORKER.HIREDATE FROM EMP AS WORKER, EMP AS MARTIN WHERE MARTIN.ENAME ='MARTIN' AND WORKER.HIREDATE > MARTIN.HIREDATE;

SELECT GIVEN_NAME, UNITID, MARK, GRADECODE FROM STUDENT JOIN RESULTS ON STUDENT.STUDID = RESULTS.STUDID JOIN GRADE ON MARK BETWEEN GRADE.LOW AND GRADE.HIGH;

SELECT GIVEN_NAME, UNITDESC, GRADECODE FROM STUDENT JOIN RESULTS ON STUDENT.STUDID = RESULTS.STUDID JOIN UNIT ON RESULTS.UNITID = UNIT.UNITID JOIN GRADE ON MARK BETWEEN GRADE.LOW AND GRADE.HIGH;

SELECT GIVEN_NAME, UNITDESC, GRADECODE FROM STUDENT JOIN RESULTS ON STUDENT.STUDID = RESULTS.STUDID JOIN UNIT ON RESULTS.UNITID = UNIT.UNITID JOIN GRADE ON MARK BETWEEN GRADE.LOW AND GRADE.HIGH WHERE UNIT.UNITID IN('IT070'); SELECT STUDENT.STUDID, MARK FROM STUDENT LEFTOUTERJOIN RESULTS ON STUDENT.STUDID = RESULTS.STUDID AND DATEENROLLED LIKE'%2002%';

10

11

SELECT DIRNAME, MVTITLE FROM DIRECTOR LEFTOUTERJOIN MOVIE ON DIRECTOR.DIRNUMB = MOVIE.DIRNUMB AND MVTYPE IN('COMEDY');

12

SELECT MEMBERNAME, MEMBERCITY, MEMBER.MEMBERNUMB, BONUSPOINTS, TPNUMB, HIREDATE FROM MEMBER LEFTJOIN HIRING ON MEMBER.MEMBERNUMB = HIRING.MEMBERNUMB;

13

14

SELECT MEMBERSET.MEMBERNUMB, MEMBERSET.BONUSPOINTS FROM MEMBER AS MEMBERSET, MEMBER AS MEMBER_ONE WHERE MEMBER_ONE.MEMBERNUMB = 1 AND MEMBERSET.BONUSPOINTS > MEMBER_ONE.BONUSPOINTS; SELECT MOVIESET.MVTITLE, MOVIESET.NOMS FROM MOVIE AS MOVIESET, MOVIE AS MOVIEBASE WHERE MOVIEBASE.MVTITLE IN('ANATOMY OF A MURDER') AND MOVIESET.MVTITLE NOTIN('ANATOMY OF A MURDER') AND MOVIESET.NOMS >= MOVIEBASE.NOMS ;

15

SELECT MVTITLE, MOVIE.MVNUMB, STAR.STARNUMB, STARNAME FROM MOVIE LEFTOUTERJOIN MOVSTAR ON MOVIE.MVNUMB = MOVSTAR.MVNUMB LEFTOUTERJOIN STAR ON MOVSTAR.STARNUMB = STAR.STARNUMB;

PAGE 39
NO. 1 2 QUERY SELECT MAX(SAL)'HIGHEST SAL',MIN(SAL)'LOWEST SAL',SUM(SAL)'TOTAL SAL',AVG(SAL)'AVERAGE SAL' FROM EMP; SELECT JOB,MAX(SAL)'HIGHEST SAL',MIN(SAL)'LOWEST SAL',SUM(SAL)'TOTAL SAL',AVG(SAL)'AVERAGE SAL' FROM EMP GROUPBY JOB; SELECT DNAME,COUNT(*)'NO. OF EMPLOYEES' FROM DEPT, EMP WHERE DEPT.DEPTNO = EMP.DEPTNO GROUPBY DNAME; SELECT JOB,SUM(SAL)'TOTAL SALARY' FROM EMP GROUPBY JOB; RESULT

SELECT JOB,COUNT(*)'NO. OF EMPLOYEES' FROM EMP GROUPBY JOB;

SELECT EMP.ENAME, EMP.HIREDATE FROM EMP,EMP AS FIRSTHIRED GROUPBY EMP.ENAME, EMP.HIREDATE HAVING MIN(EMP.HIREDATE)=MIN(FIRSTHIRED.HIREDATE); SELECT EMP.ENAME, EMP.HIREDATE FROM EMP,EMP AS FIRSTHIRED GROUPBY EMP.ENAME, EMP.HIREDATE HAVING MAX(EMP.HIREDATE)=MAX(FIRSTHIRED.HIREDATE);

SELECT SUM(SAL)'TOTAL SAL', JOB, DNAME FROM EMP, DEPT GROUPBY JOB, DNAME;

10 11 12

13

SELECT JOB 'JOB WITH TOTAL SAL < 3000' FROM EMP GROUPBY JOB HAVING SUM(SAL)< 3000; SELECT COUNT(DISTINCT MGR)'NO. OF MGR' FROM EMP; SELECT'MAX SAL - MIN SAL'=MAX(SAL)-MIN(SAL) FROM EMP; SELECT SUB_EMP.MGR,MIN(SUB_EMP.SAL)'SAL OF LOWEST PAID' FROM EMP, EMP AS SUB_EMP WHERE EMP.EMPNO = SUB_EMP.MGR AND SUB_EMP.MGR ISNOTNULL GROUPBY SUB_EMP.MGR HAVING MIN(SUB_EMP.SAL)>= 1000 ORDERBY MIN(SUB_EMP.SAL)DESC; SELECTDISTINCT MVTYPE 'Movie Type',COUNT(*)'No. of movies' FROM MOVIE GROUPBY MVTYPE;

14

SELECT DIRNUMB 'Director No',COUNT(*)'No. of Movies Directed' FROM MOVIE GROUPBY DIRNUMB;

15

SELECT DIRNUMB 'Director No',SUM(AWRD)'No. of Awards', SUM(NOMS)'No. of Nominations' FROM MOVIE GROUPBY DIRNUMB;

16

17 18

19 20

SELECT DIRNUMB 'Director No',SUM(AWRD)'No. of Awards' FROM MOVIE GROUPBY DIRNUMB HAVING SUM(AWRD)> 3; SELECT AVG(DAILYCHARGE)'AVG. HIRE PRICE' FROM MOVIE; SELECT DIRNAME,COUNT(MOVIE.DIRNUMB)'HAVE DIRECTED COMEDY' FROM MOVIE, DIRECTOR WHERE MOVIE.DIRNUMB = DIRECTOR.DIRNUMB AND MOVIE.MVTYPE IN('COMEDY') GROUPBY DIRNAME; SELECT COUNT(*)'NO. OF SUSPEN MOVIES' FROM MOVIE WHERE MVTYPE IN('SUSPEN'); SELECT SUM(DAILYHIRECHARGE)'TOTAL HIRE CHARGE', MVTYPE FROM MOVIE JOINTAPE ON MOVIE.MVNUMB =TAPE.MVNUMB JOIN HIRING ONTAPE.TPNUMB = HIRING.TPNUMB GROUPBY MVTYPE;

PAGE 44
NO. 1 QUERY SELECT ENAME, HIREDATE FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME IN ('SCOTT')) AND ENAME NOT IN ('SCOTT'); SELECT EMPNO, ENAME FROM EMP WHERE SAL > (SELECT AVG(SAL) FROM EMP) ORDER BY SAL; SELECT EMPNO, ENAME FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME LIKE '%U%') AND ENAME NOT LIKE '%U%'; SELECT ENAME, DEPTNO, JOB FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE LOC IN ('CHICAGO')); SELECT ENAME, SAL FROM EMP WHERE MGR = (SELECT EMPNO FROM EMP WHERE ENAME IN ('KING')); SELECT DEPTNO, ENAME, JOB FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE DNAME IN ('RESEARCH')); RESULT

SELECT STARNUMB, STARNAME FROM STAR WHERE STARNUMB IN (SELECT STARNUMB FROM MOVSTAR WHERE MVNUMB IN (SELECT MVNUMB FROM MOVIE WHERE DIRNUMB IN (SELECT DIRNUMB FROM DIRECTOR WHERE DIRNAME LIKE '%ALFRED%' AND DIRNAME LIKE '%HITCHCOCK%'))); SELECT MVNUMB, MVTITLE, NOMS FROM MOVIE WHERE NOMS > ALL (SELECT NOMS FROM MOVIE WHERE DIRNUMB = (SELECT DIRNUMB FROM DIRECTOR WHERE DIRNAME LIKE '%WOODY%' AND DIRNAME LIKE '%ALLEN%')); SELECT MVTITLE 'MOVIE WITH HIGHEST NO. OF AWARDS' FROM MOVIE WHERE AWRD =(SELECT MAX(AWRD) FROM MOVIE); SELECT DIRNUMB, NOMS FROM MOVIE WHERE NOMS > (SELECT AVG(NOMS) FROM MOVIE) AND DIRNUMB IS NOT NULL;

10

11

SELECT MVTITLE FROM MOVIE WHERE MVTYPE IN (SELECT MVTYPE FROM MOVIE WHERE DIRNUMB=(SELECT DIRNUMB FROM DIRECTOR WHERE DIRNAME LIKE '%WOODY%' AND DIRNAME LIKE '%ALLEN%')) AND DIRNUMB != (SELECT DIRNUMB FROM DIRECTOR WHERE DIRNAME LIKE '%WOODY%' AND DIRNAME LIKE '%ALLEN%')

PAGE 53
NO. 1 QUERY INSERT INTO DEPT VALUES (25, 'MALACCA', 'CHEMICAL') INSERT INTO DEPT VALUES (32, 'SINGAPORE', 'MARKETING') INSERT INTO DEPT (DEPTNO, DNAME) VALUES (44, 'PANELLING') RESULT

INSERT INTO EMP(EMPNO, ENAME, JOB, HIREDATE, DEPTNO, SAL, COMM) VALUES (120, 'WILSON', 'GRAPHICS', '21-JAN-98', 25, 7600.00, 500); INSERT INTO EMP(EMPNO, ENAME, JOB, HIREDATE, DEPTNO, SAL, COMM) VALUES (150, 'WILLIAMS', 'SECRETARY', '25-JAN-98', 25, 2500.00, NULL); INSERT INTO EMP(EMPNO, ENAME, JOB, HIREDATE, DEPTNO, SAL, COMM) VALUES (200, 'CHAN', 'SALES', NULL, 32, NULL, NULL);

UPDATE EMP SET SAL = ISNULL(SAL,0) + 2000 WHERE JOB = 'SALES';

UPDATE DEPT SET DNAME = 'PUBLICITY' WHERE DNAME = 'MARKETING';

DELETE EMP WHERE DEPTNO = 32;

DELETE EMP WHERE ENAME LIKE 'W%';

INSERT INTO DEPTBACKUP SELECT * FROM DEPT;

INSERT INTO Director(DirNumb, DirName, DirBorn, DirDied) VALUES (10, 'Jackson, Peter', '1961', NULL); INSERT INTO Director(DirNumb, DirName, DirBorn, DirDied) VALUES (11, 'Wachowski, Andrew', '1967', NULL); INSERT INTO Director(DirNumb, DirName, DirBorn, DirDied) VALUES (12, 'Singer, Brian', '1965', NULL); INSERT INTO Director(DirNumb, DirName, DirBorn, DirDied) VALUES (13, 'Raimi, Sam', '1959', NULL);

INSERT INTO Movie VALUES (28, 'THE DA VINCI CODE', '2006', 'MYSTER', 3, 'PG', 3, 0, 8, 5); INSERT INTO Movie VALUES (29, 'SUPERMAN RETURNS', '2006', 'ACTION', 5, 'PG', 6, 0, NULL, 5); INSERT INTO Movie VALUES (30, 'THE MATRIX', '1999', 'SCI FI', 2, 'MA', 35, 28, 11, 5); INSERT INTO Movie VALUES (31, 'SPIDERMAN', '2002', 'ACTION', 1, 'PG', 38, 11, NULL, 5);

10

UPDATE Movie SET DirNumb = 10 WHERE MvNumb = 25;

11

UPDATE Director SET DirBorn = 1946 WHERE DirName = 'Speilberg, Steven';

12

UPDATE Director SET DirDied = 1999 WHERE DirName = 'Kubrick, Stanley';

13

DELETE Hiring WHERE YEAR(Hiredate) < 2006 AND ReturnDate IS NULL;

14

UPDATE Movie SET DailyCharge = (DailyCharge * 2);

15

USE Classwork GO IF OBJECT_ID(N'MY_EMP') IS NOT NULL DROP TABLE MY_EMP GO CREATE TABLE MY_EMP (ID int, FAM_NAME VARCHAR(20), GIVEN_NAME VARCHAR(20), USEID VARCHAR(8), SALARY MONEY);

16 17

BEGIN TRANSACTION INSERT INTO MY_EMP VALUES (1, 'Patel', 'Ralph', 'Rpatel', 895);

18 19

INSERT VALUES INSERT VALUES INSERT VALUES

INTO MY_EMP(ID, FAM_NAME, GIVEN_NAME, USEID, SALARY) (2, 'Dancs', 'Betty', 'Bdancs', 860); INTO MY_EMP(ID, FAM_NAME, GIVEN_NAME, USEID, SALARY) (3, 'Biri', 'Ben', NULL, 1100); INTO MY_EMP(ID, FAM_NAME, GIVEN_NAME, USEID, SALARY) (4, 'Newman', 'Chad', NULL, 760);

20 21 22 23 24 25 26 27 28 29

COMMIT TRANSACTION; BEGIN TRANSACTION UPDATE MY_EMP SET FAM_NAME = 'Chan' WHERE ID = 3; UPDATE MY_EMP SET SALARY = 1000 WHERE SALARY < 900; SAVE TRANSACTION A DELETE MY_EMP WHERE FAM_NAME = 'Dancs' AND GIVEN_NAME = 'Betty'; INSERT INTO MY_EMP(ID, FAM_NAME, GIVEN_NAME, USEID, SALARY) VALUES (5, 'Ropeburn', 'Audrey', NULL, 1550); ROLLBACK TRANSACTION A UPDATE MY_EMP SET USEID = LEFT(GIVEN_NAME,1) + LOWER(LEFT(FAM_NAME,7)) WHERE USEID IS NULL; COMMIT TRANSACTION;

PAGE 58
NO. 1 QUERY USE Classwork GO CREATE TABLE DEPARTMENT (ID INT, NAME VARCHAR(30)); USE Classwork RESULT

GO CREATE TABLE EMPLOYEE (ID INT, Fam_Name VARCHAR(15), Given_Name VARCHAR(30), Dept_id INT); 3 SELECT TABLE_NAME, COLUMN_NAME, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH FROM Classwork.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'EMPLOYEE'; INSERT INTO DEPARTMENT(ID, NAME) SELECT DEPTNO, DNAME FROM DEPT;

5 6

7 8

ALTER TABLE EMPLOYEE ALTER COLUMN Fam_Name VARCHAR(30); SELECT TABLE_NAME, COLUMN_NAME, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH FROM Classwork.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'EMPLOYEE'; ALTER TABLE EMPLOYEE DROP COLUMN Dept_id; USE Classwork GO CREATE TABLE BankManager (MgrNo INT, MgrName VARCHAR(30), Phone VARCHAR(15), Email VARCHAR(30), DateHired SMALLDATETIME DEFAULT GETDATE(),

Gender VARCHAR(1) DEFAULT 'F'); ALTER TABLE Movie ALTER COLUMN MvType VARCHAR(12);

10

UPDATE Movie SET MvType = 'SUSPENSE' WHERE MvType = 'SUSPEN'; UPDATE Movie SET MvType = 'RELIGION' WHERE MvType = 'RELIGI'; UPDATE Movie SET MvType = 'WESTERN' WHERE MvType = 'WESTER';

PAGE 62
NO. 1 QUERY USE Classwork GO ALTER TABLE EMPLOYEE ALTER COLUMN ID INT NOT NULL; USE Classwork GO ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEE_ID_PK PRIMARY KEY (ID); USE Classwork GO ALTER TABLE DEPARTMENT ALTER COLUMN ID INT NOT NULL; USE Classwork GO ALTER TABLE DEPARTMENT ADD CONSTRAINT DEPARTMENT_ID_PK PRIMARY KEY (ID); USE Classwork GO ALTER TABLE EMPLOYEE ADD Dept_id INT NOT NULL; ALTER TABLE EMPLOYEE ADD CONSTRAINT employee_deptid_fk FOREIGN KEY (Dept_id) REFERENCES DEPARTMENT(ID); SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM Classwork.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = 'EMPLOYEE'; USE master GO CREATE DATABASE RealEstate USE RealEstate GO CREATE TABLE Proplookup RESULT

5(a) & 5(b)

PropType TINYINT NOT NULL, PropDesc VARCHAR(20) NOT NULL, CONSTRAINT proplookup_proptype_pk PRIMARY KEY (PropType) ); CREATE TABLE Owner ( OwnerId INT NOT NULL, OGiven VARCHAR(25) NOT NULL, OFamname VARCHAR(30) NOT NULL, OAddr1 VARCHAR(50) NOT NULL, OAddr2 VARCHAR(50), OPostcode VARCHAR(5) NOT NULL, OCity VARCHAR(50) NOT NULL, OState VARCHAR(25), OPhone VARCHAR(15), OMobPhone VARCHAR(15), OEmail VARCHAR(30) ); CREATE TABLE Tenant ( TenantNo INT NOT NULL, TFamname VARCHAR(30) NOT NULL, TGiven VARCHAR(25) NOT NULL, WkPhone VARCHAR(15) NOT NULL, MobPhone VARCHAR(15), Employer VARCHAR(100) NOT NULL, Renting VARCHAR(1) NOT NULL DEFAULT 'N', CONSTRAINT owner_tenantno_pk PRIMARY KEY (TenantNo), CONSTRAINT owner_renting_ck CHECK (Renting IN ('Y','N')) ); CREATE TABLE Property ( PropId INT NOT NULL, OAddr1 VARCHAR(50) NOT NULL, OAddr2 VARCHAR(50), OPostcode VARCHAR(5) NOT NULL, OCity VARCHAR(50) NOT NULL, OState VARCHAR(25), OwnerId INT,

PropType TINYINT NOT NULL, Bedrooms INT NOT NULL, MthRental MONEY NOT NULL, Vacant VARCHAR(1) NOT NULL DEFAULT 'Y', TenantNo INT, CONSTRAINT property_propid_pk PRIMARY KEY (PropId), CONSTRAINT property_ownerid_fk FOREIGN KEY (OwnerId) REFERENCES Owner(OwnerId), CONSTRAINT property_proptype_fk FOREIGN KEY (PropType) REFERENCES Proplookup(PropType), CONSTRAINT property_bedrooms_ck CHECK (Bedrooms > 0), CONSTRAINT property_mthrental_ck CHECK (MthRental > 0), CONSTRAINT owner_vacant_ck CHECK (Vacant IN ('Y','N')), CONSTRAINT property_tenantno_fk FOREIGN KEY (TenantNo) REFERENCES Tenant(TenantNo) ); CREATE TABLE Payment ( PaymentId INT NOT NULL, TenantNo INT NOT NULL, PropId INT NOT NULL, PayDate SMALLDATETIME NOT NULL DEFAULT GETDATE(), Amount MONEY NOT NULL, Paidby INT NOT NULL, MthOf INT NOT NULL, CONSTRAINT payment_paymentid_pk PRIMARY KEY (PaymentId), CONSTRAINT payment_tenantno_fk FOREIGN KEY (TenantNo) REFERENCES Tenant(TenantNo), CONSTRAINT payment_propid_fk FOREIGN KEY (PropId) REFERENCES Property(PropId), CONSTRAINT payment_amount_ck CHECK (Amount > 0), CONSTRAINT payment_paidby_ck CHECK (Paidby IN (1,2,3,4)), CONSTRAINT payment_mthof_ck CHECK (MthOf IN (1,2,3,4,5,6,7,8,9,10,11,12)) );

PAGE 72
NO. 1 QUERY CREATE VIEW emp_vu AS SELECT EMPNO, ENAME Employee, DEPTNO FROM EMP; RESULT

EXEC sp_helptext emp_vu;

SELECT Employee, DEPTNO FROM emp_vu;

CREATE VIEW Dept20(Empno, Name, DNo) AS SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE DEPTNO = 20 WITH CHECK OPTION;

UPDATE Dept20 SET DNo = 40 WHERE Name = 'SCOTT';

Msg 550, Level 16, State 1, Line 1 The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint. The statement has been terminated.

CREATE VIEW Salary_vu AS SELECT ENAME, DNAME,SAL, GRADE FROM EMP, DEPT, SALGRADE WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN SALGRADE.LOSAL AND SALGRADE.HISAL;

SELECT ENAME EmployeeName, JOB Job, MNAME ManagerName FROM EMP JOIN (SELECT ENAME MNAME, EMPNO FROM EMP) AS MNG ON EMP.MGR = MNG.EMPNO;

SELECT TOP(2) DNAME 'Department Name', COUNT(EMP.EMPNO) 'Number Of Employee' FROM DEPT JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO GROUP BY DNAME ORDER BY 'Number Of Employee' DESC; CREATE VIEW Movie_SciFi_vu(MovieNumber, MovieTitle, MovieType, Dailycharge, Rating) AS SELECT MvNumb, MvTitle , MvType, DailyCharge, MPAA FROM Movie;

10

INSERT INTO Movie_SciFi_vu VALUES (32, 'Star Wars - The Phantom Menance', 'SCI FI', 3.00, 'PG');

11

SELECT * FROM Movie_SciFi_vu WHERE Rating = 'PG';

12

ALTER VIEW Movie_SciFi_vu AS SELECT MvNumb 'MovieNumber', MvTitle 'MovieTitle', MvType 'MovieType', DailyCharge, MPAA 'Rating', DirName DirectorName FROM Movie LEFT JOIN Director ON Movie.DirNumb = Director.DirNumb;

13

SELECT DirName, MvType, TotalNoms, TotalAwards FROM Director JOIN (SELECT DirNumb, MvType, SUM(Noms) 'TotalNoms', SUM(Awrd) 'TotalAwards' FROM Movie GROUP BY DirNumb, MvType) Total ON Director.DirNumb = Total.DirNumb ORDER BY DirName, MvType;

14

SELECT TOP(10) WITH TIES MvTitle, SUM(Awrd) 'TotalAwards' FROM Movie GROUP BY MvTitle ORDER BY TotalAwards DESC;

PAGE 75
NO. 1 2 QUERY CREATE INDEX emp_job_idx ON EMP(JOB); CREATE INDEX emp_deptno_sal ON EMP(DEPTNO, SAL); CREATE SYNONYM myemp FOR classwork.dbo.dept; RESULT

SELECT DNAME, LOC FROM myemp;

CREATE INDEX movie_mvtype ON MOVIE(MvType);

CREATE SYNONYM mymovie FOR movies.dbo.movie;

SELECT MvTitle, DirName FROM mymovie JOIN Movies.dbo.Director ON mymovie.DirNumb = Director.DirNumb;

PAGE 77
NO. 1 QUERY SELECT NAME, ORDID FROM CUSTOMER JOIN ORD ON CUSTOMER.CUSTID = ORD.CUSTID UNION SELECT 'Watsons Chemist', NULL; RESULT

SELECT MvTitle, StarName FROM Movie JOIN MovStar ON Movie.MvNumb = MovStar.MvNumb JOIN Star ON Star.StarNumb = MovStar.StarNumb UNION SELECT '2001', StarName FROM Star WHERE StarName = 'Dullea, Keir';

SELECT DirName, COUNT(MvTitle) 'No. Of Movies' FROM Director JOIN Movie ON Director.DirNumb = Movie.DirNumb WHERE MvType = 'DRAMA' GROUP BY DirName UNION SELECT DirName, 0 FROM Director LEFT JOIN Movie ON Director.DirNumb = Movie.DirNumb WHERE DirName NOT IN (SELECT DirName FROM Director JOIN Movie ON Director.DirNumb = Movie.DirNumb WHERE MvType = 'DRAMA');

Anda mungkin juga menyukai