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

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


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

Выпуск 371 от 5 ноября 2011 г.

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

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

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

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

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


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

§ Усилил проверку задачи 50 (рейтинг) данными, предложенными qwrqwr.
Добавил проверочные данные от $erges для задачи 20 (DML).
Автор усилил проверку задачи 169.
baser уточнил формулировку задачи (-3).
Написал подсказку для задачи 41 обучающего этапа.
По предложению GriGrim добавил ссылку на используемый метод в формулировку задачи 131.

§ Стартовала очередная Премия Рунета.
Просьба поддержать голосованием проекты sql-ex.ru и sql-tutorial.ru.

§ Самые популярные темы недели на форуме

Топик		Сообщений
Guest's book	36
-3 (SELECT)	30

182 (SELECT)	20
37 (SELECT)	8
175 (SELECT)	7

 

§ Авторы недели на форуме

Автор		Число сообщений
Baser  		30

anddros  	22
Дмитрий Гринкевич	21
Arcan  		15
$erges  	8

 

§ Объявленные конкурсы по оптимизации запросов

Задача	Дата		Автор
170	2011-07-15	qwrqwr

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
1. Arcan (182)
2. Baser (182)
3. vlksm (182)
9. Faust_zp (169, 180)
35. Zin4uk Vadim (148)

§ Одна задача до третьего этапа осталась:
83. kalinin_k (задач 137, время 9.818)
84. GriGrim (137, 227.248)

§ Продвинулись в рейтинге:
85. silver (138, 94.716)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
104. vavilen (122, 18.118)
117. lorins_ (117, 22.692)
133. Faust (108, 64.390)
155. Yury Egorov (118, 5.672)
156. VSmirnov (105, 41.398)
169. Dmitry Varenikov (102, 134.887)
170. WY (102, 10.028)
187. SergeyKiev (100, 4.811)
194. Руслан1707 (98, 50.757)
198. Sindhoor (98, 66.526)

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

Число упражнений:
   на обучающем этапе - 87;
   на рейтинговых этапах - 182;
   DML - 23;

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

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

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

На обучающем этапе - 40531

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1Креславский О.М. (Arcan)1189182234471736171.138122.8181192011-11-022011-11-04
2Бежаев А.Ю. (Baser)118918223447545143.291133.7691192011-10-292011-11-04
3Карасёва Н.В. (vlksm)1189182234471999166.422134.6141192011-10-312011-11-04
4Кузнецов В.С. (herrRo)118663234391064480.10571.7141142011-10-252011-11-03
5Курочкин П.А. (qwrqwr)21866323439710191.136130.8131142011-10-212011-11-04
6Сальников С.А. ($erges)1185-323436134510.8249.6391082011-11-022011-11-03
7Шиндин А.В. (AlShin)116925223407928409.229780.7681022011-05-052011-05-21
8Дубинский А.В. (_yizraor)117513323416694281.422355.290962011-10-122011-10-16
9Яцук А.А. (Faust_zp)1180169234201732131.95497.151952011-11-022011-11-04
10>Тарасов Д.Б. (Gavrila)9177-3234142257135.16790.341912011-11-042011-11-04
11Орлов М.В. (Eagleoff)91729123401930123.30890.348912011-10-192011-11-04
12Дроздков А.Н. (anddros)5174-323408125011.04410.046862011-10-312011-11-03
13Держальцев В.А. (MadVet)3159100223792073143.978101.307842010-12-292011-09-26
14Зотов П.Г. (Ozzy)116429233921292214.601190.282832011-10-082011-11-04
15Boiko D. (Angellore)8175632340615331765.786836.867812011-10-222011-11-03
16Умрихина Е.В. (Umrikhina)1136672333094941.36843.454562010-11-292011-09-29
17Dvoryaninov V. (Валдай)171606323366838302.638314.204512011-10-232011-11-03
18Мурашкин И.В. (lepton)1109162212621706122.734636.879422010-11-232010-12-03
19Свиридов К.Ю. (orange)1914514923341125462.88531.081382011-06-152011-11-03
20Сенкевич С.В. (GreyC)110922127339357.66623.321382009-10-072010-01-01

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1>Чернышев В.Н. (Professor47)324850378760604 Nov 2011
211 (child_of_sunset)7893443169303 Nov 2011
3>Гринкевич Д.Л. (Дмитрий Гринкевич)23583403448704 Nov 2011
4Che A. (Antinegatiff)822112233151103 Nov 2011
5Съедин Г. (HooliGUN)20443103164603 Nov 2011
6Сайко Д. (DreamCatcher)0102525205703 Nov 2011
7Смольяков А.А. (Андрюхин)0
02525271131 Oct 2011
8zxion (zxion1)0
01919316904 Nov 2011
9Парнюк А. (palt)1111718322901 Nov 2011
10Тиньков А.В. (dronusoid_s)0901616188231 Oct 2011
11Клишин Д. (Tronix 666)789615312904 Nov 2011
12Smirnov V. (VSmirnov)51051401415604 Nov 2011
13Kushnir N.B. (nkushnir)7831401431803 Nov 2011
14Холтыгин С.А. (vavilen)61221301310404 Nov 2011
15Брызгунов В.А. (lorins_)51171301311703 Nov 2011
16Берестнева Н.А. (Wolfna)10631301360930 Oct 2011
17petrova (irp)0
01313363830 Oct 2011
18Сергеичева Н. (Nadine)455712206304 Nov 2011
19>Агеев (Ageev)91012012359903 Nov 2011
20Левин М.М. (Fesper)0
01212374304 Nov 2011

Изучаем SQL

Функция DATEDIFF

Моисеенко С.И.

Задача. Посчитать число минут в интервале между двумя датами – '2011-10-07 23:43:00' и '2011-10-08 01:23:00'

SQL Server

Встроенная функция DATEDIFF решает проблему:

    SELECT DATEDIFF (minute, '2011-10-07T23:43:00', '2011-10-08T01:23:00');

Результат – 100 минут.

Примечание:
В запросе используется стандартное представление даты (ISO) в виде текстовой строки 'yyyy-mm-ddThh:mm:ss', которое не зависит ни от локальных настроек сервера, ни и от самого сервера.

MySQL

Функция DATEDIFF есть и в MySQL, однако она имеет совсем другой смысл. DATEDIFF вычисляет число дней между двумя датами, являющихся аргументами этой функции. При этом если дата представлена в формате дата-время, используется только составляющая даты. Поэтому все три нижепредставленных запроса дадут один и тот же результат -1. Положительный результат будет получен, если первый аргумент больше второго.

    SELECT DATEDIFF('2011-10-07T23:43:00', '2011-10-08T01:23:00');
    SELECT DATEDIFF('2011-10-07', '2011-10-08');
    SELECT DATEDIFF('2011-10-07T23:43:00', '2011-10-08');

Один день мы получим даже в случае, если интервал между датами составляет все одну секунду:

     SELECT DATEDIFF('2011-10-07T23:59:59', '2011-10-08T00:00:00');

Решение же нашей задачи можно получить при помощи другой встроенной функции – TIMESTAMPDIFF, которая аналогичная функции DATEDIFF в SQL Server:

    SELECT TIMESTAMPDIFF(minute, '2011-10-07T23:43:00', '2011-10-08T01:23:00');

PostgreSQL

В PostgreSQL нет функции, подобной DATEDIFF (SQL Server) или TIMESTAMPDIFF (MySQL). Поэтому для решения задачи можно применить следующую последовательность действий:

Читать далее...

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

§ В настоящее время для решения упражнений на сайте используются следующие СУБД: SQL Server 2008 R2 Express, MySQL 5, PostgreSQL 9.

§ Приглашаем вас посетить Интерактивный учебник по SQL.
   Ресурс позиционируется как "справочное обеспечение" для сайта SQL-EX.RU, но может использоваться и независимо от него.

§ Онлайновый выпуск рассылки можно почитать на сайте.

§ Книги и статьи по SQL.

§ Хотите поддержать проект? Вот инструкция по применению.

Контакты

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

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

В избранное