Skip to content

Latest commit

 

History

History
126 lines (76 loc) · 6.63 KB

UnderstandingSQL.md

File metadata and controls

126 lines (76 loc) · 6.63 KB

Онлайн-версия книги.

====================  ТАБЛИЦА 1:  ПРОДАВЦЫ (SALESPEOPLE)  ================  

	----------------------------------------------  
		snum  |   sname   |  city        |   comm
	--------|-----------|--------------|----------
		1001  |  Peel     |  London      |    .12
		1002  |  Serres   |  San Jose    |    .13
		1004  |  Motika   |  London      |    .11
		1007  |  Rifkin   |  Barcelona   |    .15
		1003  |  Axelrod  |  New York    |    .10
	---------------------------------------------



==================  ТАБЛИЦА 2:  ЗАКАЗЧИКИ (CUSTOMERS)  ===============

	----------------------------------------------
		cnum  |  cname     | city    | rating | snum
	-------|------------|---------|--------|------
		2001  |  Hoffman   | London  |   100  | 1001
		2002  |  Giovanni  | Rome    |   200  | 1003
		2003  |  Liu       | SanJose |   200  | 1002
		2004  |  Grass     | Berlin  |   300  | 1002
		2006  |  Clemens   | London  |   100  | 1001
		2008  |  Cisneros  | SanJose |   300  | 1007
		2007  |  Pereira   | Rome    |   100  | 1004
	----------------------------------------------



==================  ТАБЛИЦА 3:   ЗАКАЗЫ (ORDERS)   ==================

	-----------------------------------------------
		onum  |    amt    |    odate    | cnum | snum
	-------|-----------|-------------|------|------
		3001  |    18.69  |  10/03/1990 | 2008 | 1007
		3003  |   767.19  |  10/03/1990 | 2001 | 1001
		3002  |  1900.10  |  10/03/1990 | 2007 | 1004
		3005  |  5160.45  |  10/03/1990 | 2003 | 1002
		3006  |  1098.16  |  10/03/1990 | 2008 | 1007
		3009  |  1713.23  |  10/04/1990 | 2002 | 1003
		3007  |    75.75  |  10/04/1990 | 2004 | 1002
		3008  |  4723.00  |  10/05/1990 | 2006 | 1001
		3010  |  1309.95  |  10/06/1990 | 2004 | 1002
		3011  |  9891.88  |  10/06/1990 | 2006 | 1001
	-----------------------------------------------

Напишите команду SELECT которая бы вывела номер заказа, сумму, и дату для всех строк из таблицы заказов.

SELECT onum, snum, odate FROM ORDERS;

Напишите запрос который вывел бы все строки из таблицы Заказчиков для которых номер продавца = 1001.

SELECT * FROM customers WHERE snum = 1001;  

Напишите запрос который вывел бы таблицу со столбцами в следующем порядке: city, sname, snum, comm.

SELECT city, sname, snum, comm FROM SALESPEOPLE;

Напишите команду SELECT которая вывела бы оценку(rating), сопровождаемую именем каждого заказчика в San Jose.

SELECT rating,cname FROM customers WHERE city = 'San Jose';

Напишите запрос который вывел бы значения snum всех продавцов в текущем порядке из таблицы заказов без каких бы то ни было повторений.

SELECT DISTINCT snum FROM orders;

Напишите запрос который может дать вам все заказы со значениями суммы выше чем $1,000.

SELECT * FROM orders WHERE amt > 1000;

Напишите запрос который может выдать вам поля sname и city для всех продавцов в Лондоне с комиссионными выше .10 .

SELECT sname, city FROM salespeople WHERE city = 'London' AND comm > .10;

Напишите запрос к таблице Заказчиков чей вывод может включить всех заказчиков с оценкой =< 100, если они не находятся в Риме.

SELECT * FROM customers WHERE rating > 100 OR NOT city = 'Rome';

Напишите два запроса которые могли бы вывести все заказы на 3 или 4 Октября 1990

SELECT * FROM orders WHERE odate IN (10/03/1990, 10/04/1990);

Напишите запрос который выберет всех заказчиков обслуживаемых продавцами Peel или Motika. (Подсказка: из наших типовых таблиц, поле snum связывает вторую таблицу с первой).

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

Напишите запрос, который может вывести всех заказчиков чьи имена начинаются с буквы попадающей в диапазон от A до G.

SELECT * FROM customers WHERE cname BETWEEN 'A' AND 'G';

Напишите запрос который выберет всех заказчиков чьи имена начинаются с буквы C.

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

Напишите запрос который выберет все порядки имеющие ненулевые значения или не NULL в поле amt(сумма).

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

Напишите запрос который сосчитал бы суммарное количество заказов на 3 Октября.

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

Напишите запрос который сосчитал бы число различных не-NULL значений поля city в таблице Заказчиков.

SELECT COUNT(DISTINCT city) FROM customers;

Напишите запрос который выбрал бы наименьшую сумму заказа для каждого заказчика.

SELECT cnum, MIN(amt) FROM customers;

Напишите запрос который бы выбирал заказчиков, чьи имена начинаются с буквы G, в алфавитном порядке.

SELECT * FROM customers WHERE cname LIKE 'G%';

Напишите запрос который выбрал бы высшую оценку в каждом городе.

SELECT city MAX (rating) FROM customers;

Напишите запрос который сосчитал бы число заказчиков регистрирующих каждый день свои заказы. (Если продавец имел более одного заказа в данный день, он должен учитываться только один раз.)

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