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

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


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

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

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

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

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

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


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

§ На странице рейтинга задач второго/третьего этапа теперь можно посмотреть список тех, кто начал решать задачу.
Аналогичная функциональность реализована на странице статистики. Можно посмотреть списки специалистов по регионам.

§ По просьбе xuser вывожу на странице рейтинга до определенной задачи худшее время участника, не учтенное в рейтинге. Это полезная информация для тех, кто бьется за самые высокие места.

§ Согласившись с ekarter, что формулировка задачи 8 (SELECT):

Найдите производителя, продающего ПК, но не ПК-блокноты.

допускает неоднозначное толкование, заменил в ней слово "продающего" на "выпускающего". Надеюсь, что теперь решение задачи будут искать только в таблице Product. :-)

§ xuser завершил решение задач второго этапа и показал здесь лучшее время (задач 138, время 2.293)
Одна задача до третьего этапа осталась Sysa (задач 137, время 48.578) и ivan.korobov (137, 90.022).

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
5. MadVet (145)
12. Cyrilus (142)

§ Новые лица в ТОР 100 и вернувшиеся туда:
63. $erges (133, 1.080) - первое место на промежуточном этапе.
90. Vetaleg (126, 46.807)

§ Продвинулись в рейтинге:
67. Gendalf (133, 104.691)
68. Vezyr (132, 23.786)
71. Fomichev (131, 14.174)
77. gps (130, 217.102)
83. Онуфрий Голохвастов (128, 133.924)
84. paul (127, 6.052)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
137. Eka (116, 9.438)
160. PandNsk (110, 1.134)
162. AKudrakov (110, 12.965)
185. andrij (112, 19.222)

§ На этой неделе сертифицированы:
Vetaleg (B08017268) [AR] - г. Королев, МО, Россия
shuga (A08026259) [BK] - г.Санкт-Петербург, Россия

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Печатнов В.В. (pvv) 146 146 21 357 127 19.165 6.326 28 23 Feb 2008 21 Mar 2008
2 Креславский О.М. (Arcan) 146 146 21 357 389 22.436 12.553 28 23 Feb 2008 21 Mar 2008
3 Карасёва Н.В. (vlksm) 146 146 21 357 667 64.764 38.288 28 03 Mar 2008 21 Mar 2008
4 Любченко В.А. (IAS56) 146 146 21 357 552 403.414 373.617 28 09 Mar 2008 21 Mar 2008
5 Держальцев В.А. (MadVet) 145 145 21 354 1064 57.441 25.129 25 15 Mar 2008 20 Mar 2008
6 Голубин Р.С. (Roman S. Golubin) 145 145 21 354 919 92.541 58.822 25 23 Feb 2008 16 Mar 2008
7 Белогурова К. (Katy_Ekb) 143 11 21 347 287 10.733 4.673 18 07 Mar 2008 19 Mar 2008
8 Войнов П.Е. (pаparome) 143 146 21 346 916 3.013 .213 17 26 Feb 2008 17 Mar 2008
9 Северюхин Ю.А. (Venser) 140 142 21 339 335 4.930 .655 14 01 Feb 2008 04 Feb 2008
10 Тарасов Д.Б. (Gavrila) 141 142 21 340 914 23.390 2.501 14 26 Feb 2008 21 Mar 2008
11 Солдатенков Ю.С. (SolYUtor) 139 142 21 338 490 17.852 2.695 14 20 Sep 2007 21 Mar 2008
12 Кувалкин К.С. (Cyrilus) 141 142 21 340 1207 13.042 2.782 14 15 Mar 2008 21 Mar 2008
13 Шептунов П.П. (Dzen) 139 142 21 338 279 8.130 3.499 14 02 Oct 2007 15 Nov 2007
14 Селезнёв А.С. (Артём С.) 142 141 21 343 127 15.597 4.279 14 14 Mar 2008 20 Mar 2008
15 Мурашкин И.В. (lepton) 142 142 21 343 705 15.853 5.539 14 26 Feb 2008 16 Mar 2008
16 Мальцев А.В. (Палкин) 139 142 21 338 422 48.788 7.690 14 13 Oct 2007 20 Jan 2008
17 >Васьков Е.В. (Johan) 141 12 21 340 611 14.323 12.767 14 21 Mar 2008 21 Mar 2008
18 Бураков С.Г. (burakov58) 139 142 21 338 974 51.701 19.814 14 30 Sep 2007 09 Nov 2007
19 Валуев Д.И. (Fiolent) 142 142 21 343 1638 188.425 131.545 14 28 Feb 2008 21 Mar 2008
20 Агапов В. (KERBEROS) 132 141 20 322 89 6.140 1.262 11 20 Nov 2006 19 Mar 2008

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Fedorov A.N. (Ho}{0l) 56 56 107 0 107 1386 20 Mar 2008
2 >Истомин Е.А. (Istomin) 51 51 97 0 97 1666 21 Mar 2008
3 >Едакин В.С. (VadikE) 51 51 96 0 96 1690 21 Mar 2008
4 >Бакулина Н. (n_bakulina) 25 59 51 34 85 715 21 Mar 2008
5 Ivanov I. (Gauleiter) 45 45 84 0 84 2081 20 Mar 2008
6 Градусов П.Н. (Paul_Grad) 40 40 76 3 79 2236 19 Mar 2008
7 Воронцов Д.С. (mitya_v) 40 40 76 0 76 2330 21 Mar 2008
8 >Вахрамеев А.А. (COD4) 39 39 73 3 76 2334 21 Mar 2008
9 >sheina (liliann) 37 37 70 3 73 2474 21 Mar 2008
10 >Rodionov R.O. (Chupa) 19 39 43 25 68 1368 21 Mar 2008
11 Красных (kraov) 36 36 68 0 68 2736 20 Mar 2008
12 >Царёв Ю.А. (Tsariov) 27 64 48 19 67 830 21 Mar 2008
13 kkk K.K. (kkk777) 35 35 66 0 66 2848 20 Mar 2008
14 Матанин А.Ю. (Матанин) 30 40 65 0 65 2359 19 Mar 2008
15 >Korobova (Baruko) 33 33 61 3 64 2989 21 Mar 2008
16 >Шовчко Д.А. (dimka.sh) 33 33 62 0 62 3109 21 Mar 2008
17 >Sydorenko (Helsi) 32 32 60 0 60 3245 21 Mar 2008
18 >Голубев (Golubev) 30 30 50 9 59 3309 21 Mar 2008
19 Обманкин С.И. (Doc@) 12 55 25 32 57 816 21 Mar 2008
20 >Голик С. (GSN) 33 33 56 0 56 3544 21 Mar 2008
21 >Dr. Snickers (DrSnickers) 23 57 46 8 54 1155 21 Mar 2008
22 >Дубовик Н.Р. (Hope) 20 30 44 9 53 3055 21 Mar 2008
23 >Лексиков Н.А. (nik_) 25 34 53 0 53 3064 21 Mar 2008
24 >Y (poman) 25 26 53 0 53 3742 21 Mar 2008
25 Гжегожевский В.К. (slavik) 27 27 49 3 52 3912 18 Mar 2008
26 Tkalich (Svitlana) 23 38 51 0 51 2595 20 Mar 2008
27 >Вильданов Р.Э. (Rust_v) 28 28 50 0 50 4122 21 Mar 2008

Изучаем SQL

Переименование базы данных в SQL Server

decipherinfosys (оригинал: 5 things every SQL developer should know like the back of their hand... )
Перевод Моисеенко С.И.

В одной из наших предыдущих публикаций в блоге мы показали, как переименовать объекты в SQL Server. Сегодня мы покажем, как можно переименовать базу данных в SQL Server. Чтобы переименовывать базу данных, мы должны сначала перевести ее в однопользовательский режим. Давайте начнем с создания тестовой базы данных. Подключите Query Analyzer или Management Studio к серверу и выполните следующую команду для создания базы данных.

 

USE MASTER
GO
CREATE DATABASE MY_TEST
GO

 

Мы создали базу данных в ее самой простой форме. Один файл данных и один файл журнала транзакций будут созданы в каталоге, принимаемом по умолчанию. Мы можем проверить это с помощью хранимой процедуры sp_helpfile. Теперь с помощью хранимой процедуры sp_renamedb мы переименуем нашу базу данных. Так как мы создали базу данных только что, нет никакой необходимости переводить ее в однопользовательский режим, однако мы все же сделаем это, чтобы избежать любых возможных ошибок.

 

EXEC sp_dboption 'MY_TEST', 'single user', 'TRUE'
EXEC sp_renamedb 'MY_TEST', 'NEW_TEST'
EXEC sp_dboption 'NEW_TEST', 'single user', 'FALSE'

 

Каждая команда здесь говорит сама за себя. В первой строке мы переводим базу данных в однопользовательский режим. Во второй переименовываем базу данных. Так как имя базы данных уже изменено, в третьей строке мы используем новое имя базы данных, чтобы вернуть ее в многопользовательский режим. Мы можем даже написать маленькую хранимую процедуру, которая будет иметь два аргумента (старое имя базы данных и новое имя базы данных) и выполнять те же самые действия внутри хранимой процедуры. Это работает и для SQL Server 2000, и для SQL Server 2005. Мы можем проверить информацию о новой базе данных с помощью команды sp_helpdb.

Однако в SQL Server 2005 Microsoft предупреждает, что sp_renamedb может исчезнуть в будущих версиях и рекомендует использовать команду ALTER DATABASE. Хотя еще не решено, в которой версии хранимая процедура sp_renamedb будет отправлена на заслуженный отдых. Ниже приведен синтаксис команды ALTER DATABASE для переименования базы данных. Поскольку мы уже изменили название базы данных в нашем предыдущем эксперименте, вернем базе данных ее оригинальное имя.

 

ALTER DATABASE NEW_TEST MODIFY NAME = MY_TEST

 

Эта команда также переименует базу данных, дав ей имя, заданное в предложении MODIFY NAME. Чтобы переименовывать базы данных, нужно иметь привилегию фиксированной серверной роли sysadmin или dbcreator.

24-10-2007

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

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

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

Контакты

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

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

В избранное