Простые SQL запросы - короткая справка и примеры. SQL запрос: группировка записей

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

Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» - пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.

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

1. Workbench

Первое место, по праву принадлежит инструменту Workbench (разработка компании Sun Systems/Oracle), который может работать на платформах Microsoft Windows, Mac OS X и Linux. Workbench объединяет в себе разработку и администрирование баз данных и является преемником DBDesigner4.

MySQL Workbench распространяется под свободной лицензией - Community Edition и с ежегодной оплачиваемой подпиской - Standard Edition. Последняя включает в себя дополнительные возможности, которые способны существенно улучшить производительность, как разработчиков, так и администраторов баз данных.

Стоимость - бесплатно.

Что делает Workbench популярным?

  • возможность представить модель БД в графическом виде, а также редактирование данных в таблице;
  • наличие простого и функционального механизма по созданию связей между полями таблиц, среди которых реализована связь «многие-ко-многим» с возможностью создания таблицы связей;
  • функция Reverse Engineering позволяет восстанавливать структуру таблиц и связей из той, которая была реализована ранее и хранится на сервере БД;
  • наличие редактора SQL-запросов, который дает возможность при отправке на сервер получать ответ в табличном виде и другие возможности.

2. Navicat

Второе место занимает Navicat (разработка компании PremiumSoft CyberTech Ltd) - инструмент для разработки и администрирования баз данных, который работает на любом сервере MySQL, начиная с версии 3.21. Для MySQL, Navicat доступен для работы на платформах Microsoft Windows, Mac OS X и Linux.

Стоимость продукта варьируется от 199 до 379 долл. США.

Что делает Navicat популярным?

  • наличие визуального конструктора запросов;
  • возможность импорта, экспорта и резервного копирования данных;
  • возможность создавать отчеты;
  • SSH и HTTP туннелинг;
  • миграция и синхронизация данных и структуры;
  • инструмент для планирования задач и другие возможности.

3. PHPMyAdmin

PHPMyAdmin - бесплатное приложение с открытым кодом, предназначенное для администрирования СУБД MySQL. PHPMyAdmin представляет собой веб-интерфейс с помощью которого можно администрировать сервер MySQL, запускать команды и просматривать содержимое таблиц и БД через браузер.

Стоимость - бесплатно.

Что делает PHPMyAdmin популярным?

  • возможность управлять СУБД MySQL без непосредственного ввода SQL команд;
  • как панель управления PHPMyAdmin предоставляет возможность администрирования выделенных БД;
  • интенсивное развитие;
  • возможность интегрировать PHPMyAdmin в собственные разработки благодаря лицензии GNU General Public License и другие возможности.

4. dbForge Studio for MySQL

dbForge Studio for MySQL - инструмент, представляющий интерес как для пользователей MySQL, так и для разработчиков БД. С его помощью вы сумеете легко автоматизировать рутинную работу и сэкономить время. Сегодня dbForge Studio for MySQL представлен в трех редакциях: Express, Standard и Professional, что позволяет выбрать тот инструмент, который нужен именно вам. Пользоваться dbForge Studio for MySQL можно как коммерческой, так и бесплатной версией.

Существует как бесплатная, так и платная версии, цена последней составляет 49,95 долл. США (стандартное издание) и 99,99 долл. США (профессиональное издание).

Что делает dbForge Studio популярным?

  • наличие средств для централизованного администрирования;
  • инструменты для сравнения БД;
  • визуальный профилировщик запросов;
  • возможность управлять привилегиями пользователей;
  • наличие Дизайнера БД, который позволяет строить визуальные диаграммы;
  • улучшенная работа с проектами БД и другие возможности.

5. HeidiSQL

HeidiSQL - бесплатный инструмент для управления базами данных. Достойная альтернатива PHPMyAdmin, которая позволяет создавать и редактировать таблицы, представления, триггеры, процедура, а также просматривать и редактировать данные. Также HeidiSQL предоставляет возможность экспорта данных как в SQL файл, так и в буфер обмена на других серверах.

Стоимость - бесплатно.

Что делает HeidiSQL популярным?

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

6. SQL Maestro для MySQL

SQL Maestro для MySQL - инструмент для администрирования, разработки и управления наиболее востребованных СУБД. Удобный графический интерфейс дает возможность выполнять SQL запросы и скрипты, управлять привилегиями пользователей, экспортировать и создавать резервные копии данных.

В зависимости от выбранной лицензии и варианта использования, стоимость данного инструмента варьируется от 99 до 1949 долл. США.

Что делает SQL Maestro для MySQL популярным?

  • поддержка версий MySQL сервера с версии 3.23;
  • наличие конструктора баз данных;
  • возможность редактирование, группировки, сортировки и фильтрации данных;
  • визуальный конструктор запросов;
  • SSH и HTTP туннелинг;
  • BLOB-редактор и другие возможности.

7. EMS SQL Manager для MySQL

EMS SQL Manager для MySQL - инструмент для разработки и администрирования баз данных, который поддерживает различные функции MySQL и работает со всеми версиями MySQL старше 3.23. С его помощью у вас есть возможность визуально редактировать, импортировать и экспортировать БД, выполнять сценарии SQL, управлять привилегиями пользователей, визуально проектировать базы данных MySQL.

Существует платная и бесплатная версии приложения. Последняя имеет ряд функциональных ограничений. Стоимость платной версии варьируется в пределах 95 – 245 долл. США.

Что делает EMS SQL Manager for MySQLпопулярным?

  • поддержка данных UTF8;
  • простое управление различными объектами MySQL;
  • совместимость со всеми версиями с 3.23 по 6.0 включительно;
  • наличие графических и текстовых инструментов для формирования запросов;
  • SSH и HTTP туннелинг;
  • удобный конструктор отчетов и другие возможности.

8. SQLyog

SQLyog - один из наиболее мощных инструментов, который сочетает в себе возможности MySQL Administrator, PHPMyAdmin и некоторые другие инструменты для администрирования и разработки баз данных. SQLyog работает на платформах Microsoft Windows, Windows NT. и Linux с помощью Wine.

Доступна как бесплатная, так и платная версия SQLyog. Стоимость платной версии - от 99 до 1499 долл. США (варьируется в зависимости от количества пользователей и лицензии, с поддержкой или без нее).

Что делает SQLyog популярным?

  • удобный конструктор запросов;
  • возможность синхронизации данных;
  • поддержка юникода;
  • SSH и HTTP, HTTPS туннелинг;
  • «умное» автозавершение работы;
  • интеллектуальное дополнение кода и другие возможности.

9. DBTools Manager

DBTools Manager - приложение для управления данными, с встроенной поддержкой MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle и других БД. Поддерживаемые платформы: Windows 2000, XP, Vista, 7.

DBTools Manager представлен в бесплатном (Standard) и платном варианте (Enterprise). Стоимость составляет 69.90 долл. США за одну лицензию, при покупке нескольких лицензий предусмотрены скидки.

Подробнее ознакомиться и приобрести DBTools Manager можно здесь

«» — это единая универсальная среда для доступа, настройки и администрирования всех компонентов MS SQL Server, а также для разработки компонентов системы, редактирования текстов запросов, создания скриптов и пр. Благодаря наличию большого количества визуальных средств управления, «Среда SQL Server Management Studio » позволяет выполнять множество типовых операций по администрированию MS SQL Server администраторам с любым уровнем знаний SQL Server. Удобная среда разработки, встроенный веб-браузер для быстрого обращения к библиотеке MSDN или получения справки в сети, подробный учебник, облегчающий освоение многих новых возможностей, встроенная справка от сообществ в Интернете и многое другое позволяют максимально облегчить процесс разработки в среде SQL Server, а также дает богатые возможности для создания различных сценариев SQL Server. Об установке и запуске программы «Среда SQL Server Management Studio » и пойдет речь в данной статье.

1. Установка программы «Среда SQL Server Management Studio»

Программа «Среда SQL Server Management Studio » поставляется вместе с дистрибутивом MS SQL Server. Для ее установки необходимо отметить компоненты

  • Средства управления - основные (Management Tools - Basic)

на странице выбора компонент программы установки MS SQL Server.

Подробно про установку компонент MS SQL Server я писал в статье .

2. Запуск программы «Среда SQL Server Management Studio»

По умолчанию файлы программы «SQL Server Management Studio » устанавливаются в «C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\Management Studio\». Для запуска «SQL Server Management Studio » следует запустить исходный файл Ssms.exe , находящийся в данной директории.

Также в Microsoft Windows Server 2012 (R2) ярлык для запуска «SQL Server Management Studio » можно найти в списке всех программ.

А в Microsoft Windows Server 2008 (R2) в меню «Пуск » (Start) — «Microsoft SQL Server 2012 » — «Среда SQL Server Management Studio ».

После запуска программа предложит ввести имя SQL сервера, к которому следует выполнить подключение, а также данные для авторизации на этом сервере. Строку соединения с сервером необходимо вводить в формате:

  • <АдресСервера > — имя или IP адрес сервера для экземпляра по умолчанию
  • <АдресСервера >\<ИмяЭкземпляра > — для именованного экземпляра SQL Server
  • <ИмяПсевдонима > — если применяются SQL Server

В случае проверки подлинности Windows (Windows Authentication), используются данные текущей учетной записи Windows. Если необходимо использовать учетные данные другого пользователя, то необходимо и программу запустить . В случае использования проверки подлинности SQL Server (SQL Server Authentication), необходимо ввести имя пользователя и пароль существующего пользователя SQL Server.

Введя имя экземпляра сервера и данные для авторизация необходимо нажать «Соединить » (Connect) для подключения к выбранному SQL серверу.

13.09.2016 Тим Форд

Как заполнить и использовать базовый набор функций окна зарегистрированных серверов в среде SSMS

Многим администраторам базы данных SQL Server приходится иметь дело со средой SQL Server Management Studio (SSMS) чаще, чем с собственной средой. Удивительно, как много специалистов, с которыми мне приходилось общаться, не задействуют компоненты SSMS, которые я широко применяю в повседневной практике, или используют не весь их потенциал. Я уже рассматривал этот вопрос в своих публикациях об обозревателе шаблонов (в частности, в статье «Открытие обозревателя шаблонов в среде SSMS», опубликованной в этом же номере журнала). А теперь пришло время уделить внимание другому компоненту - зарегистрированным серверам.

Окно зарегистрированных серверов

Окно Registered Servers («Зарегистри­рованные серверы») открывается из меню SSMS в разделе View («Вид») или с помощью комбинации клавиш Cntl + Alt + G (см. экран 1). Оно имеет такой вид до того, как в него вносятся какие-либо изменения, рассматриваемые в данной статье.

Экран 1. Окно Registered Servers

Давайте посмотрим, как изначально выглядит окно. Наверху находятся четыре значка, под которыми расположены три узла. Значок развертывания «+» отсутствует, если ранее данный компонент не использовался. Поэтому на него можно не обращать внимания. Узел Local Server Groups («Группы локальных серверов») и узлы Central Management Servers («Центральные серверы управления») становятся расширяемыми по мере добавления элементов, как будет показано ниже.

Это окно, как все остальные в SSMS, может быть зафиксировано в постоянно открытом состоянии или автоматически скрываться, в зависимости от значка булавки в правом верхнем углу. Окно можно закрыть в любое время, щелкнув значок X. Важно помнить, что в результате вам не грозит потеря зарегистрированных серверов. Добавленные элементы сохраняются и в случае закрытия приложения. Эти настройки будут потеряны только в том случае, если будет удалена среда SSMS или произойдут иные катастрофические события (форматирование диска, переустановка операционной системы и т. д.).

Четыре значка в верхней части окна зарегистрированных серверов обозначают различные типы зарегистрированных серверов, которые можно хранить и использовать в среде Management Studio.

1. Database Engine («Ядро базы данных»)

Это зарегистрированные серверы, которые используются в повседневной работе администраторами баз данных и в некоторой степени инженерами и разработчиками баз данных. Часто это наиболее посещаемый из четырех видов серверов, которые могут быть зарегистрированы. Именно здесь выполняется основная работа внутри SSMS.

2. Analysis Services

Это зарегистрированные серверы Analysis Services, к которым часто обращаются разработчики средств бизнес-аналитики SQL Server. Обратите внимание, что эти зарегистрированные серверы полностью независимы от серверов в категории Database Engine. То же самое относится к остальным категориям, которые будут рассмотрены в следующих статьях серии.

3. Reporting Services

Как следует из названия, это зарегистрированные экземпляры службы отчетов SQL Server Reporting Services (SSRS). Можно предположить, что они будут перечислены как в разделе Database Engine, так и здесь. Элементы в Database Services обеспечат администрирование базового экземпляра Microsoft SQL Server, на котором размещается SSRS, а при размещении в этой категории вам предоставляются варианты для работы напрямую с компонентами SSRS.

4. Integration Services

Последняя категория - серверы SQL Server Integration Services (SSIS). По примеру предыдущих категорий, эти элементы относятся к аспектам серверов SQL Server в вашей среде, связанным со службами Integration Services. Возможности элементов категории ориентированы на бизнес-аналитику этих экземпляров, а не основные административные функции SQL Server для узлов, на которых они размещены.

Внимание на Database Engine

В этой статье мы остановимся на самой популярной из четырех категорий - Database Engine.

Зарегистрированные серверы не представляют ценности без добавления серверов, поэтому сначала нужно пройти этот процесс. Заполнение данного окна - именно то, чего можно ожидать от графического интерфейса пользователя, спроектированного Microsoft. Добавление экземпляров, перемещение экземпляров, удаление экземпляров и категоризация - основные операции заполнения и поддержания целостности зарегистрированных серверов в среде SSMS. Ниже каждая из них рассматривается в подробностях.

Добавление экземпляра

Подключаясь к экземпляру SQL Server в обозревателе объектов или через создание нового запроса в SSMS, вы проходите тот же процесс регистрации экземпляра в окне зарегистрированных серверов. Единственное различие состоит в том, что информация о регистрации сохраняется для повторного использования. Важно отметить следующее: одно лишь то, что вы создали элемент Registered Server, не означает, что открывается подключение к этому экземпляру. Вы просто сохраняете критерии, благодаря которым процесс подключения к экземпляру в обозревателе объектов или новый запрос значительно ускоряются.

Сначала щелкните Local Server Group («Локальная группа серверов») и выберите New Server Registration («Регистрация нового сервера») из всплывающего меню. Откроется окно приветствия, похоже на то, которое используется при подключении к экземпляру SQL Server в обозревателе объектов или в окне запроса (см. экран 2).

Экран 2. Окно регистрации нового сервера

В первую очередь нужно выбрать экземпляр SQL Server, который предстоит зарегистрировать. Если вы намерены использовать функции раскрывающегося меню в графическом интерфейсе, то придется ждать, пока рабочая станция запрашивает сеть обо всех узлах, объявивших себя экземплярами SQL Server. Здесь я вручную ввожу имя сервера.

Обратите внимание: если вы намерены подключиться к определенному порту на экземпляре SQL, но не к порту по умолчанию 1433, то применяйте следующий синтаксис (не используйте символы):

,

Вы также можете зарегистрировать сервер с его IP-адресом, а не записью DNS или CNAME.

Кроме того, не забывайте имя экземпляра при подключении к именованному экземпляру:

\

Выбор метода проверки подлинности достаточно прост, у вас есть только два варианта:

  • проверка подлинности Windows;
  • проверка подлинности SQL Server.

Если выбрать SQL Server Authenti­cation, то диалоговое окно слегка изменится и будет содержать текстовые поля для имени пользователя и пароля. Заметьте, что, когда сделан соответствующий выбор, устанавливается флажок Remember password («Запомнить пароль»). Как правило, я использую проверку подлинности Windows при любой возможности. Однако в ходе тестирования задействованы зарегистрированные серверы, подключаемые с другими правами, нежели у моего сетевого имени пользователя, и его широчайшие привилегии sysadmin. Это удобно, если нужно увидеть, каким образом конечный пользователь сможет взаимодействовать с базой данных и в каких случаях его права ограничивают возможности работы в среде. Также имейте в виду, что один сервер можно зарегистрировать много раз в окне Registered Servers. Обратите внимание, что при использовании проверки подлинности SQL Server в режиме с запоминанием пароля появляется уязвимое место, так как комбинация имени пользователя и пароля сохраняется в файле на вашей рабочей системе, путь к которому - общий для всех установок SQL Server Management Studio. По этой причине я почти никогда не устанавливаю флажок Remember password.

У вас может возникнуть вопрос, в чем же различие между значениями Server name («Имя сервера») и Registered server name («Имя зарегистрированного сервера») в этом диалоговом окне.

Эта функция позволяет различать способ подключения к экземпляру SQL Server и обычный метод обращения к SQL Server. Вспомните свою повседневную работу с SQL Server. Возможно, у вас есть сервер с труднозапоминаемым именем экземпляра, таким как DSC8675309 a\jennyjenny, который ведет широковещательную передачу через порт 5543. Однако вы и все сотрудники компании называют его просто «компьютер бухгалтерии», Accounting Box. Если вы введете данные в диалоговом окне, как показано на экране 3, после сохранения вы увидите соответствующую запись в окне Registered Servers в среде SSMS (см. экран 4).

Экран 3. Указание конкретного сервера
Экран 4. Соответствующая запись в окне Registered Servers

Трудное для запоминания длинное имя экземпляра, которое даже нельзя полностью показать в диалоговом окне New Server Registration («Регистрация нового сервера»), теперь представлено в гораздо более понятном и узнаваемом формате в окне Registered Servers.

Возможно, вы заметили, что здесь уже присутствует элемент Local Instance («Локальный экземпляр»). Я заранее заполнил окно, чтобы вы могли увидеть разницу между сервером, ведущим широковещательную передачу, и сервером, который этого не делает. Это не означает, что вы установили подключение; это означает только то, что сервер работает и ведет широковещательную передачу.

Что можно сказать о другой вкладке в диалоговом окне New Server Registration - Connection Properties («Свойства подключения»)? Подробности можно узнать, щелкнув правой кнопкой элемент Account Box и выбрав Properties («Свойства») из доступных вариантов (см. экран 5).

Эта вкладка позволяет подключаться к определенной базе данных после использования окна зарегистрированных серверов, чтобы открыть экземпляр в обозревателе объектов или в новом окне запроса. Кроме того, можно назначить сетевой протокол, размер пакета, тайм-аут как для подключений, так и для выполнения запросов, а также параметры зашифрованного сеанса для многократного использования. Обычно я не использую эти настройки, однако применяю один пока не упомянутый параметр, Use custom color («Использовать особый цвет»).

Этот параметр полезен как дополнительная предосторожность против ошибки, которой всегда боятся специалисты по обработке данных, - подключения к производственной системе вместо тестовой и запуска вредного запроса (например, TRUNCATE TABLE). Если назначить серверу особый цвет, то при каждом подключении к этому экземпляру в среде SSMS в окне запроса будет отображаться наглядное указание, что вы подключаетесь к производственному (я выбрал красный цвет), промежуточному, или учебному (особый цвет - синий), или тестовому (особый цвет - зеленый) экземпляру. Меняется цвет полоски в нижней части окна запроса, а также вкладки для нового запроса. Конечно, вы можете выбрать наиболее удобный для себя вариант, а в качестве примера я привожу свой локальный экземпляр, окрашенный желтым (см. экран 6).

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

Экран 7. Контекстное меню записи о сервере

Наиболее широко распространенные функции из применяемых мною (скорее всего, вы также ими воспользуетесь) - первые две: New Query («Создать запрос») и Object Explorer («Обозреватель объектов»). С помощью первой из них открывается окно создания запроса с двумя параметрами сеанса (если сервер доступен и имеется соответствующее имя пользователя и учетные данные на экземпляре SQL Server). С помощью второй функции в обозревателе объектов открывается экземпляр SQL Server с этими учетными данными (с теми же оговорками).

Параметр View SQL Server Log («Просмотр журнала SQL Server») позволяет запустить журнал SQL Server для указанного экземпляра, не открывая экземпляр в обозревателе объектов, а затем перейти по развернутому древовидному представлению к Management («Управление») и далее, чтобы запустить его. Обычно вы обращаетесь к журналу SQL Server по важным поводам, и таким образом это удается сделать быстрее.

Кроме того, имеются параметры управления на основе политик Policy Based Management (PBM) для оценки и импорта политик PBM и - если имеются соответствующие права - можно управлять службами SQL Server и открыть диспетчер настройки на локальном экземпляре.

Мы уже рассматривали, что происходит при выборе пункта Properties, поэтому на секунду обратимся к роковой функции Delete («Удалить»). Не бойтесь: выбор этой функции не приведет к удалению SQL Server или какого-либо из компонентов. Удаляется только запись о Registered Servers из среды SSMS. Ее можно вернуть в любой момент, и никаких мер не предпринимается против экземпляра SQL Server, представленного в этой записи.

Категоризация экземпляров

На мой взгляд, эта функция не менее ценна, чем возможность быстро подключиться к экземпляру в обозревателе объектов или окне создания запроса, не запоминая неудобные имена серверов и пароли. Представьте себе среду с несколькими экземплярами SQL Server, разнесенными по пространствам TEST и PROD. В качестве примеров используются Accounting («Бухгалтерия») и Manufacturing («Производство»). Начните, щелкнув правой кнопкой мыши Local Server Group («Локальная группа серверов»), как делали ранее, когда выбирали New Server Registration («Регистрация нового сервера») из доступных вариантов во всплывающем меню. В отличие от New Server Registration, на этот раз мы выберем из доступных вариантов New Server Group («Создание группы серверов»). В результате появляется диалоговое окно, показанное на экране 8.


Экран 8. Создание группы серверов

Используя заявленный выше сценарий, предположим, что в наших средах имеются следующие серверы и нужно разделить их между группами PROD и TEST:

  • Accounting Department (Бухгалтерия)
  • Manufacturing Department (Производственные подразделения)

Manufacturing01

Manufacturing02

  • TestSQL01
  • DevSQL02

Я могу пройти процесс создания четырех групп серверов. Каждая создаваемая группа помещается в узел, на котором вы щелкнули правой кнопкой мыши, выбирая New Server Group.

  • Щелкните правой кнопкой мыши Local Server Groups - Имя группы: PROD.
  • Щелкните правой кнопкой мыши Local Server Groups - Имя группы: TEST.
  • Щелкните правой кнопкой мыши PROD - Имя группы: Accounting Department.
  • Щелкните правой кнопкой мыши PROD - Имя группы: Manufacturing Department.

Теперь можно щелкнуть правой кнопкой мыши на имени группы в Registered Servers и выбрать New Server Registration, а затем пройти по этапам процесса, описанного ранее, чтобы добавить к группам экземпляр SQL. После того как я выполню процедуру для шести описанных выше экземпляров SQL, вид окна Registered Servers будет примерно таким, как показано на экране 9.

Экран 9. Группирование серверов

В первую очередь это удобный и понятный для меня визуальный метод классификации экземпляров SQL Server в моей среде, содержащей сотни экземпляров. Кроме того, один сервер можно отнести к разным категориям. Например, я могу добавить другую группу в Local Server Groups, именуемую Accounting, а затем зарегистрировать в ней все серверы бухгалтерии: производственные, тестовые, промежуточные и т. д. Допускается многоуровневое вложение экземпляров; их можно регистрировать несколько раз в различных структурах безопасности.

Теперь несколько слов о том, почему мне так нравятся параметры группирования. Можно применить один запрос ко всем экземплярам, зарегистрированным в одной группе!

Например, я применяю изменение ко всем серверам SQL группы Accounting (см. пример выше). Можно щелкнуть правой кнопкой мыши на имени группы (Accounting) и выбрать New query («Создать запрос») из доступных функций. Открывается одно окно запроса, связанное со всеми серверами в этой группе. Затем можно применить запрос ко всем серверам одновременно. Команда выдается одновременно, а не последовательно, поэтому ее выполнение не подвержено сбоям для всех или последующих экземпляров в случае отказа первого из них (например, из-за несоответствия схем).

Для иллюстрации я выполнил следующую команду на всех экземплярах, находящихся в группе серверов TEST:

SELECT COUNT () AS database_ count FROM sys.databases;

По экрану 10 можно судить о соответствующих результатах:

  1. В строке состояния в нижней части экрана будет показано имя группы серверов.
  2. Также показано (в усеченном виде из-за размеров изображения) число активно подключенных экземпляров. Если сервер в группе недоступен, то он подключается к остальным серверам в группе и просто показывает X/# подключенных серверов.
  3. Результаты возвращаются без определенного порядка, но при этом указывается имя соответствующего зарегистрированного сервера. Помните, что это не обязательно Server Name. Если вы хотите получить имя сервера, то можно изменить запрос, введя в него @@SERVERNAME в инструкции SELECT.

Как я уже говорил, мне нравится эта функция. Я постоянно использую ее, особенно при передаче новых сценариев на многочисленные серверы или при одновременной установке нескольких новых серверов SQL Server. Это невероятно эффективное средство экономии времени.

Перемещение экземпляра

Предположим, что вы хотите разместить компьютер Manufacturing02 в категории TEST, потому что в действительности это не производственный сервер. Для этого достаточно щелкнуть мышью на записи о сервере и выбрать пункт Tasks («Задачи»), а затем Move («Переместить») из списка доступных функций. Затем можно выбрать узел, на который следует выполнить перемещение (в данном примере TEST), и нажать кнопку OK. Хотелось бы, чтобы в следующей версии SSMS это действие можно было выполнить просто перетаскиванием. Но пока процесс выглядит таким образом.

Итак, в этой статье я показал, как заполнить и использовать базовый набор функций окна зарегистрированных серверов в среде SQL Server Management Studio. В следующих статьях серии речь пойдет о том, как делиться своими записями с коллегами в группе, а также будут рассмотрены вопросы, относящиеся к центральным серверам управления и способам их заполнения, методы работы с иными типами зарегистрированных серверов и другие темы.



Запросы написаны без экранирующих кавычек, так как у MySQL , MS SQL и PostGree они разные.

SQL запрос: получение указанных (нужных) полей из таблицы

SELECT id, country_title, count_people FROM table_name

Получаем список записей: ВСЕ страны и их население. Название нужных полей указываются через запятую.

SELECT * FROM table_name

* обозначает все поля. То есть, будут показы АБСОЛЮТНО ВСЕ поля данных.

SQL запрос: вывод записей из таблицы исключая дубликаты

SELECT DISTINCT country_title FROM table_name

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

SQL запрос: вывод записей из таблицы по заданному условию

SELECT id, country_title, city_title FROM table_name WHERE count_people>100000000

Получаем список записей: страны, где количество людей больше 100 000 000.

SQL запрос: вывод записей из таблицы с упорядочиванием

SELECT id, city_title FROM table_name ORDER BY city_title

Получаем список записей: города в алфавитном порядке. В начале А, в конце Я.

SELECT id, city_title FROM table_name ORDER BY city_title DESC

Получаем список записей: города в обратном (DESC ) порядке. В начале Я, в конце А.

SQL запрос: подсчет количества записей

SELECT COUNT(*) FROM table_name

Получаем число (количество) записей в таблице. В данном случае НЕТ списка записей.

SQL запрос: вывод нужного диапазона записей

SELECT * FROM table_name LIMIT 2, 3

Получаем 2 (вторую) и 3 (третью) запись из таблицы. Запрос полезен при создании навигации на WEB страницах.

SQL запросы с условиями

Вывод записей из таблицы по заданному условию с использованием логических операторов.

SQL запрос: конструкция AND (И)

SELECT id, city_title FROM table_name WHERE country="Россия" AND oil=1

Получаем список записей: города из России И имеют доступ к нефти. Когда используется оператор AND , то должны совпадать оба условия.

SQL запрос: конструкция OR (ИЛИ)

SELECT id, city_title FROM table_name WHERE country="Россия" OR country="США"

Получаем список записей: все города из России ИЛИ США. Когда используется оператор OR , то должно совпадать ХОТЯ БЫ одно условие.

SQL запрос: конструкция AND NOT (И НЕ)

SELECT id, user_login FROM table_name WHERE country="Россия" AND NOT count_comments<7

Получаем список записей: все пользователи из России И сделавших НЕ МЕНЬШЕ 7 комментариев.

SQL запрос: конструкция IN (В)

SELECT id, user_login FROM table_name WHERE country IN ("Россия", "Болгария", "Китай")

Получаем список записей: все пользователи, которые проживают в (IN ) (России, или Болгарии, или Китая)

SQL запрос: конструкция NOT IN (НЕ В)

SELECT id, user_login FROM table_name WHERE country NOT IN ("Россия","Китай")

Получаем список записей: все пользователи, которые проживают не в (NOT IN ) (России или Китае).

SQL запрос: конструкция IS NULL (пустые или НЕ пустые значения)

SELECT id, user_login FROM table_name WHERE status IS NULL

Получаем список записей: все пользователи, где status не определен. NULL это отдельная тема и поэтому она проверяется отдельно.

SELECT id, user_login FROM table_name WHERE state IS NOT NULL

Получаем список записей: все пользователи, где status определен (НЕ НОЛЬ).

SQL запрос: конструкция LIKE

SELECT id, user_login FROM table_name WHERE surname LIKE "Иван%"

Получаем список записей: пользователи, у которых фамилия начинается с комбинации «Иван». Знак % означает ЛЮБОЕ количество ЛЮБЫХ символов. Чтобы найти знак % требуется использовать экранирование «Иван\%».

SQL запрос: конструкция BETWEEN

SELECT id, user_login FROM table_name WHERE salary BETWEEN 25000 AND 50000

Получаем список записей: пользователи, которые получает зарплату от 25000 до 50000 включительно.

Логических операторов ОЧЕНЬ много, поэтому детально изучите документацию по SQL серверу.

Сложные SQL запросы

SQL запрос: объединение нескольких запросов

(SELECT id, user_login FROM table_name1) UNION (SELECT id, user_login FROM table_name2)

Получаем список записей: пользователи, которые зарегистрированы в системе, а также те пользователи, которые зарегистрированы на форуме отдельно. Оператором UNION можно объединить несколько запросов. UNION действует как SELECT DISTINCT, то есть отбрасывает повторяющиеся значения. Чтобы получить абсолютно все записи, нужно использовать оператор UNION ALL.

SQL запрос: подсчеты значений поля MAX, MIN, SUM, AVG, COUNT

Вывод одного, максимального значения счетчика в таблице:

SELECT MAX(counter) FROM table_name

Вывод одного, минимальный значения счетчика в таблице:

SELECT MIN(counter) FROM table_name

Вывод суммы всех значений счетчиков в таблице:

SELECT SUM(counter) FROM table_name

Вывод среднего значения счетчика в таблице:

SELECT AVG(counter) FROM table_name

Вывод количества счетчиков в таблице:

SELECT COUNT(counter) FROM table_name

Вывод количества счетчиков в цехе №1, в таблице:

SELECT COUNT(counter) FROM table_name WHERE office="Цех №1"

Это самые популярные команды. Рекомендуется, где это возможно, использовать для подсчета именно SQL запросы такого рода, так как ни одна среда программирования не сравнится в скорости обработки данных, чем сам SQL сервер при обработке своих же данных.

SQL запрос: группировка записей

SELECT continent, SUM(country_area) FROM country GROUP BY continent

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

SQL запрос: использование нескольких таблиц через алиас (alias)

SELECT o.order_no, o.amount_paid, c.company FROM orders AS o, customer AS с WHERE o.custno=c.custno AND c.city="Тюмень"

Получаем список записей: заказы от покупателей, которые проживают только в Тюмени.

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

SELECT o.order_no, o.amount_paid, z.company FROM orders AS o LEFT JOIN customer AS z ON (z.custno=o.custno)

Вложенные подзапросы

SELECT * FROM table_name WHERE salary=(SELECT MAX(salary) FROM employee)

Получаем одну запись: информацию о пользователе с максимальным окладом.

Внимание! Вложенные подзапросы являются одним из самых узких мест в SQL серверах. Совместно со своей гибкостью и мощностью, они также существенно увеличивают нагрузку на сервер. Что приводит к катастрофическому замедлению работы других пользователей. Очень часты случаи рекурсивных вызовов при вложенных запросах. Поэтому настоятельно рекомендую НЕ использовать вложенные запросы, а разбивать их на более мелкие. Либо использовать вышеописанную комбинацию LEFT JOIN. Помимо этого данного вида запросы являются повышенным очагом нарушения безопасности. Если решили использовать вложенные подзапросы, то проектировать их нужно очень внимательно и первоначальные запуски сделать на копиях баз (тестовые базы).

SQL запросы изменяющие данные

SQL запрос: INSERT

Инструкция INSERT позволяют вставлять записи в таблицу. Простыми словами, создать строчку с данными в таблице.

Вариант №1. Часто используется инструкция:

INSERT INTO table_name (id, user_login) VALUES (1, "ivanov"), (2, "petrov")

В таблицу «table_name » будет вставлено 2 (два) пользователя сразу.

Вариант №2. Удобнее использовать стиль:

INSERT table_name SET id=1, user_login="ivanov"; INSERT table_name SET id=2, user_login="petrov";

В этом есть свои преимущества и недостатки.

Основные недостатки:

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

Основные преимущества:

  • Во время мелких SQL запросов, другие SQL запросы не блокируются.
  • Удобство в чтении.
  • Гибкость. В этом варианте, можно не соблюдать структуру, а добавлять только необходимые данные.
  • При формировании подобным образом архивов, можно легко скопировать одну строчку и запустить ее через командную строку (консоль), тем самым не восстанавливая АРХИВ целиком.
  • Стиль записи схож с инструкцией UPDATE, что легче запоминается.

SQL запрос: UPDATE

UPDATE table_name SET user_login="ivanov", user_surname="Иванов" WHERE id=1

В таблице «table_name » в записи с номером id=1, будет изменены значения полей user_login и user_surname на указанные значения.

SQL запрос: DELETE

DELETE FROM table_name WHERE id=3

В таблице table_name будет удалена запись с id номером 3.

  1. Все названия полей рекомендуются писать маленькими буквами и если надо, разделять их через принудительный пробел «_» для совместимости с разными языками программирования, таких как Delphi, Perl, Python и Ruby.
  2. SQL команды писать БОЛЬШИМИ буквами для удобочитаемости. Помните всегда, что после вас могут читать код и другие люди, а скорее всего вы сами через N количество времени.
  3. Называть поля с начала существительное, а потом действие. Например: city_status, user_login, user_name.
  4. Стараться избегать слов резервных в разных языках которые могут вызывать проблемы в языках SQL, PHP или Perl, типа (name, count, link). Например: link можно использовать в MS SQL, но в MySQL зарезервировано.

Данный материал является короткой справкой для повседневной работы и не претендует на супер мега авторитетный источник, коим является первоисточник SQL запросов той или иной базы данных.



Понравилась статья? Поделиться с друзьями: