Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET

Тут можно читать онлайн Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Обработка баз данных на Visual Basic®.NET
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-8459-0512-5
  • Рейтинг:
    3.3/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET краткое содержание

Обработка баз данных на Visual Basic®.NET - описание и краткое содержание, автор Джеффри Мак-Манус, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000. Затем рассматриваются способы использования основных объектов модели ADO.NET для доступа к данным в реляционных базах данных. Благодаря подробным примерам, читатели могут изучить способы использования основных свойств и методов, а также узнать о более сложных компонентах и технологиях. Многочисленные листинги с кодом на языке Visual Basic .NET иллюстрируют используемые концепции, а бизнес-ситуации показывают практическую область их применения.

Обработка баз данных на Visual Basic®.NET - читать онлайн бесплатно полную версию (весь текст целиком)

Обработка баз данных на Visual Basic®.NET - читать книгу онлайн бесплатно, автор Джеффри Мак-Манус
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

SELECT CustomerID, COUNT(CustomerID) AS TotalOrders

FROM tblOrder

GROUP BY CustomerID

Результат выполнения такого запроса приведен ниже.

CustomerID TotalOrders
1 2
2 1
4 3
5 1
7 1
8 2

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

Для отображения имен клиентов вместо их идентификаторов нужно просто объединить с результатами запроса данные из таблицы tblCustomer.

SELECT tblOrder.CustomerID, FirstName, LastName

COUNT(dbo.tblOrder.CustomerID) AS TotalOrders

FROM tblOrder INNER JOIN tblCustomer

ON tblOrder.CustomerID = tblCustomer.ID

GROUP BY FirstName, LastName, CustomerID

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

CustomerID FirstName LastName TotalOrders
1 John Smith 2
2 Jill Azalia 1
4 Daisy Klein 3
5 Dave Martin 1
7 Thurston Ryan 1
8 Jane Winters 2

В этом случае предложение GROUP BY содержит поле CustomerID вместе с объединенными полями FirstName и LastName из таблицы tblCustomer. При использовании предложения GROUP BY в него необходимо включить все поля, по которым группируются извлекаемые записи. В данном случае идентификатор клиента и его имя участвуют в группировании данных и потому присутствуют в предложении GROUP BY. (К счастью, если вы забудете выполнить эту операцию, среда Visual Studio .NET автоматически предложит вам сделать это.)

Применение предложения HAVING для группирования данных в запросах

Как уже отмечалось выше, критерий запроса служит для ограничения количества извлекаемых записей. В обычных запросах для включения критериев используется предложение WHERE, в запросах с группированием — предложение HAVING. Эти предложения применяются совершенно одинаково, за исключением того, что HAVING относится к агрегированным строкам (т.е. к результату группирования), a WHERE – к отдельным строкам. Это довольно незначительное отличие, потому что в 9 случаях из 10 они дают совершенно одинаковый результат. Например для создания отчета о продажах клиента Jane с группированием данных можно использовать приведенный ниже запрос.

SELECT tblOrder.CustomerID, FirstName, LastName,

COUNT(dbo.tblOrder.CustomerID) AS TotalOrders

FROM tblOrder INNER JOIN tblCustomer

ON tblOrder.CustomerID = tblCustomer.ID

GROUP BY FirstName, LastName, CustomerID

HAVING FirstName = 'Jane'

Этот запрос возвращает одну запись для клиента Jane Winters с указанием двух сделанных ею заказов. Допустим, теперь нужно получить список активных покупателей, т.е. клиентов, сделавших более одного заказа. Поскольку агрегированное количество заказов хранится в вычисленном поле TotalOrders, можно предположить, что для определения таких клиентов допустимо использовать выражение HAVING TotalOrders > 1. К сожалению, это выражение некорректно, так как TotalOrders – это не поле базы данных, а вычисленное поле. Вместо этого следует включить данное вычисление в предложение HAVING показанного ниже запроса.

SELECT tblOrder.CustomerID, FirstName, LastName,

COUNT(dbo.tblOrder.CustomerID) AS TotalOrders

FROM tblOrder INNER JOIN tblCustomer

ON tblOrder.CustomerID = tblCustomer.ID

GROUP BY FirstName, LastName, CustomerID

HAVING (COUNT(tblOrder.CustomerID) > 1)

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

CustomerID FirstName LastName TotalOrders
1 John Smith 2
4 Daisy Klein 3
8 Jane Winters 2

Функция SUM

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

SELECT OrderID, SUM(Quantity) AS TotalItems

FROM tblOrderItem

GROUP BY OrderID

Этот запрос возвращает приведенный ниже результирующий набор.

OrderID TotalItems
1 6
2 2
3 1
4 23
5 4
6 13
7 12
8 3
9 4
10 4

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

Перечень итоговых функций

В табл. 2.2 перечислены все итоговые функции, доступные в SQL.

Таблица 2.2. Итоговые функции SQL

Функция Результат
AVG Среднее значение от всех значений в столбце
COUNT Общее количество отобранных записей
MAX Максимальное (наибольшее) значение поля
MIN Минимальное (наименьшее) значение поля
STDEV Среднеквадратическое отклонение
SUM Общая сумма всех значений в поле
VAR Дисперсия

Синтаксис этих функций, по сути, соответствует синтаксису функции COUNT, которая рассматривалась в предыдущем разделе. Например, для ежедневного вычисления среднего количества товаров в каждом заказе воспользуйтесь приведенным ниже запросом SQL.

SELECT AVG(tblOrderItem.Quantity) AS AverageLineItemQuantity

FROM tblOrder INNER JOIN

tblOrderItem ON tblOrder.ID = tblOrderItem.OrderID

Этот запрос возвращает значение 2, т.е. количество товаров в заказах всех клиентов.

Вычисления и итоговые функции можно комбинировать разными способами. Например, чтобы получить список со стоимостью всех товаров в каждом заказе, нужно определить стоимость товара (эти сведения хранятся в таблице tblInventory) в каждом заказе и умножить ее на количество этих товаров в заказе (эти сведения хранятся в таблице tblOrderItem), а затем сложить полученные произведения в каждом заказе.

SELECT tblOrderItem.OrderID, SUM(Quantity * Price)

AS OrderTotal

FROM tblInventory INNER JOIN

tblOrderItem ON tblItem.ID = tblOrderItem.OrderID GROUP BY OrderID

Этот запрос возвращает приведенный ниже результирующий набор.

OrderID OrderTotal
1 15.64
2 7.98
3 5.99
4 99.17
5 13.96
6 49.07
7 55.88
8 13.97
9 9.16
10 14.76

Запросы на объединение

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Джеффри Мак-Манус читать все книги автора по порядку

Джеффри Мак-Манус - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Обработка баз данных на Visual Basic®.NET отзывы


Отзывы читателей о книге Обработка баз данных на Visual Basic®.NET, автор: Джеффри Мак-Манус. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x