Sample SQL CSC 436 – Fall 2003. CREATE SCHEMA TOY_CATALOG AUTHORIZATION LBCD; CREATE TABLE...
-
Upload
laura-ellis -
Category
Documents
-
view
217 -
download
0
Transcript of Sample SQL CSC 436 – Fall 2003. CREATE SCHEMA TOY_CATALOG AUTHORIZATION LBCD; CREATE TABLE...
CREATE SCHEMA TOY_CATALOG AUTHORIZATION LBCD;
CREATE TABLE MANUFACTURER(MAN_ID CHAR(2) NOT NULL,MAN_NAME VARCHAR(25),ADDRESS VARCHAR(40),PHONE VARCHAR(14),SALES_CONTACT VARCHAR(25),PRIMARY KEY (MAN_ID));
CREATE TABLE TOY(TOY_NUM CHAR(3) NOT NULL,NAME VARCHAR(25),MAN_ID CHAR(2) NOT NULL,MSRP DECIMAL(4,2),AGE_GROUP VARCHAR(20),NUM_IN_STOCK INT,SOLD_YTD INT,PRIMARY KEY (TOY_NUM),CONSTRAINT TOYMANFK FOREIGN KEY (MAN_ID)
REFERENCES MANUFACTURER(MAN_ID)ON DELETE CASCADEON UPDATE CASCADE);
SELECT ADDRESS,
LAST_ORDER_DATEFROM CUSTOMERWHERE NAME = ‘KAREN SMITH’
1) Retrieve the address and last order date of the customer
named Karen Smith.
SELECT NAME, MSRPFROM TOY, MANUFACTURERWHERE MAN_NAME = ‘FISCHER PRICE’ AND
TOY.MAN_ID=MANUFACTURER.MAN_ID
2) Retrieve the name and price of all toys made by Fischer-Price.
3) For every undelivered order, list the toy name, the manufacturer name and the customer name
SELECT TOY.NAME, MAN_NAME, CUSTOMER.NAMEFROM ORDER, TOY, MANUFACTURER, CUSTOMERWHERE DELIV IS NULL AND
ORDER.CUST_NUM = CUSTOMER.CUST_NUM AND
ORDER.TOY_NUM = TOY.TOY_NUM AND TOY.MAN_ID = MANUFACTURER.MAN_ID
5) Retrieve the name of every toy and the name of every manufacturer.
SELECT NAME, MAN_NAMEFROM TOY, MANUFACTURER
6) Retrieve all attributes of the TOY relation for which the manufacturer is FP
SELECT *FROM TOYWHERE MAN_ID = ‘FP’
7) List the prices of all toys in the TOY relation.
SELECT MSRPFROM TOY
SELECT DISTINCT MSRPFROM TOY
8) (Using the Company db from the textbook - because our example does not have recursion) Make a list of all project names for projects that involve an employee whose last name is SMITH as a worker or as a manager of the dept that controls the project.
(SELECT PNAMEFROM EMPLOYEE, WORKS_ON, PROJECTWHERE LNAME=SMITH AND SSN=ESSN
AND PNO=PNUMBER)
UNION( SELECT PNAMEFROM EMPLOYEE, DEPARTMENT,
PROJECTWHERE LNAME=SMITH AND SSN=MGRSSN
ANDDNUMBER=DNUM)
9) Reformulate the above query as a nested query
SELECT DISTINCT PNUMBERFROM PROJECTWHERE PNUMBER IN (SELECT
PNUMBERFROM PROJECT, DEPARTMENT,
EMPLOYEEWHERE DNUM=DNUMBER AND
MGRSSN=SSN ANDLNAME=SMITH)
ORPNUMBER IN (SELECT PNO
FROM WORKS_ON, EMPLOYEEWHERE ESSN=SSN AND
LNAME=SMITH)
10) Select the toy numbers of all toys that have the same price and age group as the Farm House.
SELECT DISTINCT TOY_NUMFROM TOYWHERE (MSRP, AGE_GROUP) IN
(SELECT MSRP, AGE_GROUP FROM TOYWHERE NAME = FARM HOUSE)
11) Select the toy names of all toys that cost more than the Farm House.
SELECT NAMEFROM TOYWHERE MSRP > ALL (SELECT MSRP
FROM TOY WHERE NAME=FARM
HOUSE)
12) (from Company db) Retrieve the name of each employee who has a dependent with the same first name and sex as the employee.
SELECT E.FNAME, E.LNAMEFROM EMPLOYEE EWHERE E.SSN IN
(SELECT ESSNFROM DEPENDENTWHERE ESSN=E.SSN AND
E.FNAME=DEPENDENT_NAMEAND SEX=E.SEX)
13) Query 12 can be rewritten using the EXISTS clause
SELECT E.FNAME, E.LNAMEFROM EMPLOYEE EWHERE EXISTS (SELECT *
FROM DEPENDENTWHERE E.SSN=ESSN AND SEX=E.SEX
ANDE.FNAME=DEPENDENT_NAME)
14) List the names of customers who have no outstanding orders.
SELECT NAMEFROM CUSTOMER CWHERE NOT EXISTS (SELECT *
FROM ORDERWHEREC.CUST_NUM=ORDER.CUST_NUM
AND DELIV IS NULL)
15) Retrieve the names of all toys manufactured by FP or FY.
SELECT TOY_NAMEFROM TOYWHERE MAN_ID IN (FP, FY)
16) Retrieve the names of customers who have never ordered a toy from the catalog.
SELECT NAMEFROM CUSTOMERWHERE LAST_ORDER_DATE IS NULL
17) Retrieve the toy names and the customer names for every outstanding order for toys whose names fall in the first half of the alphabet .
SELECT T.NAME AS TOY_NAME, C.NAME AS CUSTOMER_NAME
FROM CUSTOMER AS C, TOY AS T, ORDER AS OWHERE (C.CUST_NUM=O.CUST_NUM) AND (DELIV IS NULL)
AND (T.TOY_NUM=ORDER.TOY_NUM) AND (TOY_NAME < ‘N’)
18) Retrieve the toy number of every toy ordered by KAREN SMITH.
SELECT TOY_NUMFROM (ORDER JOIN CUSTOMER ON
ORDER.CUST_NUM=CUSTOMER.CUST_NUM)
WHERE NAME=‘KAREN SMITH’
20) Find the total number of toys orderd by and the total amount of money spent by customer GEORGE GRANT.
SELECT SUM(MSRP*QUANTITY), SUM(QUANTITY)
FROM TOY AS T, CUSTOMER AS C, ORDER AS O
WHERE O.TOY_NUM=T.TOY_NUM AND O.CUST_NUM=C.CUST_NUM AND
C.NAME=‘GEORGE GRANT’
21) Find the total number of toys order by and the total amount of money spent by each customer.
SELECT CUST_NUM, SUM(MSRP*QUANTITY), SUM(QUANTITY)
FROM TOY AS T, ORDER AS OWHERE O.TOY_NUM=T.TOY_NUM GROUP BY CUST_NUM
22) Find the total number of toys order by and the total amount of money spent by each customer who made at least three orders.
SELECT CUST_NUM, SUM(MSRP*QUANTITY), SUM(QUANTITY)
FROM TOY AS T, ORDER AS OWHERE O.TOY_NUM=T.TOY_NUM GROUP BY CUST_NUMHAVINGCOUNT(*) > 3
23) Retrieve all customers who live in New York state.
SELECT NAMEFROM CUSTOMERWHERE ADDRESS LIKE ‘%NY%
24) Show the new prices if Fischer Price raised their MSRPs by 10%.
SELECT NAME, 1.1*MSRPFROM TOYWHERE MAN_ID=FP