Основные принципы запросов

Запрос представляет собой обращение к данным, сохраненным в SQL Server. Запрос может быть произведен с помощью нескольких форм:

  • Пользователь MS Query или Microsoft Access может использовать графический интерфейс пользователя (GUI) для выбора данных, которые пользователь хочет видеть, из одной или более таблиц SQL Server.

  • Пользователь среды Среда SQL Server Management Studio или программы osql может выполнить инструкцию SELECT.

  • Клиент или приложение промежуточного уровня, например приложение Microsoft Visual Basic, могут отображать данные из таблицы SQL Server в связанный элемент управления, например в сетку.

Хотя запросы имеют различные способы взаимодействия с пользователем, они все выполняют одну задачу: представляют пользователю результирующий набор инструкции SELECT. Даже если пользователь никогда не указывает инструкцию SELECT, так как обычно работает с графическими инструментами, например с конструктором запросов Visual Studio, программное обеспечение клиента преобразовывает каждый пользовательский запрос в инструкцию SELECT, которая отправляется к SQL Server.

Инструкция SELECT получает данные из SQL Server и возвращает их пользователю в одном или более результирующих наборах. Результирующий набор — это табличное расположение данных из инструкции SELECT. Похожий на таблицу SQL, результирующий набор состоит из столбцов и строк.

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

  • Количество и атрибуты столбцов в результирующем наборе. Следующие атрибуты должны быть определены для каждого столбца результирующего набора.

    • Тип данных столбца.

    • Размер столбца, а для числовых столбцов еще точность и масштаб.

    • Источник значений данных, возвращенных в столбец.

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

  • Условия, которым строки в исходных таблицах должны соответствовать для выборки инструкцией SELECT. Строки, не соответствующие условиям, пропускаются.

  • Последовательность, в которой упорядочиваются строки результирующего набора.

Следующая инструкция SELECT находит код продукта, название и цену по прейскуранту любых продуктов, чья учетная цена превышает $40:

SELECT ProductID, Name, ListPrice
FROM Production.Product
WHERE ListPrice > $40
ORDER BY ListPrice ASC

Имена столбцов, перечисленные после ключевого слова SELECT (ProductID, Name и ListPrice), образуют список выбора. Этот список определяет, что результирующий набор имеет три столбца, и каждый столбец имеет имя, тип данных и размер связанного столбца в таблице Product. Поскольку предложение FROM определяет только одну базовую таблицу, все имена столбцов в инструкции SELECT ссылаются на столбцы в этой таблице.

Предложение FROM перечисляет таблицу Product как одну таблицу, из которой должны быть получены данные.

Предложение WHERE указывает условие, что данной инструкции SELECT соответствуют только строки в таблице Product, в которых значение столбца ListPrice больше, чем $40.

Предложение ORDER BY указывает, что результирующий набор должен быть отсортирован по возрастающей последовательности (ASC), основанной на значении в столбце ListPrice.