Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru)


Информационный Канал Subscribe.Ru

Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 37 (28 мая 2005 г.)

http://www.sql-ex.ru

Новым посетителям сайта

Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.

Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается сейчас после решения 59-ти задач первого этапа. При подсчете рейтинга каждого участника отбрасывается один самый худший показатель среди всех решенных им упражнений.

Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.


Новости сайта

§ Прохождение неверных решений в задаче 99, замеченное idv, заблокировано. Также принято уточнение формулировки, хотя, на мой взгляд, оно совершенно излишне. Рекомендую проверить свои решения.

§ Замена задачи первого этапа (41-ой) сделала необъективным рейтинг первого этапа, т.к. он подсчитывается на основании интервала времени, от первого решенного задания этого этапа до последнего. Вероятно, мы просто уберем эту страницу.

§ Число подписчиков - 2112

Число участников рейтинга - 3207

Число участников второго этапа - 319

Лучшие результаты (ТОР 20)

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Гонтовой В.А. (noname) 137 137 20 312 68 9.705 23 May 2005 26 May 2005
2 Галиаскаров Э.Г. (Galogen) 137 137 20 312 185 61.297 26 May 2005 26 May 2005
3 Валуев Д.И. (Fiolent) 136 137 20 310 630 26.470 26 May 2005 27 May 2005
4 Кувалкин К.С. (Cyrilus) 135 137 20 308 167 5.020 10 May 2005 27 May 2005
5 Леденев С.А. (Shurgenz) 135 137 20 308 264 9.831 09 May 2005 27 May 2005
6 Мельникова И.А. (Iris_m) 135 41 20 308 380 89.865 27 May 2005 27 May 2005
7 Колосов А.С. (KAS) 134 137 20 306 25 3.398 11 Mar 2005 22 May 2005
8 Сныткин В.Л. (Ded I) 134 136 20 304 252 7.456 12 May 2005 27 May 2005
9 Рахманов И.Е. (bloom) 134 136 20 304 148 14.171 11 May 2005 23 May 2005
10 Hakobyan H.H. (hamlet) 134 136 20 304 220 37.869 07 May 2005 27 May 2005
11 Шипунов И. (IAS) 134 136 20 304 334 82.080 13 May 2005 26 May 2005
12 Зверев Д.Л. (dimzv) 133 136 20 302 513 2.422 31 Mar 2005 31 Mar 2005
13 Иткин И.Л. (joseph_itkin) 132 136 20 299 375 2.849 07 Mar 2005 13 Apr 2005
14 Spirin (spirin) 131 136 19 296 158 13.461 21 Jan 2005 24 Jan 2005
15 Михайлов В.Г. (mslava) 132 136 17 293 648 10.504 25 Mar 2005 25 Mar 2005
16 Пятница О.А. (Robin) 125 128 20 287 754 74.630 19 Mar 2005 06 May 2005
17 Gershovich (VIG) 120 122 20 277 805 10.525 25 May 2005 27 May 2005
18 Митронин А.А. (mitronin) 119 121 20 274 681 8.685 11 May 2005 27 May 2005
19 Булаев В.В. (Kvix) 119 121 20 274 266 24.671 18 May 2005 18 May 2005
20 Тортумашев Е.А. (Johnny) 119 121 20 274 219 68.741 19 May 2005 20 May 2005

Лучшие результаты за неделю

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Бураков С.Г. (burakov58) 32 66 62 26 88 149 27 May 2005
2 Крупенько О.В. (Oks) 33 57 69 17 86 354 27 May 2005
3 Mironov N.A. (Nikita Mironov) 40 40 72 0 72 569 27 May 2005
4 Ескендиров М. (Murat_2005) 25 83 55 15 70 90 27 May 2005
5 Скорынская О.С. (SOlgaS) 33 33 58 9 67 758 27 May 2005
6 Петров Н.С. (DD) 41 41 65 0 65 632 27 May 2005
7 Бевзюк А.А. (ABev.SQL) 35 35 63 0 63 668 25 May 2005
8 Vitaxa (Vitaxa) 35 35 60 0 60 715 25 May 2005
9 Вербицкий Д.В. (Дармидонт) 38 38 56 3 59 774 26 May 2005
10 Алалыкин В.М. (BOBAH) 32 32 54 2 56 801 27 May 2005
11 Гусева Е. (Catherine) 23 23 34 11 45 1168 22 May 2005
12 Козулин С.Н. (Veselchak) 24 31 38 0 38 954 24 May 2005
13 Ананьин (Left) 24 24 38 0 38 1051 25 May 2005
14 Bulichev V.V. (BulDozer) 24 24 37 0 37 1073 27 May 2005
15 Канунников С.Н. (Kan_SQL) 21 21 33 3 36 1212 23 May 2005
16 Калинкин С.А. (kalinkin) 20 48 31 3 34 497 27 May 2005
17 Бетке С.С. (cos) 23 23 34 0 34 1139 24 May 2005
18 Павлов А.А. (shl) 23 23 34 0 34 1152 23 May 2005
19 Protsyk Y.S. (Yura_SP) 23 23 34 0 34 1175 26 May 2005
20 Галушка М.И. (MaxHalushka) 25 25 31 3 34 1263 27 May 2005
21 Шумакова Ю.А. (Юю) 19 19 25 7 32 1419 21 May 2005
22 Novikova S. (Novikova) 18 18 31 0 31 1280 26 May 2005
23 Чурсинов С. (chserg) 20 28 30 0 30 1055 27 May 2005

Характерные ошибки при решении упражнений

SELECT

Задача 27
Найдите средний размер диска ПК каждого из тех производителей, которые выпускают и принтеры. Вывести: maker, средний размер HD.

Ошибка, которую здесь допускают, связана с недопониманием специфики предметной области. Я уже где-то об этом писал, но поскольку периодически получаю письма с просьбой объяснить ошибку в решении задачи, еще раз изложу трактовку базы данных "Компьютеры".

В таблице Product хранится информация обо всех известных производителях компьютерной техники. По крайней мере, тех, с кем взаимодействует наша вымышленная фирма. Остальные таблицы - PC, Laptop и Printer - содержат имеющиеся в наличии модели соответственно ПК, ПК-блокнотов и принтеров (например, в магазине). Здесь одна и та же модель может повторяться несколько раз, причем даже с идентичными характеристиками, т.к. все эти таблицы содержат синтетический первичный ключ - code. Связи "один-ко-многим" по модели допускают отсутствие той или иной модели в наличии, хотя она может присутствовать в таблице Product, т.к. имеется производитель, который ее выпускает.

Итак, когда речь идет, например, о производителях принтеров как в этой задаче, то это те юридические лица в таблице Product, у которых в поле type находится значение 'printer'. Проще говоря,

SELECT DISTINCT maker FROM Product WHERE type = 'printer'

Ошибка же состоит в том, что производителя принтеров определяют таким образом:

SELECT DISTINCT (Product.maker) FROM Product INNER JOIN Printer ON
    Product.model = Printer.model

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

Аналогичная ошибка допускается и в задаче 28, которая звучит так:

Найдите средний размер диска ПК (одно значение для всех) тех производителей, которые выпускают и принтеры. Вывести: средний размер HD

Задача 59
Посчитать остаток денежных средств на каждом пункте приема для базы данных с отчетностью не чаще одного раза в день. Вывод: пункт, остаток.

Характерная ошибка в этой задаче заключается в предложении SELECT:

SELECT point, (sum_inc - sum_out ) …

где sum_inc - сумма прихода на точке, а sum_out - сумма расхода на точке. Дело в том, что если на какой либо точке есть только приход, но нет расхода (эта ситуация вполне возможна для вновь открытой точки), то sum_out будет иметь значение NULL. Это стандартное значение при использовании агрегатной функции SUM, если возвращаемый набор записей пуст. В результате вычитания имеем опять таки NULL, т.к. любая арифметическая операция с NULL-значением дает NULL-значение.

Ситуацию легко исправить, написав

SELECT point, (ISNULL(sum_inc, 0) - ISNULL(sum_out, 0) ) …

или, следуя Стандарту SQL,

SELECT point, (COALESCE (sum_inc, 0) - COALESCE (sum_out, 0) ) …

§ Приведенные здесь примеры можно выполнить непосредственно на сайте, установив флажок "Без проверки" на странице с упражнениями на SELECT.

Полезная информация

Конкурс

§ Мы выставили наш сайт на конкурс Интернить 2005. Победитель определяется числом поданых голосов. Просьба проголосовать. (рекомендуемая оценка 3 :-)).

Контакты

По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77@yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.

Подписка Subscribe.Ru
Новости сайта "Упражнения по SQL"

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.db.sqlex
Отписаться
Вспомнить пароль

В избранное