Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой_SQL.doc
Скачиваний:
19
Добавлен:
21.11.2018
Размер:
1.68 Mб
Скачать

2 Описание языка t-sql

Transact-SQL (T-SQL) — процедурное расширение языка SQL компаний Microsoft (для

Microsoft SQL Server) и Sybase (для Sybase ASE).

SQL был расширен такими дополнительными возможностями как:

  • управляющие операторы,

  • локальные и глобальные переменные,

  • различные дополнительные функции для обработки строк, дат, математики и т. п.,

  • поддержка аутентификации Microsoft Windows

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

2.1 Создание запросов к бд

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

  • Запрос, сравнивающий прибыль по поступившим товарам с прибылью по проданным товарам, с последующей группировкой по убывающему полю код чека.

SELECT t1.dohod as 'dohod_Prodazhi', t2.kolvo_tovara*t2.cena_tovara as 'dohod_Postavki', t1.Kod_checka

FROM Prodazha_tovara as t1

INNER JOIN Postavka_diskov as t2

ON t1.Kod_tovara = t2.Kod_tovara

ORDER BY Kod_checka ASC

Результат запроса представлен на рисунке 30.

Рисунок 30 – Запрос №1

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

SELECT t1.nazvanie, t2.dohod

FROM Tovar t1, Prodazha_tovara t2

WHERE t2.dohod IN

(SELECT t2.dohod

FROM Prodazha_tovara t2

WHERE t2.dohod > 500 AND t1.kod_tovara=t2.Kod_tovara)

Результат запроса представлен на рисунке 31.

Рисунок 31 – Запрос №2

Рис.32 Запрос « Доход от продажи каждого вида продукции»

  • Запрос, показывающий продавцов, которые продали > 110 экземпляров каждого из дисков посредством оператора соединения таблиц с сортировкой по убыванию.

SELECT familiya, nazvanie, kolvo

FROM Sellers as t1

INNER JOIN Prodazha_tovara t2

ON t1.Seller_ID = t2.Seller_ID

JOIN Tovar t3

ON t2.Kod_tovara = t3.kod_tovara

WHERE Kolvo >110

ORDER BY Kolvo DESC

Результат запроса представлен на рисунке 32.

Рисунок 32 – Запрос №3

2.2 Создание представлений

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

Представление Postavka

Результатом этого представление будет таблица, объединенная из 3 таблиц с выбранными столбцами. На рисунке 33 показан интерфейс выборки данных.

Рисунок 33 – Выбор таблиц и столбцов для представления

На рисунке 34 показан результат.

Рисунок 34 – результат первого представления Postavka

Представление Dohody

Данное представление является таблицой, показывающей продавцов и названия дисков, принесшие доход. На рисунке 35 показана выборка данных, на рисунке 36 – результат представления.

Рисунок 35 – Выборка данных для второго представления

Рисунок 36 – результат выборки данных второго представления

2.3 Создание процедур

Хранимая процедура – это набор операторов T-SQL, который компилируется системой SQL Server в единый "план исполнения". Этот план сохраняется в кэш-области памяти для процедур при первом выполнении хранимой процедуры, что позволяет использовать этот план повторно; системе SQL Server не требуется снова компилировать эту процедуру при каждом ее запуске. Хранимые процедуры T-SQL аналогичны процедурам в других языках программирования в том смысле, что они допускают входные параметры и возвращают выходные значения в виде параметров или сообщения о состоянии (успешное или неуспешное завершение). Все операторы процедуры обрабатываются при вызове процедуры. Хранимые процедуры используются для группирования операторов T-SQL и любых логических конструкций, необходимых для выполнения задачи. Поскольку хранимые процедуры сохраняются в виде процедурных блоков, они могут использоваться различными пользователями для согласованного повторяемого выполнения одинаковых задач и даже в различных приложениях. Хранимые процедуры также позволяют поддерживать единый подход к управлению задачей, что помогает обеспечивать согласованное и корректное внедрение любых деловых правил.

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

Процедура Добавление товара (с параметром):

create proc Adding_item (@kod int) as update Prodazha_tovara set kolvo = kolvo + 1 where kod_tovara = @kod

exec Adding_item @kod = 1 select * from Prodazha_tovara

Данная процедура добавляет новый товар на склад по его идентификационному номеру, перерасчет дохода делать не нужно, по скольку поле доход является вычисляемым. Результат процедуры показан на рисунке 37 (У товара с Kod_tovara=1, увеличилось поле Kolvo на 1 и dohod на 1).

Рисунок 37 – Процедура «Добавление товара»

Процедура «Изменение телефонного номера продавца»

create proc Phone_update3 (@phone int, @seller int) as update Sellers set telefon = @phone WHERE Seller_ID=@Seller

exec phone_update3 @seller = 41, @phone = 890050040

В данной процедуре @phone - это новый номер телефона для @seller. Результат процедуры показан на рисунке 38.

Рисунок 38 – Процедура «Изменение телефонного номера продавца»