Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru) 190
Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 190 (17 мая 2008 г.)
Новым посетителям сайта
Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения
состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.
Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается сейчас после решения 57-ти задач первого этапа. При подсчете рейтинга каждого участника
отбрасывается один самый худший показатель среди всех решенных им упражнений.
Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов, которые пригодятся на третьем рейтинговом этапе, который начинается после 138 задачи.
Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.
Новости сайта
§ Уважаемые коллеги.
Приглашаем вас на семинар Russian SQL Server User Group, который состоится 21 мая с.г. в аудитории 501 факультета высоких технологий Южного Федерального Университета по адресу Ростов-на-Дону, ул.Мильчакова, 10. С докладами на семинаре выступят Николай Денищенко и Ян Либерман, Microsoft Most Valueable Professionals. В мае этого года Николай и Ян были признаны лучшими докладчиками на конкурсе User Groups-2008. В программе семинара:
Как снизить риск сетевой атаки на SQL Server. Демонстрация. Николай Денищенко, Ян Либерман - 60 мин. Перерыв - 15 мин. Некоторые вопросы шифрования в SQL Server. Ян Либерман - 60 мин. Перерыв - 15 мин. Дешифрование и защита серверного кода. Николай Денищенко - 45 мин. Extensible Key Management (EKM) в SQL Server 2008. Николай Денищенко - 45 мин.
Зарегистрироваться на семинар можно здесь.
Приходите, будет интересно.
§ Выставлена еще одна задача от $erges. Теперь на третьем этапе - 147-я, сложность - 3 балла.
§ Fiolent залатал прореху в проверке задачи 82, которую обнаружил _Bkmz_.
§ К третьему этапу подошел AKudrakov (задач 138, время 36.081).
§ Новые лица в ТОР 100 и вернувшиеся туда: 55. CepbIu (133, 4.683) 60. Angellore (133, 41.388) 91. DeadLock5 (126, 104.088)
§ На этой неделе сертифицированы: OP (A08032524) [BK] - г.Барнаул, Россия Urakovo (A08021620) [BK] - г.Зеленоград, МО, Россия vamp_v (A08031613) [BK] - г.Кривой
Рог, Украина
В одном из предыдущих постов нашего блога мы рассказали о некоторых утилитах командной строки в SQL Server 2005. Одна из таких утилит - SQLCMD. Это замена для утилит командной строки osql и isql, которые существовали изначально в SQL Server. Они все еще доступны, но исчезнут в будущем, поэтому вместо них рекомендуется использовать SQLCMD. Мы касались использования SQLCMD, когда мы объясняли
особенности DAC в SQL Server 2005.
Давайте начнем с выполнения некоторых команд, чтобы показать, как можно использовать SQLCMD.
В предшествующих выпусках мы использовали параметр -L для утилиты osql, чтобы узнать все экземпляры SQL Server, которые доступны в данной среде. То же самое может быть сделано также с помощью SQLCMD. Иллюстрация 1 ниже показывает результат выполнения команды.
Рис.1
Кроме того, Вы можете видеть различные опции командной строки, которые имеются у этой утилиты. Давайте выполним подключение, используя Windows Authentication. Как видно на рисунке ниже, мы подключились к локальному экземпляру, используя Windows Authentication, а затем выполнили команду, чтобы получить список всех баз этого экземпляра, после чего переключили контекст на базу данных DECIPHER_TEST. Это поведение, аналогичное osql.
Рис.2
Теперь можно выполнить любой запрос точно так же, как это можно было бы сделать в SSMS (Студия Управления Сервера SQL). Необходимо использовать разделитель команд, "GO", чтобы передать пакет команд (это может быть одна команда или больше) движку БД для выполнения. Чтобы выйти из режима выполнения, Вы можете просто напечатать "exit" и нажать перевод каретки. Это переведет вас из оболочки SQLCMD назад в командную строку.
Точно так же, как Вы делали это в OSQL или ISQL, Вы можете использовать эту утилиту командной строки, чтобы написать ваш пакет или командные файлы, чтобы принять на входе файл в формате SQL, который содержит команды, и вывести данные во внешний файл. Пример:
Эта утилита имеет много новых возможностей по сравнению с предыдущей osql-версией. Вы можете обратиться к BOL для получения объяснений полного списка опций командной строки. Здесь же мы пробежимся по некоторым, наиболее важным из них:
1) Использование редактора:
Имея в виду тот же самый пример, что и выше, предположим, что в интерактивном режиме, я написал:
select name from sys.databases
Затем я хочу изменить эту команду. Тогда я могу написать:
:ED
и после ввода, я получу редактор по умолчанию.
Рис.3
В случае, если вам не нравится этот редактор, вы можете заменить его, скажем, на notepad.exe, выполнив следующую команду из командной строки:
C:\>set SQLCMDEDITOR=notepad.exe
Теперь, когда Вы выполняете ":ED" из оболочки SQLCMD, то переходите в редактор блокнота. Также существуют другие опции форматирования (опции настройки автозапуска, использующие SQLCMDINI, настройка таймаута, разделители колонки и т.д.), с которыми вы можете поэкспериментировать, чтобы настроить работу так, как вам удобно.
(Окончание следует...)
Полезная информация
§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.
По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77[@]yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.