Иллюстрированный самоучитель по SQL для начинающих

Десять советов по извлечению данных

Внимательно относитесь к ограничениям предложения GROUP BY

Предположим, вам нужен список самых результативных хиттеров (игроков с битой) Национальной лиги. Проанализируйте следующий запрос:

SELECT Player, Team, Homers
FROM NATIONAL
WHERE Homers >= 2 0
GROUP BY Team;

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

SELECT Player, Team, Homers
FROM NATIONAL
WHERE Homers >= 20
GROUP BY Team, Player, Homers;

Так как все столбцы, которые вы хотите отобразить, указаны в предложении GROUP BY, то запрос выполнится успешно и выведет те результаты, которые вам нужны. Благодаря этой формулировке полученный список будет сперва отсортирован по полю Team, затем по полю Player и Homers.

Используйте круглые скобки с ключевыми словами AND, OR и NOT

Когда AND и OR используются вместе, SQL иногда не обрабатывает выражение в том порядке, который вы ожидаете. Чтобы полученный результат был тем, на который вы рассчитываете, используйте круглые скобки. Несколько лишних щелчков на кнопках – это достаточно низкая цена, которую следует заплатить за более достоверные результаты. Кроме того, круглые скобки помогают сделать так, чтобы ключевое слово NOT применялось именно необходимому к терму или выражению.

Управляйте полномочиями на получение данных

Многие люди не пользуются средствами безопасности, которые имеются в их СУБД. Они не хотят возиться с этими возможностями, считая, что с их данными не может случиться ничего плохого. Не играйте с огнем, иначе останетесь на пепелище. Установите и поддерживайте безопасность для всех объектов баз данных, имеющих хотя бы малейшую ценность.

Регулярно выполняйте резервное копирование своих баз данных

Если ваш жесткий диск был разрушен скачком напряжения в сети, огнем, землетрясением или в результате минометного обстрела, то получить данные с этого диска будет нелегко. Поэтому чаще делайте резервные копии и убирайте носители в сухое прохладное место. Что считать безопасным местом, зависит от того, насколько важными являются ваши данные. Им может быть несгораемый сейф, находящийся в той же комнате, что и компьютер, или другое здание. Удобнее всего для этих целей использовать бетонный бункер, выдолбленный в скале и укрепленный настолько, что может выдержать ядерное нападение. Какой уровень безопасности нужен вашим данным – это уже решать вам.

Предусмотрите достойный выход из ошибочных ситуаций

Делаете ли вы одноразовые запросы с консоли или вставляете запросы в приложение, но время от времени SQL вместо нужных вам результатов выдает сообщение об ошибке. Работая с консоли, вы на основе полученного сообщения можете решить, что же вам делать, а затем выполнить нужное действие. Что касается приложения, то здесь другая ситуация. Пользователь приложения, вероятно, не знает, какое действие является правильным. Поэтому организуйте в своем приложении всеохватную обработку ошибок. Это нужно, чтобы не пропустить ни одной мыслимой ошибки, которая только может возникнуть. Создание кода обработки ошибок потребует больших усилий, но это лучше, чем заставлять пользователя недоуменно смотреть на "зависший" экран.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.