Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2- Введение в язык запросов SQL.docx
Скачиваний:
5
Добавлен:
14.11.2019
Размер:
88.61 Кб
Скачать

Ключевые слова all и distinct

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

Чтобы явно запросить все записи, перед спи­ском выборки в команду помещается ключевое слово all:

SELECT ALL *, @@SERVERNAME,

Количество_ед_товара * Цена_ед_товара FROM Поставки

Без ключевого слова all всегда можно обойтись. Оно поддерживается только для того, чтобы T-SQL соответствовал стандарту ANSI.

Чтобы команда select возвращала только уникальные записи, пе­ред списком выборки необходимо поставить ключевое слово distinct. Обратите внимание, ключевые слова all и distinct должны находиться сразу же после ключе­вого слова select:

SELECT DISTINCT ‘123’, Товар, Количество_ед_товара*Цена_ед_товара FROM Поставки

Причиной ограниченного применения DISTINCT является то, что его использование может резко замедлить выполнение запросов.

Присвоение значений переменным

Команда select позволяет присвоить значения переменным.

Но в одной команде select нельзя присваивать значения переменным сделать и получать результирующий набор.

Переменные в SQL имеют префикс @.

Пример.

Если @а - целая переменная, то следующая, команда select будет верна:

Declare @a int

SELECT @a = 5

Однако следующая команда select недопустима:

Declare @a int

SELECT @а = 5, Id_товара FROM Товары

Секция FROM

Секция from определяет источники данных для выборки.

Вы можете обра­щаться к данным из таблиц, представлений или производных таблиц.

Без секции from команда select может лишь

  • присваивать значения перемен­ным,

  • возвращать переменные,

  • выполнять функции.

Псевдонимы в итоговом наборе

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

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

Так в предыдущем примере для константы, функции @@servername и набора Количество_ед_товара*Цена_ед_товара был бы создан пустой заголовок, а для столбца Товар - заголовок Товар.

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

В SQL Server существуют три формы назначения заголовков для итогового набора.

Например, чтобы задать колонке Товар заголовок Поставлен_товар, в операторе SELECT можно использовать один из приемов:

  1. Поставлен_товар = Товар

  2. Товар Поставлен_товар

  3. Товар AS Поставлен_товар

Если заголовок столбца содержит какие-либо специальные символы (напри­мер, пробелы), его необходимо заключить в кавычки.

примечание

Microsoft SQL Server позволяет использовать в командах SQL как апострофы ('), так и кавычки (").

В стандарте ANSI для имен объектов и заголовков столб­цов со специальными символами используются кавычки, а для всего остально­го - апострофы.

Лучше следовать этим правилам.

Псевдонимы таблиц

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

Если для таблицы задается псев­доним, то в командах select вы уже не сможете ссылаться на нее по имени, если только таблица не упоминается в секции from несколько раз.

Пример.

SELECT M.Название_фирмы, Поставщики.Фамилия

FROM Поставщики M, Поставщики

В этом примере первому экземпляру таблицы Поставщики назначается псевдоним м. Сек­ция from также содержит Поставщики без псевдонима. Столбец Название_фирмы берется из экземпляра-псевдонима м, а столбец Фамилия - из обычного экземпляра Поставщики.

Следующий пример демонстрирует применение псевдонимов для сокраще­ния длинного имени таблицы:

SELECT M.Поставщик FROM MyVeryVeryVeryLongTableName AS M

В ЭТОМ примере MyVeryVeryVeryLongTableName - имя таблицы, а М – псевдоним.

Псевдонимы также можно применять при создании производных таблиц, возникающих при использовании подзапросов (когда секция from вместо имени таблицы содержит команду select). В этом случае данные производной таблицы состоят из данных, которые возвращаются командой select.

Пример.

SELECT С.Страна_производитель FROM (SELECT * FROM Товары) С

Здесь создается производная таблица с псевдонимом с.

Уточнение имен объектов

Уточненное имя таблицы формируется в виде:

ИмяСервера. ИмяБазы. ИмяВладельца. ИмяТаблицы

Здесь:

  • ИмяСервера — по умолчанию текущий сервер; ИмяБазы - по умолчанию текущая база данных;

  • имяВладельца — по умолчанию сначала проверяется, принадлежит ли таб­лица текущему пользователю; если не принадлежит,, то по умолчанию ис­пользуется владелец базы данных;

  • ИмяТаблицы— имя таблицы; должно быть задано всегда.

Если какая-либо часть имени таблицы определена (например, имя сервера), то и все остальные части имени, находящиеся справа, тоже должны быть либо определены, либо должен использоваться заполнитель (..).

Например:

  1. pubs.dbo.Категории_товаров

  1. pubs.. Категории_товаров

  1. MyServer. yourDB. superUser. TheTabl e

Здесь в первом примере

pubs - имя базы данных,

dbo— владелец,

Категории_товаров - имя таблицы.

Если псевдоним таблицы не используется, уточненное имя столбца записы­вается в форме:

ИмяСервера. ИмяБазы. ИмяВладельца. ИмяТаблицы. ИмяСтолбца

Если имя столбца задается без уточнения, оно должно быть уникальным для всех таблиц секции from, поскольку в противном случае SQL Server не смо­жет определить, из какой таблицы следует брать столбец.

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

При использовании псевдонима уточненное имя столбца записывается по следующей форме:

ПсевдонимТаблицы.ИмяСтолбца

Как и прежде, если псевдоним таблицы не указан, имя столбца должно быть уникальным.