Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М. ГРУБЕР_SQL.doc
Скачиваний:
22
Добавлен:
18.04.2019
Размер:
1.4 Mб
Скачать

Глава 5

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;

SELECT * FROM Customers WHERE snum IN (1001,1004);

SELECT * FROM Customers WHERE cname BETWEEN 'A' AND 'H';

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

SELECT * FROM Customers WHERE cname LIKE 'C%';

SELECT * FROM Orders WHERE amt <> 0 AND (amt IS NOT NULL);

или

SELECT * FROM Orders WHERE NOT (amt = 0 OR amt IS NULL);

Глава 6

SELECT COUNT(*) FROM Orders WHERE odate = 10/03/1990;

SELECT COUNT (DISTINCT city) FROM Customers;

SELECT cnum, MIN (amt) FROM Orders GROUP BY cnum;

SELECT MIN (cname) FROM Customers WHERE cname LIKE 'G%';

SELECT city, MAX (rating) FROM Customers GROUP BY city;

SELECT odate, count (DISTINCT snum) FROM Orders GROUP BY odate;

Глава 7

SELECT onum, snum, amt * .12 FROM Orders;

SELECT 'For the city ', city, ', the highest rating is ', MAX (rating) FROM Customers GROUP BY city;

SELECT rating, cname, cnum FROM Customers ORDER BY rating DESC;

SELECT odate, SUM (amt) FROM Orders GROUP BY odate ORDER BY 2 DESC;

Глава 8

SELECT onum, cname FROM Orders, Customers WHERE Customers.cnum = Orders.cnum;

SELECT onum, cname, sname FROM Orders, Customers, Salespeople WHERE Customers.cnum = Orders.cnum AND Salespeople.snum = Orders.snum;

SELECT cname, sname, comm FROM Salespeople, Customers WHERE Salespeople.snum = Customers.snum AND comm * .12;

SELECT onum, comm * amt FROM Salespeople, Orders, Customers WHERE rating > 100 AND Orders.cnum = Customers.cnum AND Orders.snum = Salespeople.snum;

Глава 9

SELECT first.sname, second.sname FROM Salespeople first, Salespeople second WHERE first.city = second.city AND first.sname < second.sname;

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

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;

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

SELECT a.cname, a.city FROM Customers a, Customers b WHERE a.rating = b.rating AND b.cnum = 2001;

Глава 10

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');

SELECT DISTINCT cname, rating FROM Customers, Orders WHERE amt > (SELECT AVG (amt) FROM Orders) AND Orders.cnum = Customers.cnum;

SELECT snum, SUM (amt) FROM Orders GROUP BY snum HAVING SUM (amt) > (SELECT MAX (amt) FROM Orders);