Программирование >>  Реализация баз данных 

1 ... 56 57 58 [ 59 ] 60 61 62 ... 162


Занятие 1 Выборка данных иаы данных SQL Server 1 gg

[HAVING условияпоиска]

[ORDER BY поле для сортироеки [ASC DESC] ]

Далее мы подробно расскажем о каждой конструкции и покажем на примерах, как определять конструкции, получающие определенные данные из базы данных SQL Server. Более подробная информация - в SQL Server Books Online.

Конструкция SELECT

Конструкция SELECT состоит из ключевого слова SELECT и списка выбора. Список выбора - это набор выражений, разделенных запятыми. Каждое выражение определяет с.юл-бец результирующего набора. Порядок столбцов результирующего набора оцределяется последовательностью выражений списка выбора.

Использование ключевых слов в списке выбора

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

Ключевое слово DISTINCT

Ключевое слово DISTINCT запрещает вывод в результирующем наборе повторяющихся строк. Например, в таблице Orders базы данных Northwind содержатся повторяющиеся значения в столбце ShipCity. Следующий код позволяет получить список значений ShipCity без дубликатов:

SELECT DISTINCT ShipCity, ShipRegion FROM Orders ORDER ShipCity

Ключевое слово TOP л .. >

Ключевое слово ТОР . задает первые строк результирующего набора, которые необходимо возвратить. Если задан параметр ORDER BY, выбор строк выполняется после упорядочения результирующего набора. Значение п указывает число возвращаемых строк (если не определено ключевое слово PERCENT). Если задано ключевое слово то п - это процент возвращаемых строк от общего числа строк в результирующем наборе. Например, в следующем примере оператор SELECT возвращает первые 10 упорядоченных по алфавиту городов из таблицы Orders.

SELECT DISTINCT TOP 10 ShipCity, ShipRegion FROM Orders

ORDER ShipCity

Ключевое слово AS

Можно сделать оператор SELECT более понятным, присвоив таблице псевдоним (его также называют связанным именем ил лиапазоном). Псевдоним можно присвоить таблице как с помощью ключевого слова AS, так и без него: аб/шцы AS псевдотш та6лицы

имя таблицы псевдоним таблицы ...

В следующем примере таблице Publishers присваивается псевдоним р: USE pubs .

SELECT р, pub if n pubname -

FROM publishers AS p . v, , - . ;



t70 Выборка Цйя данных Глава 0

Внимание! Если таблице присвоен псевдоним, то во всех явных ссылках на таблицу в операторах Transact-SQL необходимо использовать псевдоним, а не имя таблицы.

Типы информации в списке выбора

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

SELECT FirstName + Nane AS Employee Name , IDENTITYCOL AS Employee ID , HomePhone,

Region

FROM Northwind. dbo. Employees ORDER BY LastName, FirstNane ASC

Этот оператор помещает в один столбец имена и фамилии работников, разделенные пробелом. Имя столбца, в котором хранятся имена работников, - Employee Name. В результирующий набор также войдет столбец с идентификатором, который будет назван Employee ID; а также столбцы HomePhone и Region. Результирующий набор упорядочен сначала по фамилии, а затем по имени.

Конструкция INTO

Конструкция INTO позволяет указать, что для результирующего набора будет создана новая таблица, имя которой задано этой конструкцией. С помощью оператора SELECT... INTO удается объединить данные из нескольких таблиц или представлений в одну таблицу. Его можно использовать лля создания новой таблицы с данными, выбранными на связанном сервере.

В следующем примере оператор SELECT извлекает значения из столбцов ame и LastName : Employees:

SELECT FirstName, LastName INTO EmployeeNames FROM Employees

Сгенерированный результирующий набор создает таблицу EmployeeNames. В новой таблице столбцы FirstName и LastName будут содержать значения из таблицы Employees.

Результирующий набор не ьыводитс я на вкладке Results, если не выполнить явный запрос

к новой таблице. Конструкция FROM

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

WHERE. Этим таблицам и представлениям могут быть присвоены псевдонимы в : пмст-рукции AS. Конструкция FROM, кроме того, позволяет соединять таблицы, задавая условия соединения в конструкции JOIN.

Конструкция FROM представляет собой список имен таблиц, представлений и конструкций JOIN, разделенных запятыми. В следующем примере в операторе SELECT конструкция FROM задает таблицу Shippers:



Занятие 1 Выборка данных few данных SQL Server -J yj:

SELECT *

FROM Shippers

FROM также используют и для определения соединений между тайлицами или представлениями. О соединениях более подробно рассказано в занятии 2.

Конструкции №RE, GROUP BY и HAVING

В операторе SELECT конструкции WHERE и HAVING определяют строки исходной таблицы, которые необходимы для построения результирующего набора. Конструкции WHERE и HAVING выполняют роль фильтров. Они задают набор условий поиска: для построения результирующего набора выбираются лишь те строки, которые соответствуют виям поиска. Например, в операторе SELECT конструкция WHERE возвращает лишь те строки, в качестве района указан штат Вашингтон:

SELECT CustomerlD, CompanyName EROM Northwind,dbo.Customers WHERE Region =

Конструкция HAVING, как правило (но не используется вместе с кон-

струкцией GROUP BY. Конструкция HAVING задает дополнительные фильтры, которые

применяются после завершения фильтрации, определяемой конструкцией WHERE. В примере в операторе SELECT использованы конструкции WHERE, GROUP BY и HAVING:

SELECT OrderlD ASOruerlO,

SUM(OrdDl.Quantity) AS Units Sold ,

SUM(0rd01,UnitPrice * OrdDI .Quantity) AS Revenue FROM [Order Details] AS OrdDI :. .- v.r:

WHERE ur.jLi I, JrderlD IN (SELECT DISTINCT OrdD2. OrderlD .

FROM [Order Details] AS OrdD2

WHERE OrdD2.UnitPrice > $100) GROUP BY OidDi.OrderlD HAVING SUM(0rdD1, Quantity) > 100

Здесь WHERE возвращает заказы, стоимость которых больше а да-

HAVING ограничивает результат, отбирая заказы на более чем 100 единиц товара. Конструкция GROUP BY ограничивает строки для каждого конкретного

чения поля OrderlD. Конструкция GROUP BY

Конструкция GROUP BY используется для получения итоговых значений в каждой строке результирующего набора. При применении оператора SELECT без конструкции GRO-

BY агрегатные функции лишь одно итоговое значение.

После ключевых слов GROUP BY следует список которые называются груп-

пирующими рукипм GROUP BY ограничивает строки результирующего набора. Для каждого конкретного значения группирующего столбца или возможна только

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

Если в операторе SELECT имеется конструкция GROUP BY, -()\ Server налагает ограничения на элементы списка выбора. В списке выбора могут быть лишь те группирую-столбцы и выражения, которые возвращают только одно значение для каждого



1 ... 56 57 58 [ 59 ] 60 61 62 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика