Solution. create_structure.sql --------------------------------- STEP 1 --------------------------------- -- Campus CREATE TABLE Campus ( CampusID varchar2(5), CampusName varchar2(100), Street varchar2(100), City varchar2(100), State varchar2(100), Zip varchar2(100), Phone varchar2(100), CampusDiscount decimal (2,2) ); ALTER TABLE Campus ADD CONSTRAINT Campus_CampusID_PK PRIMARY KEY (CampusID); -- Position CREATE TABLE Position ( PositionID varchar2(5), Position varchar2(100), YearlyMembershipFee decimal (7,2) ); ALTER TABLE Position ADD CONSTRAINT Position_PositionID_PK PRIMARY KEY (PositionID); -- Members CREATE TABLE Members ( MemberID varchar2(5), LastName varchar2(100), FirstName varchar2(100), CampusAddress varchar2(100), CampusPhone varchar2(100), CampusID varchar2(5), PositionID varchar2(5), ContractDuration INTEGER ); ALTER TABLE Members ADD CONSTRAINT Members_MemberID_PK PRIMARY KEY (MemberID); ALTER TABLE Members ADD CONSTRAINT Members_CampusID_FK FOREIGN KEY (CampusID) REFERENCES Campus; ALTER TABLE Members ADD CONSTRAINT Members_PositionID_FK FOREIGN KEY (PositionID) REFERENCES Position; -- Sequence CREATE SEQUENCE Prices_FoodItemTypeID_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE; -- Prices CREATE TABLE Prices ( FoodItemTypeID varchar2(5) , MealType varchar2(100), MealPrice decimal(7,2) ); ALTER TABLE Prices ADD CONSTRAINT Prices_FoodItemTypeID_PK PRIMARY KEY (FoodItemTypeID); -- Food Items CREATE TABLE FoodItems ( FoodItemID varchar2(5), FoodItemName varchar2(100), FoodItemTypeID varchar2(5) ); ALTER TABLE FoodItems ADD CONSTRAINT FoodItems_FoodItemID_PK PRIMARY KEY (FoodItemID); ALTER TABLE FoodItems ADD CONSTRAINT FoodItems_FoodItemID_FK FOREIGN KEY (FoodItemTypeID) REFERENCES Prices; -- Orders CREATE TABLE Orders ( OrderID varchar2(5), MemberID varchar2(5), OrderDate varchar2(25) ); ALTER TABLE Orders ADD CONSTRAINT Orders_OrderID_PK PRIMARY KEY (OrderID); ALTER TABLE Orders ADD CONSTRAINT Orders_MemberID_FK FOREIGN KEY (MemberID) REFERENCES Members; -- Order Line CREATE TABLE OrderLine ( OrderID varchar2(5), FoodItemsID varchar2(5), Quantity INTEGER ); ALTER TABLE OrderLine ADD CONSTRAINT OrderLine_ORDERFOODIDS_PK PRIMARY KEY (OrderID, FoodItemsID); ALTER TABLE OrderLine ADD CONSTRAINT Orders_OrderID_FK FOREIGN KEY (OrderID) REFERENCES Orders; ALTER TABLE OrderLine ADD CONSTRAINT Orders_FoodItemsID_FK FOREIGN KEY (FoodItemsID) REFERENCES FoodItems(FoodItemID); --------------------------------- STEP 2 --------------------------------- -- Campus INSERT INTO Campus VALUES ('1', 'IUPUI', '425 University Blvd.','Indianapolis', 'IN', '46202', '317-274-4591',.08 ); INSERT INTO Campus VALUES ('2', 'Indiana University', '107 S. Indiana Ave.','Bloomington', 'IN', '47405', '812-855-4848',.07 ); INSERT INTO Campus VALUES ('3', 'Purdue University', '475 Stadium Mall Drive','West Lafayette', 'IN', '47907', '765-494-1776',.06 ); -- Position INSERT INTO Position VALUES ('1', 'Lecturer', 1050.50); INSERT INTO Position VALUES ('2', 'Associate Professor', 900.50); INSERT INTO Position VALUES ('3', 'Assistant Professor', 875.50); INSERT INTO Position VALUES ('4', 'Professor', 700.75); INSERT INTO Position VALUES ('5', 'Full Professor', 500.50); -- Members INSERT INTO Members VALUES ('1', 'Ellen', 'Monk', '009 Purnell', '812-123-1234', '2', '5', 12); INSERT INTO Members VALUES ('2', 'Joe', 'Brady', '008 Statford Hall', '765-234-2345', '3', '2', 10); INSERT INTO Members VALUES ('3', 'Dave', 'Davidson', '007 Purnell', '812-345-3456', '2', '3', 10); INSERT INTO Members VALUES ('4', 'Sebastian', 'Cole', '210 Rutherford Hall', '765-234-2345', '3', '5', 10); INSERT INTO Members VALUES ('5', 'Michael', 'Doo', '66C Peobody', '812-548-8956', '2', '1', 10); INSERT INTO Members VALUES ('6', 'Jerome', 'Clark', 'SL 220', '317-274-9766', '1', '1', 12); INSERT INTO Members VALUES ('7', 'Bob', 'House', 'ET 329', '317-278-9098', '1', '4', 10); INSERT INTO Members VALUES ('8', 'Bridget', 'Stanley', 'SI 234', '317-274-5678', '1', '1', 12); INSERT INTO Members VALUES ('9', 'Bradley', 'Wilson', '334 Statford Hall', '765-258-2567', '3', '2', 10); -- Prices INSERT INTO Prices VALUES (Prices_FoodItemTypeID_SEQ.NEXTVAL, 'Beer/Wine', 5.50); INSERT INTO Prices VALUES (Prices_FoodItemTypeID_SEQ.NEXTVAL, 'Dessert', 2.75); INSERT INTO Prices VALUES (Prices_FoodItemTypeID_SEQ.NEXTVAL, 'Dinner', 15.50); INSERT INTO Prices VALUES (Prices_FoodItemTypeID_SEQ.NEXTVAL, 'Soft Drink', 2.50); INSERT INTO Prices VALUES (Prices_FoodItemTypeID_SEQ.NEXTVAL, 'Lunch', 7.25); -- FoodItems INSERT INTO FoodItems VALUES ('10001', 'Lager', '1'); INSERT INTO FoodItems VALUES ('10002', 'Red Wine', '1'); INSERT INTO FoodItems VALUES ('10003', 'White Wine', '1'); INSERT INTO FoodItems VALUES ('10004', 'Coke', '4'); INSERT INTO FoodItems VALUES ('10005', 'Coffee', '4'); INSERT INTO FoodItems VALUES ('10006', 'Chicken a la King', '3'); INSERT INTO FoodItems VALUES ('10007', 'Rib Steak', '3'); INSERT INTO FoodItems VALUES ('10008', 'Fish and Chips', '3'); INSERT INTO FoodItems VALUES ('10009', 'Veggie Delight', '3'); INSERT INTO FoodItems VALUES ('10010', 'Chocolate Mousse', '2'); INSERT INTO FoodItems VALUES ('10011', 'Carrot Cake', '2'); INSERT INTO FoodItems VALUES ('10012', 'Fruit Cup', '2'); INSERT INTO FoodItems VALUES ('10013', 'Fish and Chips', '5'); INSERT INTO FoodItems VALUES ('10014', 'Angus and Chips', '5'); INSERT INTO FoodItems VALUES ('10015', 'Cobb Salad', '5'); -- Orders INSERT INTO Orders VALUES ( '1', '9', 'March 5, 2005' ); INSERT INTO Orders VALUES ( '2', '8', 'March 5, 2005' ); INSERT INTO Orders VALUES ( '3', '7', 'March 5, 2005' ); INSERT INTO Orders VALUES ( '4', '6', 'March 7, 2005' ); INSERT INTO Orders VALUES ( '5', '5', 'March 7, 2005' ); INSERT INTO Orders VALUES ( '6', '4', 'March 10, 2005' ); INSERT INTO Orders VALUES ( '7', '3', 'March 11, 2005' ); INSERT INTO Orders VALUES ( '8', '2', 'March 12, 2005' ); INSERT INTO Orders VALUES ( '9', '1', 'March 13, 2005' ); -- OrderLine INSERT INTO OrderLine VALUES ( '1', '10001', 1 ); INSERT INTO OrderLine VALUES ( '1', '10006', 1 ); INSERT INTO OrderLine VALUES ( '1', '10012', 1 ); INSERT INTO OrderLine VALUES ( '2', '10004', 2 ); INSERT INTO OrderLine VALUES ( '2', '10013', 1 ); INSERT INTO OrderLine VALUES ( '2', '10014', 1 ); INSERT INTO OrderLine VALUES ( '3', '10005', 1 ); INSERT INTO OrderLine VALUES ( '3', '10011', 1 ); INSERT INTO OrderLine VALUES ( '4', '10005', 2 ); INSERT INTO OrderLine VALUES ( '4', '10004', 2 ); INSERT INTO OrderLine VALUES ( '4', '10006', 1 ); INSERT INTO OrderLine VALUES ( '4', '10007', 1 ); INSERT INTO OrderLine VALUES ( '4', '10010', 2 ); INSERT INTO OrderLine VALUES ( '5', '10003', 1 ); INSERT INTO OrderLine VALUES ( '6', '10002', 2 ); INSERT INTO OrderLine VALUES ( '7', '10005', 2 ); INSERT INTO OrderLine VALUES ( '8', '10005', 1 ); INSERT INTO OrderLine VALUES ( '8', '10011', 1 ); INSERT INTO OrderLine VALUES ( '9', '10001', 1 ); ------------------------- Create View For the Report: IFC_Report ----------------------- CREATE VIEW IFC_Report AS SELECT Orders.OrderID, OrderDate, FirstName || ' ' || LastName MemberName, CampusName, FoodItemName, MealType, MealPrice, Quantity, (MealPrice * Quantity) Total FROM FoodItems, Orders, OrderLine, Members, Campus, Prices WHERE FoodItems.FoodItemID = OrderLine.FoodItemsID AND OrderLine.OrderID = Orders.OrderID AND Orders.MemberID = Members.MemberID AND Members.CampusID = Campus.CampusID AND Prices.FoodItemTypeID = FoodItems.FoodItemTypeID ORDER BY Orders.OrderID DESC; Queries.sql --------------------------------- STEP 3 --------------------------------- -- Query1a PROMPT All records from Campus table SELECT * FROM Campus; -- Query1b PROMPT All records from Position table SELECT * FROM Position; -- Query1c PROMPT All records from Members table SELECT * FROM Members; -- Query1d PROMPT All records from Prices table SELECT * FROM Prices; -- Query1e PROMPT All records from FoodItems table SELECT * FROM FoodItems; -- Query1f PROMPT All records from Orders table SELECT * FROM Orders; -- Query1g PROMPT All records from OrderLine table SELECT * FROM OrderLine; -- Query2a PROMPT All constraints in the database SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS; -- Query3a PROMPT All table names in the database SELECT TABLE_NAME FROM USER_TABLES; -- Query4a PROMPT Sequence name in the database SELECT SEQUENCE_NAME FROM USER_SEQUENCES; -- Query5a PROMPT Columns and Datatypes for Campus table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'CAMPUS'; -- Query5b PROMPT Columns and Datatypes for Position table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'POSITION'; -- Query5c PROMPT Columns and Datatypes for Members table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'MEMBERS'; -- Query5d PROMPT Columns and Datatypes for Prices table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'PRICES'; -- Query5e PROMPT Columns and Datatypes for FoodItems table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'FOODITEMS'; -- Query5f PROMPT Columns and Datatypes for Orders table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'ORDERS'; -- Query5g PROMPT Columns and Datatypes for OrderLine table SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'ORDERLINE'; -- Query6a PROMPT Listing of all Faculty Members SELECT FirstName, LastName, Position, CampusName, (YearlyMembershipFee / 12 ) Monthly_Dues FROM Members, Position, Campus WHERE Members.PositionID = Position.PositionID AND Members.CampusID = Campus.CampusID ORDER BY CampusName DESC, LastName ASC; -- Query7a PROMPT Listing of all food items SELECT FoodItemName, MealType, MealPrice FROM FoodItems, Prices WHERE FoodItems.FoodItemTypeID = Prices.FoodItemTypeID AND MealType NOT LIKE '%Beer%' AND MealType NOT LIKE '%Wine%' ORDER BY MealPrice ASC; -- Query8a SELECT Orders.OrderID, OrderDate, FirstName || ' ' || LastName MemberName, CampusName, FoodItemName, MealType, MealPrice, Quantity, (MealPrice * Quantity) Total FROM FoodItems, Orders, OrderLine, Members, Campus, Prices WHERE FoodItems.FoodItemID = OrderLine.FoodItemsID AND OrderLine.OrderID = Orders.OrderID AND Orders.MemberID = Members.MemberID AND Members.CampusID = Campus.CampusID AND Prices.FoodItemTypeID = FoodItems.FoodItemTypeID ORDER BY Orders.OrderID DESC; |
Social: