Upload
sanwaiphyo
View
43
Download
4
Embed Size (px)
DESCRIPTION
SQL Skill Training V2
Citation preview
SQL Skill Training
Part 1
Subject SQL Skill Training
Time Allowed 2 Days
Prepared Date 10 Jul 2014
Prepared By Winn Aung Soe
Revision 1
Revised By Winn Aung Soe
Revised Date 14 Jan 2015
1. Create a database named JSE_Test. Place the data file and log file in C:\.
2. Create a table named Supplier under JSE_Test database. Use the following specification.
Column Name Data Type Allowed Null Default Value
S# CHAR(5) NOT NULL
SNAME VACHAR(50) NOT NULL
STATUS INT NOT NULL 0
CITY VARCHAR(150) NOT NULL
3. Create a table named Part under JSE_Test database. Use the following specification.
Column Name Data Type Allowed Null Default Value
P# CHAR(5) NOT NULL
PNAME VARCHAR(50) NOT NULL
COLOR VARCHAR(20) NOT NULL
WEIGHT DECIMAL(18,1) NOT NULL 0
CITY VARCHAR(150) NOT NULL
4. Create a table named Project under JSE_Test database. Use the following specification.
Column Name Data Type Allowed Null Default Value
J# CHAR(5) NOT NULL
JNAME VARCHAR(50) NOT NULL
CITY VARCHAR(150) NOT NULL
5. Create a table named Shipment under JSE_Test database. Use the following specification.
Column Name Data Type Allowed Null Default Value
S# CHAR(5) NOT NULL
P# CHAR(5) NOT NULL
J# CHAR(5) NOT NULL
QTY INT NOT NULL 0
6. Fill the data into each table as shown below.
Supplier
S# SNAME STATUS CITY
S1 Smith 20 London
S2 Jones 10 Paris
S3 Blake 30 Paris
S4 Clark 20 London
S5 Adams 30 Athens
Part
P# PNAME COLOR WEIGHT CITY
P1 Nut Red 12.0 London
P2 Bolt Green 17.0 Paris
P3 Screw Blue 17.0 Oslo
P4 Screw Red 14.0 London
P5 Cam Blue 12.0 Paris
P6 Cog Red 19.0 London
Project
J# JNAME CITY
J1 Sorter Paris
J2 Display Rome
J3 OCR Athens
J4 Console Athens
J5 RAID London
J6 EDS Oslo
J7 Tape London
Shipment
S# P# J# QTY
S1 P1 J1 200
S1 P1 J4 700
S2 P3 J1 400
S2 P3 J2 200
S2 P3 J3 200
S2 P3 J4 500
S2 P3 J5 600
S2 P3 J6 400
S2 P3 J7 800
S2 P5 J2 100
S3 P3 J1 200
S3 P4 J1 500
S4 P6 J3 300
S4 P6 J7 300
S4 P6 J2 200
S5 P2 J4 100
S5 P5 J5 500
S5 P5 J7 100
S5 P6 J2 200
S5 P1 J4 100
S5 P3 J4 200
S5 P4 J4 800
S5 P5 J4 400
S5 P6 J4 500
7. Backup JSE_Test database and name the backup file _DDMMYYYY_HHMM.BAK.
8. Restore the backup taken in step (7) into a new database named JSE_Test_SPJ. Place the data file
and log file of the new database in C:\.
9. Write SQL statements for the following queries.
1. Get full details of all projects.
2. Get full details of all projects in London.
3. Get supplier numbers for suppliers who supply project J1.
4. Get all shipments where the quantity is in the range 300 to 750 inclusive.
5. Get all part-color/part-city pairs. Note: Here and subsequently, the term all means all
currently represented in the database, not all possible
6. Get all supplier-number/part-number/project-number triples such that the indicated
supplier, part, and project are all collocated. (i.e., all in the same city).
7. Get all supplier-number/part-number/project-number triples such that the indicated
supplier, part, and project are not all collocated. (i.e., all in the same city).
8. Get all supplier-number/part-number/project-number triples such that no two of the
indicated supplier, part, and project are collocated.
9. Get full details for parts supplied by a supplier in London.
10. Get part numbers for parts supplied by a supplier in London to a project in London.
11. Get all pairs of city names such that a supplier in the first city supplies a project in the
second city.
12. Get part numbers for parts supplied to any project by a supplier in the same city as that
project.
13. Get project numbers for projects supplied by at least one supplier not in the same city.
14. Get all pairs of part numbers such that some supplier supplies both the indicated parts.
15. Get the total number of projects supplied by supplier S1.
16. Get the total quantity of part P1 supplied by supplier S1.
17. For each part being supplied to a project, get the part number, the project number, and the
corresponding total quantity.
18. Get part numbers of parts supplied to some project in an average quantity of more than
350.
19. Get project names for projects supplied by supplier S1.
20. Get colors of parts supplied by supplier S1.
21. Get part numbers for parts supplied to any project in London.
22. Get project numbers for projects using at least one part available from supplier S1.
23. Get supplier numbers for suppliers supplying at least one part supplied by at least one
supplier who supplies at least one red part.
24. Get supplier numbers for suppliers with a status lower than that of supplier S1.
25. Get project numbers for projects whose city is first in the alphabetic list of such cities.
26. Get project numbers for projects supplied with part P1 in an average quantity greater than
the greatest quantity in which any part is supplied to project J1.
27. Get supplier numbers for suppliers supplying some project with part P1 in a quantity
greater than the average shipment quantity of Part P1 for that project.
28. Get project numbers for projects not supplied with any red part by any London supplier.
29. Get project numbers for projects supplied entirely by supplier S1.
30. Get part numbers for parts supplied to all projects in London.
31. Get supplier numbers for suppliers who supply the same part to all projects.
32. Get project numbers for projects supplied with at least all parts available from supplier
S1.
33. Get all cities in which at least one supplier, part or project is located.
34. Get part numbers for parts that are supplied either by a London supplier or to a London
project.
35. Get supplier number/part-number pairs such that the indicated supplier does not supply
the indicated part.
36. Get all pairs of supplier numbers, Sx and Sy say, such that Sx and Sy supply exactly the
same set of parts each. Note: For simplicity, you might want to use the original suppliers-
and-parts data-base for this exercise, instead of the expanded suppliers-parts-projects
database.
37. Get supplier numbers of those suppliers who supply all red parts.
38. Get part numbers of parts supplied by all London suppliers.
39. Get part numbers of parts supplied by all Paris suppliers who supplies at least one red part.
40. Get project number for projects which are supplied by All London supplier or supplied with at
least all red parts.