Concepts of Database Management, Sixth Edition Solutions 3-1
Note: Answers to odd-numbered review questions are found in Appendix D of the textbook.
1. To create a table in SQL, use a CREATE TABLE command. The word TABLE is followed by the name of the table to be created and then by the names and data types of the columns (fields) that make up the table. The data types you can use are INTEGER (large negative and positive whole numbers), SMALLINT (whole numbers from -32,768 to 32,767), DECIMAL (numbers that have a decimal part), CHAR (alphanumeric strings), and DATE (date values).
2.
3.
The WHERE clause lets you specify a condition. Only those rows on which a condition is satisfied will be included in the query results. The comparison operators you can include in a WHERE clause are: = (equal to),
> (greater than), < (less than), >= (greater than or equal to), <= (less than or equal to), and < > (not equal to).
A compound condition is formed by connecting two or more simple conditions using one or both of the following operators: AND and OR. You can also precede a single condition with the NOT operator to negate a condition. When you connect simple conditions using the AND operator, all the simple conditions must be true for the compound condition to be true. When you connect simple conditions using the OR operator, the compound condition will be true whenever any of the simple conditions are true.
4.
5.
A computed field is one whose values are calculated from other fields. To use a computed field in an SQL query, type the desired calculation. To assign a name to a computed field, follow the calculation with the word
AS and then the desired name.
To use the LIKE or IN operators in an SQL query, include them in the WHERE clause. A character string containing one or more wildcards is included after the word LIKE. The word IN is followed by a list of values.
6.
7.
8.
9.
10.
11.
12.
To sort data, use the ORDER BY clause, which consists of the words ORDER BY followed by the sort key. If there is more than one sort key, the major key is listed first. To sort data in descending order, follow the sort key with the word DESC.
Use an SQL built-in function (COUNT, SUM, AVG, MAX, and MIN) by including it in the SELECT clause followed by the name of the field to which it applies.
A subquery is a query that is included in another query. The subquery is evaluated before the query that contains it.
To group data in SQL, include the words GROUP BY followed by the field or fields on which the data is to be grouped in the query results. If you group data, you only can include the fields on which you are grouping or statistics in the SELECT clause.
To join tables in SQL, use a SELECT command that lists two or more tables to be joined in the FROM clause, and then specify the matching columns in the WHERE clause.
To qualify the name of a field in an SQL query, precede the field with the name of the table to which it belongs, followed by a period. It is necessary to qualify a field if the field name occurs in more than one of the tables listed in the FROM clause.
To take the union of two tables, create a SQL query for each table and then place the word UNION between the queries. The two tables involved in a union must have the same structure, or be union compatible; in other words, they must have the same number of fields and their corresponding fields must have the same data types.
Concepts of Database Management, Sixth Edition Solutions 3-2
13.
14.
The update commands in SQL are INSERT, which inserts new rows in a table; UPDATE, which changes all the rows in a table that satisfy some condition; and DELETE, which deletes all the rows in a table that satisfy some condition.
Create a query to select the columns from the desired table. After the SELECT clause, include an INTO clause followed by the name of the table to be created.
Note: See the Instructor’s Resource Kit on CD-ROM for a copy of the Premiere Products database that contains the solutions to these exercises. It also includes the SQL script files necessary to create the Premiere Products queries in
MySQL or Oracle.
1.
SELECT CustomerNum, CustomerName
FROM Customer;
2.
SELECT *
FROM Part;
3.
SELECT CustomerNum, CustomerName
FROM Customer
WHERE RepNum='35';
4.
SELECT CustomerNum, CustomerName
FROM Customer
WHERE RepNum='35'
AND CreditLimit=10000;
5.
SELECT CustomerNum, CustomerName
FROM Customer
WHERE RepNum='35'
OR CreditLimit=10000;
6.
SELECT OrderNum, OrderDate, Orders.CustomerNum, CustomerName
FROM Orders, Customer
WHERE Orders.CustomerNum=Customer.CustomerNum;
7.
SELECT CustomerNum, CustomerName
FROM Customer, Rep
WHERE Customer.RepNum=Rep.RepNum
AND LastName='Perez'
AND FirstName='Juan';
8.
SELECT COUNT(*)
FROM Orders
WHERE OrderDate='20-OCT-2010';
Access:
SELECT COUNT(*)
FROM Orders
WHERE OrderDate=#10/20/2010#;
Concepts of Database Management, Sixth Edition Solutions 3-3
9.
SELECT SUM(Balance)
FROM Customer
WHERE RepNum='35';
10.
SELECT PartNum, Description, OnHand * Price
FROM Part
WHERE Class='HW';
11.
SELECT *
FROM Part
ORDER BY Description;
12.
SELECT *
FROM Part
ORDER BY Class, PartNum;
13.
SELECT Class, SUM(OnHand)
FROM Part
GROUP BY Class;
14.
SELECT PartNum, Description, OnHand, Warehouse, Price
INTO SportingGoods
FROM Part
WHERE Class='SG';
15.
UPDATE SportingGoods
SET Description='Fitness Gym'
WHERE PartNum='BV06';
16.
DELETE
FROM SportingGoods
WHERE Price>1000;
Note: See the Instructor’s Resource Kit on CD-ROM for a copy of the Henry Books database that contains the solutions to these exercises. It also includes the SQL script files necessary to create the Henry Books queries in MySQL or
Oracle.
1.
SELECT AuthorNum, AuthorLast
FROM Author;
2.
SELECT *
FROM Branch;
3.
SELECT PublisherName
FROM Publisher
WHERE City='Boston';
Concepts of Database Management, Sixth Edition
4.
SELECT PublisherName
FROM Publisher
WHERE NOT City='Boston';
5.
SELECT BranchName
FROM Branch
WHERE NumEmployees>=9;
6.
SELECT BookCode, Title
FROM Book
WHERE Type='SFI';
7.
SELECT BookCode, Title
FROM Book
WHERE Type='SFI'
AND Paperback; or
SELECT BookCode, Title
FROM Book
WHERE Type='SFI'
AND Paperback=Yes; or
SELECT BookCode, Title
FROM Book
WHERE Type='SFI'
AND Paperback=True;
8.
SELECT BookCode, Title
FROM Book
WHERE Type='SFI'
OR PublisherCode='PE';
9.
SELECT BookCode, Title, Price
FROM Book
WHERE Price BETWEEN 5 and 10;
10.
SELECT BookCode, Title
FROM Book
WHERE Type='FIC'
AND Price<10;
11.
SELECT BookCode, Title, .85 * Price AS DiscountedPrice
FROM Book;
12.
SELECT BookCode, Title
FROM Book
WHERE Type IN ('SFI', 'HOR', 'ART');
13.
SELECT BookCode, Title, PublisherCode
FROM Book
Solutions 3-4
Concepts of Database Management, Sixth Edition Solutions 3-5
ORDER BY PublisherCode, Title;
14.
SELECT COUNT(*)
FROM BOOK
WHERE Type='SFI';
15.
SELECT Type, AVG(Price)
FROM Book
GROUP BY Type
ORDER BY Type;
16.
SELECT BookCode, Title, Book.PublisherCode, PublisherName
FROM Book, Publisher
WHERE Book.PublisherCode=Publisher.PublisherCode;
17.
SELECT Title, Price
FROM Book, Publisher
WHERE Book.PublisherCode=Publisher.PublisherCode
AND PublisherName='Taunton Press';
18.
SELECT Title, BookCode
FROM Book, Publisher
WHERE Book.PublisherCode=Publisher.PublisherCode
AND PublisherName='Putnam Publishing Group'
AND Price>15;
19.
SELECT BookCode, Title, PublisherCode, Price
INTO Fiction
FROM Book
WHERE Type='FIC';
20.
UPDATE Fiction
SET Price=14.50
WHERE Price=14.00;
21.
DELETE
FROM Fiction
WHERE PublisherCode=′VB′;
Note: See the Instructor’s Resource Kit on CD-ROM for a copy of the Alexamara database that contains the solutions to these exercises. It also includes the SQL script files necessary to create the Henry Books queries in MySQL or Oracle.
1.
SELECT OwnerNum, LastName, FirstName
FROM Owner;
2.
SELECT *
FROM Marina;
3.
SELECT LastName, FirstName
Concepts of Database Management, Sixth Edition Solutions 3-6
FROM Owner
WHERE City = 'Bowton';
4.
SELECT LastName, FirstName
FROM Owner
WHERE City <> 'Bowton';
5.
SELECT MarinaNum, SlipNum
FROM MarinaSlip
WHERE Length <= 30;
6.
SELECT MarinaNum, SlipNum
FROM MarinaSlip
WHERE BoatType='Dolphin 28';
7.
SELECT SlipNum
FROM MarinaSlip
WHERE MarinaNum = '1'
AND BoatType = 'Dolphin 28';
8.
SELECT BoatName
FROM MarinaSlip
WHERE Length >= 25
AND Length <= 30;
9.
SELECT SlipNum
FROM MarinaSlip
WHERE MarinaNum = '1'
AND RentalFee < 3000;
10. .
SELECT SlipId, CategoryNum, EstHours, 60 * EstHours AS EstimatedCost
FROM ServiceRequest;
11.
SELECT MarinaNum, SlipNum
FROM MarinaSlip
WHERE BoatType IN ('Sprite 4000', 'Sprite 3000', 'Ray 4025');
12.
SELECT MarinaNum, SlipNum, BoatName
FROM MarinaSlip
ORDER BY MarinaNum, BoatName;
13.
SELECT COUNT(*)
FROM MarinaSlip
WHERE BoatType='Dolphin 28';
14.
SELECT SUM(RentalFee)
FROM MarinaSlip
GROUP BY Length;
15.
SELECT MarinaNum, SlipNum, BoatName, Owner.OwnerNum, LastName, FirstName
Concepts of Database Management, Sixth Edition Solutions 3-7
FROM MarinaSlip, Owner
WHERE MarinaSlip.OwnerNum=Owner.OwnerNum;
16.
SELECT SlipId, Description, Status
FROM ServiceRequest, ServiceCategory
WHERE ServiceRequest.CategoryNum = ServiceCategory.CategoryNum
AND CategoryDescription='Routine engine maintenance';
17.
SELECT ServiceRequest.SlipID, MarinaNum, SlipNum, EstHours, SpentHours,
Owner.OwnerNum, LastName
FROM ServiceRequest, MarinaSlip, ServiceCategory, Owner
WHERE ServiceRequest.CategoryNum = ServiceCategory.CategoryNum
AND ServiceRequest.SlipID = MarinaSlip.SlipID
AND MarinaSlip.OwnerNum = Owner.OwnerNum
AND CategoryDescription='Routine engine maintenance';
18.
SELECT MarinaNum, SlipNum, RentalFee, BoatName, OwnerNum
INTO LargeSlip
FROM MarinaSlip
WHERE Length=40;
19.
UPDATE LargeSlip
SET RentalFee=3900
WHERE RentalFee=3800;
20.
DELETE
FROM LargeSlip
WHERE RentalFee=3600;