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

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


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

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

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

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

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

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


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

§ Fiolent усилил проверку задачи 87, на недостаток которой указал yahoo. Проверьте свои решения.

§ Решили проблему, связанную с использованием предложения FOR XML, которую обнаружил -=ac=-. Проблема была вызвана уровнем совместимости базы данных. При смене хостинга мы взяли проверочные базы с сервера 2000, у которых уровень совместимости был 80. Теперь на всех базах уровень совместимости 90.

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

§ Одна задача до третьего этапа осталась Guy (задач 137, время 2.654).

§ Новые лица в сотне и вернувшиеся в нее:
yahoo (125, 4.344)
spirin (120, 13.387)
ba (119, 41.170)

§ Продвинулись в рейтинге:
modicus (136, 8.024)
User_Name (135, 28.297)
Julia_M (134, 97.799)
Fomichev (135, 14.218)
runaway (131, 15.149)
Kamin (130, 54.288)
Онуфрий Голохвастов (123, 77.511)
SoVa (122, 157.373)
Madest (121, 45.379)
maar (121, 40.898)

§ На этой неделе сертифицированы:
Задворных Е.А. (A07016361) [BK] (г.Чита, Россия)
Женя06 (A07020524) [BK] (г.Москва, Россия)

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Северюхин Ю.А. (Venser) 142 142 21 342 154 4.912 .655 14 04 Aug 2007 24 Aug 2007
2 Солдатенков Ю.С. (SolYUtor) 142 142 21 342 453 17.807 2.695 14 14 Aug 2007 28 Aug 2007
3 Шептунов П.П. (PavelPS) 142 142 21 342 222 8.145 3.499 14 06 Aug 2007 23 Aug 2007
4 Мурашкин И.В. (lepton) 142 142 21 342 499 15.737 5.539 14 04 Aug 2007 27 Aug 2007
5 Карасёва Н.В. (vlksm) 142 142 21 342 455 31.344 5.912 14 04 Aug 2007 31 Aug 2007
6 Мальцев А.В. (Палкин) 141 142 21 340 310 27.974 7.690 14 23 Jun 2007 30 Aug 2007
7 Голубин Р.С. (Roman S. Golubin) 142 142 21 342 719 55.391 34.203 14 07 Aug 2007 31 Aug 2007
8 Агапов В. (KERBEROS) 137 141 20 329 89 6.163 1.262 11 20 Nov 2006 27 Jul 2007
9 Кувалкин К.С. (Cyrilus) 140 141 20 335 901 12.541 2.519 11 14 May 2007 31 Aug 2007
10 Зверев Д.Л. (dimzv) 137 141 20 329 1141 9.294 4.938 11 19 Dec 2006 22 Dec 2006
11 Войнов П.Е. (pаparome) 141 142 21 338 712 2.765 .049 10 06 Aug 2007 09 Aug 2007
12 Любченко В.А. (IAS56) 141 142 21 338 334 176.801 20.130 10 04 Aug 2007 13 Aug 2007
13 Тарасов Д.Б. (Gavrila) 140 140 21 335 724 20.381 .513 7 20 Aug 2007 31 Aug 2007
14 Васьков Е.В. (Johan) 140 140 21 335 402 12.786 11.402 7 25 Aug 2007 25 Aug 2007
15 Валуев Д.И. (Fiolent) 139 140 20 330 1433 117.088 62.302 4 07 Aug 2007 31 Aug 2007
16 Юлдашев М.Р. (Snowbear) 139 139 21 331 749 4.132 .000 3 06 Aug 2007 31 Aug 2007
17 Утёнков М.Н. (=Maxim=) 139 139 21 331 459 25.187 .036 3 05 Aug 2007 20 Aug 2007
18 Креславский О.М. (Arcan) 139 139 21 331 191 9.932 .315 3 09 Aug 2007 30 Aug 2007
19 Держальцев В.А. (MadVet) 134 139 20 320 540 34.190 3.085 3 08 Oct 2006 19 Oct 2006
20 Палий С.А. (PS_Sergey) 135 139 20 321 212 15.704 4.188 3 01 Dec 2006 03 Dec 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Hello (Core dump) 51 51 98 0 98 1407 29 Aug 2007
2 >Вовк М.С. (Морская) 22 55 43 34 77 661 31 Aug 2007
3 Мартинес В. (slava) 38 38 71 0 71 2203 30 Aug 2007
4 >Nikolaenko A.V. (Shadow77) 28 115 69 0 69 107 31 Aug 2007
5 >Федотов А.А. (-ALEXANDER-) 33 33 61 0 61 2662 31 Aug 2007
6 Пелипенко О.А. (Олег) 23 109 56 0 56 136 30 Aug 2007
7 >Мельников С.И. (smelnikov) 31 31 56 0 56 3002 31 Aug 2007
8 >Мордуховский (Maverick1985) 29 29 54 0 54 3163 31 Aug 2007
9 >Bordovskiy V. (smith) 29 29 44 9 53 3263 31 Aug 2007
10 Deacon S.N. (deacon) 22 47 52 0 52 1556 31 Aug 2007
11 >Омельченко (Екатерина) 29 29 52 0 52 3295 31 Aug 2007
12 >Фурда З.М. (Zoriana) 28 28 50 0 50 3460 31 Aug 2007
13 >Кисляк Ю.В. (Yuliya_84) 23 29 40 9 49 3084 31 Aug 2007
14 >Гарнцев А.В. (galexius) 27 27 48 0 48 3595 31 Aug 2007
15 >Зайцева Н.С. (Nadusha) 20 20 46 2 48 3616 31 Aug 2007
16 >Оленченко Ю.А. (KOLDUN) 27 27 47 1 48 3617 31 Aug 2007
17 >Литвиненко Д.В. (Stich) 26 53 43 0 43 950 31 Aug 2007
18 >Mykulyak A. (_zmeelov_) 27 27 42 0 42 4023 31 Aug 2007
19 >steve (slizard00) 18 31 41 0 41 3077 31 Aug 2007
20 Ганночка А.В. (TQT) 20 27 41 0 41 3709 29 Aug 2007
21 Khanoyan (Txamard) 24 24 41 0 41 4080 28 Aug 2007
22 Петров А.И. (StAndrew) 24 24 41 0 41 4091 29 Aug 2007
23 >Mikhailovsky I. (IL55) 18 59 35 5 40 1007 31 Aug 2007
24 >Галкин Д.В. (ased) 19 19 40 0 40 4149 31 Aug 2007
25 Жалудков А. ($ober) 21 21 31 9 40 4154 31 Aug 2007

Изучаем SQL

Мастерская XML IV - FOR XML EXPLICIT (продолжение, начало в вып.152)

Jacob Sebastian (оригинал: XML Workshop IV - FOR XML EXPLICIT )
Перевод Моисеенко С.И.

Шаг 2: Генерация узла City

Давайте теперь модифицируем наш запрос и создадим узел следующего уровня. Нижеприведенный запрос создает XML-структуру с первыми 2 узлами, которые нам требуются.

 


    1/*
    2 Точно так же, как мы это делали в предыдущем примере, сначала создадим
    3 результирующий набор и изучим его структуру. Это результирующий набор
    4, который нам необходим для генерации первых двух узлов (страна и город).
    5 */ 
    6
    7 SELECT
    8     1 AS Tag,
    9     NULL AS Parent,
   10     c.CountryName AS 'Country!1!name',
   11     c.Currency AS 'Country!1!currency',
   12     NULL AS 'City!2!name'
   13 FROM
   14     Countries c
   15
   16 UNION ALL
   17
   18 SELECT
   19     2 AS Tag,
   20     1 AS Parent,
   21     Country.CountryName,
   22     Country.Currency,
   23     City.CityName
   24 FROM Cities City
   25 INNER JOIN Countries Country ON (Country.CountryID = City.CountryID)
   26 ORDER BY 'Country!1!name', 'City!2!name'
   27

 

28 /* 29 Результат: 30 31 Tag Parent Country!1!name Country!1!currency City!2!name 32 ----------- ----------- -------------------- -------------------- -------------------- 33 1 NULL England Pound Sterling NULL 34 2 1 England Pound Sterling London 35 1 NULL India Rupee NULL 36 2 1 India Rupee New Delhi 37 1 NULL USA US Dollars NULL 38 2 1 USA US Dollars NJ 39 2 1 USA US Dollars NY 40 41 "Tag" 42 Отметим, что сейчас мы имеем несколько записей со значением "2" 43 Записи с тэгом "2" - есть узлы второго уровня. 44 "Parent" 45 Отметим, что мы имеем записи со значением "1", которое говорит, что эти записи имеют 46 родительский узел. Значение в столбце "Parent" относится к "Tag" 47 родительской записи. 48 "City!2!name" 49 "City" - имя элемента второго уровня 50 "2" относится к "Tag", который показывает, что это узел второго уровня. 51 "name" - имя атрибута. 52 */ 53

 

 
   54 /*
   55 Теперь получим XML и посмотрим результаты.
   56 */
   57
   58 SELECT
   59     1 AS Tag,
   60     NULL AS Parent,
   61     c.CountryName AS 'Country!1!name',
   62     c.Currency AS 'Country!1!currency',
   63     NULL AS 'City!2!name'
   64 FROM
   65     Countries c
   66
   67 UNION ALL
   68
   69 SELECT
   70     2 AS Tag,
   71     1 AS Parent,
   72     Country.CountryName,
   73     Country.Currency,
   74     City.CityName
   75 FROM Cities City
   76 INNER JOIN Countries Country ON (Country.CountryID = City.CountryID)
   77 ORDER BY 'Country!1!name', 'City!2!name'
   78 FOR XML EXPLICIT
   79

 

80 /* 81 Результат: 82 83 <Country name="England" currency="Pound Sterling"> 84 <City name="London" /> 85 </Country> 86 <Country name="India" currency="Rupee"> 87 <City name="New Delhi" /> 88 </Country> 89 <Country name="USA" currency="US Dollars"> 90 <City name="NJ" /> 91 <City name="NY" /> 92 </Country> 93 */

(Окончание следует...)

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

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

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

§ Желающих поспособствовать популяризации сайта прошу проголосовать/поставить закладку в социальных сетях:
del.icio.us
dzone.com
Digg.com
Reddit.com

Контакты

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

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

В избранное