вторник, 29 марта 2011 г.

Основы SQL – DML – SELECT – Часть II

В прошлый раз в этой серии статей я рассказал об операторе “SELECT” в самом простом его проявлении – запросы к одной таблице, без сложных фильтров. Теперь я расскажу о более интересной, но сложной теме – многотабличных запросах.

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

Многотабличные запросы без JOIN

Хотя в более ранних версиях Microsoft SQL Server многотабличные запросы без “JOIN” были более распространены, теперь они используются все реже и реже. И это, с моей точки зрения, правильно. Использование “JOIN” приводит, как минимум, к более структурированному и читаемому коду (что мы увидим чуть позже), а на символах в исходном коде я никогда не экономил :)

Самый простой вариант многотабличного запроса – это двухтабличные запрос без условия соединения таблиц или декартово произведение таблиц. И это, пожалуй, единственный вариант, когда от отсутствия “JOIN” не страдает наглядность:

SELECT * FROM Persons, Phones

суббота, 19 марта 2011 г.

Основы SQL – DML – SELECT – Часть I

Продолжаю серию статей “Основы SQL”. В этой статье я расскажу про сравнительно простые варианты применения самого сложного оператора DML – SELECT. Если в начале статьи дать полный синтаксис SELECT – это будет серьезным поводом загрустить и не читать статью дальше, поэтому я буду рассказывать про возможности этого оператора постепенно :)

Простейший случай

Позволю себе немного дополнить статью MSDN о SELECT тем, что данный оператор может использоваться не только для "выборки одной или нескольких строк или столбцов из одной или нескольких таблиц", но и для получения набора данных, не имеющего в своей основе ни одной таблицы:

SELECT 1 AS ID, 'Test 1' AS Name

Разумеется, в итоге результат выглядит как выборка из некоторой таблицы (если мы не будем использовать специальные конструкции для получения результата в виде XML).

Если одной строки недостаточно, можно использовать несколько запросов, объединенных с помощью UNION ALL. Если не использовать “ALL” в этой конструкции, в результате гарантированно не будет дублирующихся строк. Это тоже бывает полезно, но, если вы точно знаете, что дубликатов и так не будет, лучше использовать “UNION ALL”, чтобы уменьшить накладные расходы.

понедельник, 14 марта 2011 г.

Облачные хранилища файлов – личный опыт

Решил, для разнообразия, написать на тему организации рабочего места. Наверняка у многих есть потребность в хранении и синхронизации файлов с помощью, как это модно сейчас говорить, облачного хранилища. Речь не про Azure и иже с ним, а про такие сервисы хранения файлов как DropBox, SkyDrive и т.п.

Лично я использую их для синхронизации своих заметок, паролей (естественно, зашифрованных), полезных SQL-скриптов и т.п. Удобно иметь актуальные версии и дома, и на работе и в смартфоне.

В этой короткой статье расскажу про свой местами многолетний, а местами практически нулевой опыт работы с некоторыми из них.  Если кто-то дополнит пробелы в моих знаниях, буду премного благодарен.