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

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


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

http://www.sql-ex.ru

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

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

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

Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов.

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


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

§ С подачи Fiolent ознакомился с одной дискуссией, касающейся нашего сайта, на SQL.RU. Спасибо nibbles01 за привлечение внимания к сайту, который выступил в этой дискуссии в качестве адвоката :-).
В результате сделал некоторые конструктивные выводы:
- уточнил формулировку задачи 41, которая теперь звучит так:

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

- поскольку в ближайшее время вряд ли удастся отделить обучающий этап от сертификационного, что дало бы возможность добавлять новые задачи в начало второго этапа, повышу сертификационные пороги. Вероятно, так: BR - 67 задач, AR - 125 задач.
- когда у нас появится собственная площадка, реализуем возможность выполнять упражнения на Oracle.

§ Имеется баг, который не позволяет увидеть новую задачу третьего этапа в комбобоксе, если не решена предыдущая.
Как было заявлено (и реализовано, собственно), решать задачи участникам третьего этапа можно в любом порядке. Пока я не исправил баг, получить доступ к задаче можно через URL, например, так:

http://sql-ex/exercises.php?N=140

(внимание на номер задачи в комбобоксе не обращайте, смотрите на формулировку :-)).

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

§ На этой неделе в сотню и сразу в 20-ку вошел KERBEROS (задач 136, время 2.617). Кажется, претендентов на лидерство прибавилось.

§ Кажется dimsv (135, 3.492) решил вернуть утраченные позиции, и конкуренция долна усилиться.
Вошел в 20-ку imsh (136, 64.828).

§ Сохранили шансы попасть в ТОР 10:
PS_Sergey (135, 9.161)
alex_v (132, 22.343)
Палкин (128, 14.268)

§ Продолжили свое восхождение к вершине:
Ocean (124, 45.352)
Gosha (120, 131.512)

§ На этой неделе сертифицированы:
Tema (A06012486) [BK] (г.Санкт-Петербург, Россия)
Палкин (B06012492) [AR] (г.Уфа, Россия)

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

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

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

Сертифицировано на сайте - 105

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Карасёва Н.В. (vlksm) 140 140 20 329 151 27.838 2.709 7 04 Oct 2006 06 Oct 2006
2 Войнов П.Е. (pаparome) 139 107 20 326 407 2.687 .000 4 05 Oct 2006 06 Oct 2006
3 Юлдашев М.Р. (Snowbear) 139 139 20 325 441 4.106 .000 3 02 Oct 2006 06 Oct 2006
4 Васьков Е.В. (Johan) 139 139 20 325 74 9.852 .116 3 01 Oct 2006 06 Oct 2006
5 Мурашкин И.В. (lepton) 139 139 20 325 190 13.416 3.284 3 29 Sep 2006 06 Oct 2006
6 Держальцев В.А. (MadVet) 138 107 20 322 536 31.163 .000 0 04 Oct 2006 06 Oct 2006
7 Валуев Д.И. (Fiolent) 138 107 20 322 1125 54.696 .000 0 03 Oct 2006 06 Oct 2006
8 Slobodcicov A.N. (Testo) 137 138 20 320 337 7.171 .000 0 25 Aug 2006 05 Oct 2006
9 Кувалкин К.С. (Cyrilus) 137 138 20 320 669 9.797 .000 0 24 Sep 2006 27 Sep 2006
10 Иванов А.Н. (Goapsy) 137 138 20 320 270 18.911 .000 0 07 Aug 2006 04 Oct 2006
11 Голубин Р.С. (Roman S. Golubin) 137 138 20 320 353 21.131 .000 0 06 Aug 2006 05 Oct 2006
12 Тарасов Д.Б. (Gavrila) 136 138 20 317 402 19.425 .000 0 02 Oct 2006 06 Oct 2006
13 Абашин П.И. (Dizil) 136 137 20 316 348 3.901 .000 0 07 Aug 2006 03 Oct 2006
14 Самохвалов В. (ValdemarES) 136 137 20 316 273 7.848 .000 0 17 Aug 2006 25 Sep 2006
15 Солдатенков Ю.С. (SolYUtor) 136 137 20 316 111 12.905 .000 0 06 Sep 2006 06 Oct 2006
16 >Агапов В. (KERBEROS) 136 136 20 314 44 2.617 .000 0 06 Oct 2006 06 Oct 2006
17 Зверев Д.Л. (dimzv) 135 87 20 314 1065 3.492 .000 0 04 Oct 2006 04 Oct 2006
18 Страшников А.С. (EffEct) 135 137 20 314 483 61.849 .000 0 10 Sep 2006 21 Sep 2006
19 shtril I. (imsh) 136 136 20 314 101 64.828 .000 0 02 Oct 2006 06 Oct 2006
20 Матвеева Ю.Б. (Julia_M) 135 137 20 314 310 81.862 .000 0 13 Sep 2006 22 Sep 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Агапов В. (KERBEROS) 65 136 146 0 146 16 06 Oct 2006
2 >Б. А.В. (Prince) 50 50 89 17 106 782 06 Oct 2006
3 >Проценко (PElena) 50 50 91 0 91 1089 06 Oct 2006
4 Tarczewski R. (denaturat) 41 41 68 17 85 1193 05 Oct 2006
5 >Ерохин А. (Caes) 34 34 55 19 74 1450 06 Oct 2006
6 >Смирнов А.А. (bigcoolalex) 39 43 73 0 73 1374 06 Oct 2006
7 >Свечинов А.В. (Алекс) 34 58 71 0 71 750 06 Oct 2006
8 Гончаров (Дима_авл) 13 35 32 32 64 1029 06 Oct 2006
9 Polivaniy A. (tiPPLer) 35 36 64 0 64 1691 03 Oct 2006
10 Муравьева Л.А. (ladika) 39 39 63 0 63 1750 04 Oct 2006
11 >Пикаев А. (Purgas) 38 38 60 0 60 1867 06 Oct 2006
12 Салимов Д.М. (Damirishe) 25 58 48 11 59 576 06 Oct 2006
13 >Prokopchik S. (sn-prokop) 14 70 29 29 58 268 06 Oct 2006
14 Залевский (dbz) 37 37 58 0 58 1939 06 Oct 2006
15 >mr I.M. (Moris) 37 37 58 0 58 1949 06 Oct 2006
16 >Yakushenko S.N. (blot-sql) 29 29 52 5 57 1998 06 Oct 2006
17 >Кравченко С.Н. (stranges) 30 30 55 0 55 2065 06 Oct 2006
18 Francisco R.D. (franciscorojero) 36 36 54 0 54 2109 06 Oct 2006
19 Замосковный Д.А. (BIeZ) 30 30 53 0 53 2132 04 Oct 2006
20 >Vorontsov M.M. (mikew) 19 86 41 9 50 174 06 Oct 2006
21 Закусилов Р.Э. (Ruslan_z) 28 28 49 0 49 2317 06 Oct 2006
22 >Станкевич Э.Л. (Edward_rost) 28 28 49 0 49 2319 06 Oct 2006
23 Охотина А. (alshonok) 28 28 49 0 49 2330 04 Oct 2006
24 Gerasimov A. (Gerros) 23 30 48 0 48 2067 30 Sep 2006
25 >tulala (munnabhai) 28 28 46 0 46 2462 06 Oct 2006
26 Еремчук И.Н. (fuzzy_logic) 17 45 44 1 45 1288 06 Oct 2006
27 >andmar (andmar) 23 49 44 0 44 1149 06 Oct 2006
28 >Savenko S. (svet-a) 20 41 36 8 44 1461 06 Oct 2006
29 >Румянцев О.Ю. (Rolf) 20 38 44 0 44 1648 06 Oct 2006
30 >Elizarov A.O. (Mr.Virus) 25 29 43 0 43 2220 06 Oct 2006
31 Хаертдинов Д.Р. (A-S-P-I-D) 23 23 39 3 42 2633 03 Oct 2006
32 >Chan (Path) 21 30 41 0 41 2144 06 Oct 2006
33 >Попилов А.Е. (Alexandr_) 25 25 40 1 41 2676 06 Oct 2006

Изучаем SQL

Играем с параметрами шаблонов в SQL Server 2005

Arthur Fuller (оригинал: Toying with template parameters in SQL Server 2005)
Перевод Моисеенко С.И.

Артур Фаллер рассматривает некоторые хитрые штучки, которые Вы можете проделывать с параметрами шаблонов в SQL Server 2005. Он также отмечает имеющуюся тут проблему, которая не должна заставить разработчиков отказаться от их использования.

Если Вы создаете функции или хранимые процедуры в Студии Управления (Management Stulio - MS) SQL Server 2005, обратите внимание на новое окно со списком шаблонов. В общем случае Вы получаете скелет с вкраплениями маркеров. В листинге A приводится пример, который можно получить, если развернуть узел Programmability в браузере объектов, выбрать Stored Procedures (хранимые процедуры), а затем щелкнуть правой кнопкой мыши и выбрать New Stored Procedure (новая хранимая процедура).

-- ================================================

-- Template generated from Template Explorer using:

-- Create Procedure (New Menu).SQL

--

-- Use the Specify Values for Template Parameters

-- command (Ctrl-Shift-M) to fill in the parameter

-- values below.

--

-- This block of comments will not be included in

-- the definition of the procedure.

-- ================================================

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

 

-- =============================================

-- Author: <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- =============================================

CREATEPROCEDURE<Procedure_Name,sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1,sysname, @p1><Datatype_For_Param1,,int>=<Default_Value_For_Param1,, 0>,
<@Param2,sysname, @p2><Datatype_For_Param2,,int>=<Default_Value_For_Param2,, 0>
AS

BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;


-- Insert statements for procedure here
SELECT<@Param1,sysname, @p1>,<@Param2,sysname, @p2>
END
GO

Удивительно большое число разработчиков не в состоянии прочитать первый блок комментариев, которые дают инструкции относительно того, как заполнить параметры. Вы можете сделать это либо нажимая [Ctrl] [Shift] М, либо выбирая команду Query | Specify Values For Template Parameters в главном меню. Так или иначе, появится диалоговое окно, показанное на рисунке 1.


Рис.1

Чтобы поставить значение вместо любого маркера шаблона, проделайте следующее:
Дважды щелкните на соответствующей строке в диалоговом окне.
Введите подходящее значение, и проделайте то же самое для каждого маркера.
Нажмите OK.

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

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


Рис.2

Это - очень быстрая возможность, хотя ее выполнение как шаловливый ребенок. Если Вы нажмете OK, как только открыли диалоговое окно параметров, то любой маркер, свойства которого Вы не обновили, будет преобразован не совсем так, чтобы его выбросить, но перестанет быть маркером.

Эта незначительная проблема не должна заставить Вас отказаться от использования такой возможности редактора. Просто не забывайте корректировать код шаблона перед открытием диалогового окна задания параметров. Вы будете иметь приятно отформатированный стандартный заголовок для каждого объекта, который Вы создаете, который будет повторяться от объекта к объекту в вашей базе данных.

11 сентября 2006

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

§ В очередной Премии Рунета каждый посетитель может проголосовать за 12 понравившихся ему ресурсов.
Если вы решитесь принять участие в голосовании, надеюсь, что среди 12 ваших предпочтений найдется место и нашему сайту :-).

§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.

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

Контакты

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

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

В избранное