• Запросы SQL (по книге Мартина Грабера)

Цель контрольной работы – закрепление навыков составления SQL запросов к базам данных (БД).

Любая система управления базой данных (СУБД) поддерживает взаимодействие администратора с содержимым БД на базе языка SQL. Хорошее знание языка SQL и навыки его использования являются обязательными для любого специалиста в области информационных технологий.

Контрольная работа состоит из 14 заданий (все четные номера заданий, для студентов с четными номерами зачетной книжки, а все нечетные номера – для студентов с нечетными номерами зачетной книжки). Рекомендуется проверить правильность выполнения заданий практически. Используйте доступную Вам СУБД (например, MS Access, MySQL и другие).

На данной странице Вы можете купить решение четного варианта (все четные вопросы). База данных реализована в MS Access (включена в архив с решением).

Ниже представлена БД, состоящая из трех таблиц, включающих данные о продавцах, покупателях и заказах – этот пример взят из замечательной книги Мартина Грабера [1].

Поля таблиц имеют следующее назначение:

  • snum – первичный ключ таблицы продавцов
  • sname – фамилия продавца
  • city – город, в котором работает продавец
  • comm – комиссионные, взимаемые продавцом
  • cnum – первичный ключ таблицы покупателей
  • cname – фамилия покупателя
  • city – город, в котором живет покупатель
  • rating – рейтинг покупателя
  • onum – первичный ключ таблицы заказов
  • amt – сумма заказа
  • odate – дата выполнения заказа

Создайте в ней приведенные ниже таблицы и выполните написанные Вами запросы. Убедитесь, что результат запроса соответствует заданию.

Таблица 1. Salespeople (Продавцы)

Snum

Sname

City

Comm

1001

Peel

London

0.12

1002

Serres

San Jose

0.13

1004

Motika

London

0.11

1007

Rifkin

Barcelona

0.15

1003

Alexrod

New York

0.10

 

Таблица 2. Customers (Покупатели)

Cnum

Cname

City

Rating

Snum

2001

Hoffman

London

100

1001

2002

Giovanni

Rome

200

1003

2003

Liu

San Jose

200

1002

2004

Grass

Berlin

300

1002

2006

Clemens

London

100

1001

2008

Cisneros

San Jose

300

1007

2007

Pirera

Rome

100

1004

 

Таблица 3. Orders (Заказы)

Onum

Amt

Odate

Cnum

Snum

3001

18.69

10/03/2008

2008

1007

3003

767.19

10/03/2008

2001

1001

3002

1900.10

10/03/2008

2007

1004

3005

5160.45

10/03/2008

2003

1002

3006

1098.16

10/03/2008

2008

1007

3009

1713.23

10/04/2008

2002

1003

3007

75.75

10/04/2008

2004

1002

3008

4723.00

10/05/2008

2006

1001

3010

1309.95

10/06/2008

2004

1002

3011

9891.88

10/06/2008

2006

1001

 


Задания на контрольную работу:

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

2. Напишите запрос, который вывел бы все строки из таблицы Customers, с номером продавца = 1001.

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

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

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

6. Напишите запрос, который выведет все заказы со значениями суммы выше чем 1000.

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

8. Напишите запрос к таблице Покупатели, который определит всех покупателей с рейтингом =< 100, если они не в Риме.

9. Что может быть выведено в результате следующего запроса ?

SELECT * FROM Orders

WHERE NOT ((odate = 10/03/2008 OR snum > 1006)

AND amt > = 1500 );

10. Как можно проще переписать такой запрос ?

SELECT snum, sname, city, comm

FROM Salespeople

WHERE(comm>+0.12 OR comm<0.14);

11.Напишите два запроса, которые могли бы вывести все заказы на 3 и 4 октября 2008.

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

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

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

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

16.Напишите запрос, который сосчитает число всех заказов, сделанных 3 октября.

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

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

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

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

21.Предположим, что каждый продавец имеет 12% комиссионных. Напишите запрос к таблице Заказов, который мог бы вывести номер заказа, номер продавца, и сумму комиссионных продавца для этого заказа.

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

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

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

25.Напишите запрос формирующий список номеров заказов, сопровождающихся именем покупателя, который делал эти заказы.

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

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

12%. Выведите имя покупателя, имя продавца, и ставку комиссионных продавца.

28.Напишите запрос, который вычислил бы сумму комиссионных продавца для каждого заказа покупателя с рейтингом выше 100.


Написать отзыв

Внимание: HTML не поддерживается! Используйте обычный текст!
    Плохо           Хорошо

Запросы SQL (по книге Мартина Грабера)

  • Дисциплина: Базы данных
  • Код работы: КО-284
  • Работу выложил: Администратор
  • 200.00 р.



Теги: Microsoft Access, База данных

Не подошла работа?

Узнайте стоимость написания работы по Вашему заданию

(это быстро и бесплатно)

Узнать стоимость

Спасибо, не надо