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

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


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

Выпуск 470 от 28 сентября 2013 г.

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

SQL Exercises

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

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

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

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


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

§ anddros усилил проверку задачи 23 (DML),
qwrqwr добавил проверочные данные для задачи 58 (SELECT, рейтинг).

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

Топик		Сообщений
777		27
202 (SELECT)	17
201 (SELECT)	16
Guest's book	11
23 (DML)	11

 

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

Автор		Число сообщений
qwrqwr  	26
Baser  		15
GANRIK  	15
Boris Pankin  	14
Pegoopik  	14

 

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

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

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
1. _dimon_ (201)
2. Baser (198, 201)
3. qwrqwr (198)
4. Arcan (201)
5. vlksm (199, 201)
6. Angellore (201)
15. smog (201)
20. Pegoopik (178)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
101. Oct (144, 62.922)
103. IvanMan (141, 273.214)
117. YuriPetrov (132, 27.904)
123. Dmitry Varenikov (129, 424.505)
134. MontaG (124, 37.152)
146. Igor.N.B. (115, 37.628)
203. mcrain (103, 488.878)

§ На этой неделе сертифицированы:
A.Mozolini (A13123665) [BK] - г. Москва, Россия
Igor.N.B. (A13100741) [BK] - г. Москва, Россия

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

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

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

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

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

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

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

Лучшие результаты (ТОР 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_)1223201245251707171.828108.0001682013-09-232013-09-27
2Бежаев А.Ю. (Baser)1223198245251239152.721133.8641682013-09-222013-09-27
3Курочкин П.А. (qwrqwr)1223202245251416220.116148.4101682013-09-262013-09-27
4Креславский О.М. (Arcan)1223201245252424218.447164.0881682013-09-212013-09-27
5Карасёва Н.В. (vlksm)1223201245252687214.595169.6561682013-09-212013-09-26
6Boiko D. (Angellore)12232012452522333070.7901608.8481682013-09-212013-09-27
7Сальников С.А. ($erges)1214-1024509203014.82211.9891532013-09-172013-09-27
8Яцук А.А. (Faust_zp)1200255244831985144.272108.8401372012-07-122012-07-30
9Кузнецов В.С. (herrRo)1185260234421170481.38873.3351222012-02-082013-06-18
10Дроздков А.Н. (anddros)519720024453193812.49311.0661052013-09-182013-09-27
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-09-27
15Кукушкин С.А. (smog)1519120124424898255.032434.988882013-09-242013-09-27
16Зотов П.Г. (Ozzy)116313233911412213.968187.364832012-02-052013-09-27
17Держальцев В.А. (MadVet)3151100223682073143.64299.698812010-12-292011-09-26
18Гринкевич Д.Л. (Дмитрий Гринкевич)1818620024408693126.973258.756752013-09-032013-09-27
19Агапов В. (KERBEROS)117525324408240935.65327.703692013-04-022013-09-12
20Красовский Е.А. (Pegoopik)18184178244171176203.8267.216602013-09-262013-09-27

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1Павлов Е. (Eugene Pavlov)1115152944185027 Sep 2013
2>Dembitskyi Y.V. (Kuntalion)1111132538236527 Sep 2013
3>Eleas (Ilya U)21643503585527 Sep 2013
4>Yu X. (XiaoYu)243232032115627 Sep 2013
5>Gao (YF)232730030123527 Sep 2013
6>Панкин Б. (Boris Pankin)15862702733227 Sep 2013
7Kravs A. (Kravs)0
02525316127 Sep 2013
8Третьяков А.И. (Fr1z2rt)0
02222339527 Sep 2013
9Дадыка А.И. (d.alejandro)02502020172827 Sep 2013
10Вареников Д.М. (Dmitry Varenikov)81291901912327 Sep 2013
11Ведмецкий (Anakreon_Star)0
01919368325 Sep 2013
12>Николаев А.Р. (AndrewN)10481801890927 Sep 2013
13Сахно Д.П. (Sahnovi4)0
01717387627 Sep 2013
14>Куанчалеев А.Б. (Avangard)122916016244227 Sep 2013
15>Высоцкий И.Ю. (kreeg)101613316332427 Sep 2013
16>Ганеев Р.Р. (GANRIK)8861501529827 Sep 2013
17Глебова (Акира)82314014277327 Sep 2013
18Пятилетов А.А. (MontaG)51241201213427 Sep 2013
19Плужник (c0unt)6871201250826 Sep 2013
20>Масляев В.С. (Velmont)8411201288227 Sep 2013
21Поляков В.М. (rock_4)6791101138027 Sep 2013
22>Petrov Y. (YuriPetrov)41331001011727 Sep 2013
23>Сциборский С.С. (Sergey Stsiborsky)7810010448927 Sep 2013

Изучаем SQL

Функции CEILING и FLOOR

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

Функция CEILING

Функция CEILING возвращает наименьшее целое число, которое больше или равно числовому выражению, являющемуся аргументом функции.

Следующий запрос

SELECT 6.28 val, CEILING(6.28) pos_val, CEILING(-6.28) neg_val
даст такие результаты:
val	pos_val	neg_val
-------------------
6.28	7	-6

Возвращаемый функцией результат имеет тот же тип, что и аргумент функции.

Однако рассмотренный пример вроде бы говорит об обратном. Более того, даже выполнив явное преобразование типа для чисел с фиксированной и плавающей точкой, мы получим в результате целое число за исключением константы типа MONEY (в Management Studio):

SELECT CEILING(CAST(6.28 as DEC(6,2))) ex_num, CEILING(CAST(6.28 as FLOAT)) apr_num, CEILING($6.28) money_num

ex_num	apr_num	money_num
-------------------------
7	7	7,00

При использовании других клиентских программ/драйверов вы вполне можете получить другое визуальное представление данных. Выполните, например, последний запрос непосредственно в учебнике. Что у вас получилось?

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

Более надежным критерием является объём, который значение занимает в памяти.

SELECT DATALENGTH(6.28) val, DATALENGTH(CEILING(6.28)) num_val, DATALENGTH(CAST(CEILING(6.28) as INT)) int_val

val	num_val	int_val
-------------------
5	5	4

Т.е. результат применения функции CEILING занимает в памяти столько же места, что и исходное значение, в то время как результат, явно преобразованный к целому типу, - 4 байта.

Функция FLOOR

Функция FLOOR, напротив, возвращает наибольшее целое число, которое меньше или равно числовому выражению, являющемуся аргументом функции.

SELECT 6.28 val, FLOOR(6.28) pos_val, FLOOR(-6.28) neg_val

val	pos_val	neg_val
--------------------
6.28	6	-7

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

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

В избранное