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

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


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

Выпуск 514 от 02 августа 2014 г.

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

SQL Exercises

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

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

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

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


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

§ Новая задача от pegoopik выставлена для обсуждения под номером 214 (сложность 1 балл).
Задача НЕ планируется на 3-й этап.

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

Топик		Сообщений
779		16
777		12
20 (Learn)	6
780		6
14 (Learn)	4

 

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

Автор		Число сообщений
qwrqwr  	10
ShEv89		9
pegoopik  	8
anddros  	7
Maniack90	6

 

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

Задача	Дата		Автор
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

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
53. al29 (143)

§ Продвижение ближайших претендентов на попадание в ТОР 100 (число задач, время решения в днях):
128. bubala (126, 42.579)
181. demkse (112, 362.792)
186. katyuha (109, 54.438)
196. vasilyvanc (114, 23.266)
203. Iura__ (107, 26.740)
224. Sindhoor (101, 94.268)
226. JanosAudron (98, 22.556)
228. E=mc^2 (101, 519.940)
234. Yurimaru (103, 14.802)

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

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

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1Филиппкин Д.В. (_dimon_)1239212245612009183.589117.6091922014-07-222014-08-01
2Креславский О.М. (Arcan)1239213245612725232.821177.1091922014-07-192014-08-01
3Бежаев А.Ю. (Baser)1238212245591539162.424140.2751922014-07-192014-08-01
4Курочкин П.А. (qwrqwr)1238213245591711228.319155.0701902014-07-182014-08-01
5Boiko D. (Angellore)1236-142455725133276.1521686.0741882014-06-282014-07-06
6Карасёва Н.В. (vlksm)123593245552883230.729182.8941882014-04-052014-07-27
7Сальников С.А. ($erges)1211-1124506205914.79811.9891532013-10-162014-08-01
8Яцук А.А. (Faust_zp)1196255244791985144.249108.8401372012-07-122012-07-30
9Кузнецов В.С. (herrRo)1181260234381170481.35473.3351222012-02-082013-06-18
10Кукушкин С.А. (smog)10207212244581208903.3241022.1861102014-07-312014-08-01
11Дроздков А.Н. (anddros)520221324460224412.54011.1021092014-07-212014-08-01
12Дубинский А.В. (_velial)11971352446316521879.5502429.0111082014-05-232014-06-07
13Шиндин А.В. (AlShin)115725223392928408.676777.457992011-05-052014-05-18
14Тарасов Д.Б. (Gavrila)917432234142428151.42499.710952012-04-232012-05-25
15Орлов М.В. (Eagleoff)9161-323392952138.529106.466922011-11-102014-08-01
16Гринкевич Д.Л. (Дмитрий Гринкевич)16193213244191022130.026260.485842014-07-292014-08-01
17Зотов П.Г. (Ozzy)115913233871412213.869187.364832012-02-052014-07-30
18Держальцев В.А. (MadVet)3147100223642073143.50499.698812010-12-292011-09-26
19Красовский Е.А. (pegoopik)18197213244471475204.2117.551782014-07-222014-08-01
20Агапов В. (KERBEROS)117125324404240935.64027.703692013-04-022014-01-30

TOP 10 по оптимизации запросов


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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1>yakovlev V. (wyt)41646346755101 Aug 2014
2Malikov K.M. (Longolyer)0
01919381601 Aug 2014
3Тюрин В.В. (shinom)10631701756601 Aug 2014
4Лебедь Д.А. (Get it)5199312137828 Jul 2014
5Максимова Е.А. (katyuha)41091101118631 Jul 2014
6>Колбасов П.А. (kolbasOff)6851101134901 Aug 2014
7>Shchukin V.B. (VladBorisovich)5391101194401 Aug 2014
8>Мостовой А.А. (Андрей)63610010116031 Jul 2014
9Данилюк А.И. (_Dan_)62310010130131 Jul 2014
10>Sindhoor (Sindhoor)410190922401 Aug 2014

Изучаем SQL

Функция CONCAT

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

Для конкатенации строк в SQL Server используется оператор "+".

Т.е. если операнды являются числовыми, то выполняется операция сложения, а если - строковыми, то конкатенация:

    SELECT 1+2+3+4 a, '1'+'2'+'3'+'4' b;

a	b
10	1234

Если же операнды являются значениями разных типов, то SQL Server выполняет неявное преобразование типов.

Выполняя следующий запрос

    SELECT hd + ' Gb' volume FROM PC WHERE model = 1232;
мы получим сообщение об ошибке:

Error converting data type varchar to real.
(Ошибка при преобразовании типа данных varchar к real.)

Существует приоритет типов при их неявном преобразовании, и в соответствии с этим приоритетом сервер пытается преобразовать строку ' Gb' к типу данных столбца hd (real).

Разумеется, явное преобразование типа решает проблему:

    SELECT CAST(hd AS VARCHAR) + ' Gb' volume FROM PC WHERE model = 1232;

volume 
5 Gb
10 Gb
8 Gb
10 Gb

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

    SELECT CONCAT(hd, ' Gb') volume FROM PC WHERE model=1232;

Еще одна полезная особенность функции CONCAT состоит в том, что NULL-значения неявно преобразуются в пустую строку- ''. Обычная же конкатенация с NULL-значением дает NULL. Вот пример, который это демонстрирует.

    SELECT NULL + 'concatenation with NULL' plus,
           CONCAT(NULL, 'concatenation with NULL') concat;

plus    concat
NULL	concatenation with NULL

Следует отметить, что у функции CONCAT может быть произвольное число аргументов, но не менее двух.

    SELECT 1+2+3+4 a, CONCAT(1, 2, 3, 4) b;

a	b
10	1234

MySQL

В MySQL также имеется функция CONCAT, вернее, даже две функции. Первая из них - CONCAT - возвращает NULL, если среди аргументов функции встречается NULL, вторая - CONCAT_WS - опускает аргумент, если его значение NULL. Кроме того, эта функция первым аргументом имеет разделитель, используемый при конкатенации.

    SELECT CONCAT(NULL, 'concatenation with NULL') concat,
           CONCAT_WS('',NULL, 'concatenation with NULL') concat_ws,
           CONCAT_WS(', ',1, 2, NULL, 4) concat_ws_null;

concat  concat_ws   		concat_ws_null
(NULL)	concatenation with NULL	1, 2, 4

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

§ Вы можете купить футболку или кружку с логотипом сайта.

§ В настоящее время для решения упражнений на сайте используются следующие СУБД: 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"

В избранное