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

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


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

Выпуск 463 от 10 августа 2013 г.

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

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

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

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

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


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

§ Переписал формулировку задачи 46 (SELECT, обуч. этап).

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

Топик		Сообщений
195 (SELECT)	5
51 (Learn)	4
139 (SELECT)	4
46 (Learn)	3
-9 (SELECT)	2

 

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

Автор		Число сообщений
IvanovIvam	10
eduardoharada	8
smersh		8
schura2013	5
Baser  		4

 

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

Задача	Дата		Автор
147	2012-02-23	$erges
159	2012-07-25	anddros
170	2011-07-15	qwrqwr
182	2012-02-16	Baser
192	2012-03-03	Baser
259	2012-07-23	anddros

 

Дополнительные неоптимизационные конкурсы

Задача	Дата		Автор/Организатор конкурса
71	2010-12-26	anddros (завершен).
88	2012-07-12	crescent/Pegoopik
91	2012-05-31	smog/$erges
121	2012-07-06	ZrenBy/anddros
153	2010-09-21	Ozzy

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
4. Baser (195, 197)
83. SergM (139, 140)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
148. degt (116, 45.261)
175. YuriPetrov (105, 18.588)
209. Iura__ (103, 9.753)
257. Oct (96, 20.816)
260. Olaf (92, 22.018)

§ На этой неделе сертифицированы:
grigoriev (A13091716) [BK] - г. Москва, Россия

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

Число упражнений:
   на обучающем этапе - 109;
   на рейтинговых этапах - 197;
   DML - 24
   головоломки - 9 (отрицательные номера) + 9 (3 этап).

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1Курочкин П.А. (qwrqwr)1217198245141348218.605146.9171592013-07-202013-08-02
2Креславский О.М. (Arcan)1217198245142361215.064160.8031592013-07-202013-08-09
3Карасёва Н.В. (vlksm)1217303245142624212.548167.6791592013-07-202013-08-09
4Бежаев А.Ю. (Baser)1216195245131194151.577132.8571582013-08-082013-08-09
5Сальников С.А. ($erges)121313524506195214.82211.9891512013-07-012013-08-09
6Boiko D. (Angellore)62111552449721512890.1901428.2711422013-07-012013-07-13
7Филиппкин Д.В. (_dimon_)7211198244951660163.08099.2661402013-08-072013-08-09
8Яцук А.А. (Faust_zp)1200255244811985144.272108.8401352012-07-122012-07-30
9Кузнецов В.С. (herrRo)1185104234421170481.38873.3351222012-02-082013-06-18
10Дроздков А.Н. (anddros)519519824451188012.47211.0871052013-07-222013-07-26
11Дубинский А.В. (_yizraor)1185122244381088718.8041122.9071022012-11-052012-11-25
12Шиндин А.В. (AlShin)116125223396928408.897777.457992011-05-052011-05-21
13Тарасов Д.Б. (Gavrila)917832234182428151.46299.710952012-04-232012-05-25
14Орлов М.В. (Eagleoff)9165-323396952138.545106.466922011-11-102013-08-09
15Зотов П.Г. (Ozzy)116313233891412213.968187.364812012-02-052013-08-06
16Держальцев В.А. (MadVet)3151100223682073143.64299.698812010-12-292011-09-26
17Кукушкин С.А. (smog)1718417524409843251.504431.495752013-07-312013-08-09
18Агапов В. (KERBEROS)117525324408240935.65327.703692013-04-022013-04-05
19Гринкевич Д.Л. (Дмитрий Гринкевич)1818219624400651116.471248.314692013-07-232013-08-09
20Калинин К.А. (kalinin_k)161681692338439927.21536.659602012-06-302013-08-09

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1>Борисенко И.Н. (Igor.N.B.)61719809872209 Aug 2013
2>Григорьев А.В. (grigoriev)28664704750009 Aug 2013
3Дубей И.А. (AnonimusNew)5459273687009 Aug 2013
4>Балунов М.А. (Имбокофе)16522802869609 Aug 2013
5Вольская Н.И. (natali_volska)161923023198109 Aug 2013
6Ivanov (IvanovIvam)0
02020354409 Aug 2013
7Масляев В.С. (Velmont)0101919352709 Aug 2013
8Wolszczak (slautherhousy)2221719357906 Aug 2013
9Пономарёв Д.А. (DanwerOK)0
01919363909 Aug 2013
10>Мищук С.И. (ustas2)7199817212909 Aug 2013
11>Плужник (c0unt)112417017267609 Aug 2013
12>ifritov (ifrit_)8731601641909 Aug 2013
13Ширкин С.В. (Доктр)103516016119109 Aug 2013
14Поляков В.М. (rock_4)0101616350409 Aug 2013
15Колесникова К.А. (Ksenia0_o)2521214227907 Aug 2013
16Tofan V.V. (vasiliii)0
01414407809 Aug 2013
17Климов М. (Zerg)495813292909 Aug 2013
18>Movlyanov A.P. (Oct)5961201225709 Aug 2013
19Федоров Н.Н. (Matofey)6338412153807 Aug 2013
20>Чибисов В. (Дубрава)5581101165909 Aug 2013
21>Яковлев Ю.В. (Яковлев Юрий)64111011150909 Aug 2013

Изучаем SQL

Генерация числовой последовательности в PostgreSQL

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

Вероятно, ввиду часто возникающей потребности в числовых последовательностях, в PostgreSQL имеется функция, которая возвращает такую последовательность:

    generate_series(start, stop [, step])

Здесь
start - начальное значение последовательности,
stop - конечное значение последовательности,
step - шаг последовательности (по умолчанию равен 1).

Применение данной функции проще показать на примерах. Начнем с задачи, которая рассматривалась на предыдущей странице:

Получить 100 последовательных незанятых номеров моделей, идущих за последним номером модели в таблице Product.

Решение для PostgreSQL можно записать очень лаконично:

SELECT CAST(MAX(model) AS INT) + generate_series(1,100) AS num FROM Product;

Преобразование типа здесь необходимо, поскольку номер модели (model) имеет тип VARCHAR.

Следующий пример - это вывод алфавита, который мы получали с помощью SQL-рекурсии. Применим тот же алгоритм, а именно, к коду первой буквы будем последовательно добавлять единицы, после чего преобразуем полученные коды к символам:

SELECT CHR(ASCII('A') + generate_series(0,25)) AS letter ORDER BY 1;

Наконец, рассмотрим довольно часто возникающую необходимость получения последовательности дат. В связи с этим отметим, что третий параметр (step) может быть не только типа INT, но и типа INTERVAL. Последнее позволит нам непосредственно работать с последовательностями дат, минуя преобразование последовательности чисел к последовательности дат. Итак,

Вывести последовательность дат между датами первого и последнего полета пассажира с id_psg=5.
    SELECT generate_series(MIN(date), MAX(date), '1 day')
    FROM pass_in_trip WHERE id_psg = 5;
    

Поскольку пока на внутренних страницах учебника есть возможность выполнять скрипты только под SQL Server, вы можете для выполнения приведенных здесь запросов воспользоваться консолью, выбрав PostgreSQL в списке поддерживаемых СУБД.

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

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

§ Группа SQL Exercises на LinkedIn.com. Присоединяйтесь!

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

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

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

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

Контакты

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

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

В избранное