Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / БД2012 / Understanding.SQL.doc
Скачиваний:
281
Добавлен:
28.03.2015
Размер:
1.75 Mб
Скачать

Глава 5

1. SELECT *

FROM Orders

WHERE odate IN (10/03/1990,10/04/1990);

и

SELECT *

FROM Orders

WHERE odate BETWEEN 10/03/1990 AND 10/04,1990;

2. SELECT *

FROM Customers

WHERE snum IN (1001,1004);

3. SELECT *

FROM Customers

WHERE cname BETWEEN 'A' AND 'H';

ПРИМЕЧАНИЕ: ВЫ ASCII базовой системе Hoffman не будет выве ден из-за конечных пробелов после H. По той же самой причине вторая граница не может быть G, поскольку она не выведет имена Giovanni и Grass. G может использоваться в сопровождении с Z, так чтобы следовать за другими символами в алфавитном порядке, а не предшествовать им, как это делают пробелы.

4. SELECT *

FROM Customers

WHERE cname LIKE 'C%';

5. SELECT *

FROM Orders

WHERE amt < > O

AND (amt IS NOT NULL);

или

SELECT *

FROM Orders

WHERE NOT (amt = O

OR amt IS NULL);

Глава 6

1. SELECT COUNT(*)

FROM Orders

WHERE odate = 10/03/1990;

2. SELECT COUNT (DISTINCT city)

FROM Customers;

3. SELECT cnum, MIN (amt)

FROM Orders

GROUP BY cnum;

4 SELECT MIN (cname)

FROM Customers

WHERE cname LIKE 'G%';

5. SELECT city,

MAX (rating)

FROM Customers

GROUP BY city;

6 SELECT odate, count (DISTINCT snum

FROM Orders

GROUP BY odate;

Глава 7

1. SELECT onum, snum, amt * .12

FROM Orders;

2. SELECT 'For the city ', city, ', the highest rating is ', ",

MAX (rating)

FROM Customers

GROUP BY city;

3 SELECT rating, cname, cnum

FROM Customers

ORDER BY rating DESC;

4. SELECT odate, SUM (amt)

FROM Orders

GROUP BY odate

ORDER BY 2 DESC;

Глава 8

1. SELECT onum, cname

FROM Orders, Customers

WHERE Customers.cnum = Orders.cnum;

2. SELECT onum, cname, sname

FROM Orders, Customers, Salespeople

WHERE Customers.cnum = Orders.cnum

AND Salespeople.snum = Orders.snum;

3. SELECT cname, sname, comm

FROM Salespeople, Customers

WHERE Salespeople.snum = Customers.snum

AND comm * .12;

4. SELECT onum, comm * amt

FROM Salespeople, Orders, Customers

WHERE rating > 100

AND Orders.cnum = Customers.cnum

AND Orders.snum = Salespeople.snum;

Глава 9

1. SELECT first.sname, second.sname

FROM Salespeople first, Salespeople second

WHERE first.city = second.city

AND first.sname < second.sname;

Псевдонимам нет необходимости иметь именно такие имена.

2. SELECT cname, first.onum, second.onum

FROM Orders first, Orders second, Customers

WHERE first.cnum = second.cnum

AND first.cnum = Customers.cnum

AND first.onum < second.onum;

Ваш вывод может иметь некоторые отличи, но в вашем ответе все логические компоненты должны быть такими же.

3. SELECT a.cname, a.city

FROM Customers a, Customers b

WHERE a.rating = b.rating

AND b.cnum = 2001;

Глава 10

1. SELECT *

FROM Orders

WHERE cnum =

(SELECT cnum

FROM Customers

WHERE cname = 'Cisneros');

или

SELECT *

FROM Orders

WHERE cnum IN

(SELECT cnum

FROM Customers

WHERE cname = 'Cisneros');

2. SELECT DISTINCT cname, rating

FROM Customers, Orders

WHERE amt >

(SELECT AVG (amt)

FROM Orders)

AND Orders.cnum = Customers.cnum;

3 SELECT snum, SUM (amt)

FROM Orders

GROUP BY snum

HAVING SUM (amt) >

(SELECT MAX (amt)

FROM Orders);

Соседние файлы в папке БД2012