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

3.4 Создание функции

Выполним две функции:

  1. найдем сочетание символов "st" в строковом выражении. Для этого используем функцию – CHARINDEX, которая возвращает начальную позицию подстроки в строке. Функция CHARINDEX имеет следующий синтаксис:

CHARINDEX (искомое_выражение, строковое_выражение[, стартовая_позиция])

Выполним запрос:

SELECT Title

FROM Books

WHERE CHARINDEX('st', Title) > 0

Данный запрос будет выводить те названия книг, в которых имеется сочетание символов "st". Если искомая строка не будет обнаружена, то функция CHARINDEX возвращает 0. Результат выполнения запроса будет содержать следующие строки (см. рисунок 9).

Рисунок 9

  1. создадим функцию DATEADD, возвращающую дату и время.

Синтаксис DATEADD (datepart, number, date)

Данная функция возвращает значение типа datetime, которое получается добавлением к дате date количества интервалов типа datepart, равного number. Можно к заданной дате добавить любое число лет, дней, часов, минут и т.д.

Пусть сегодня 18/12/2010, и мы хотим узнать, какой день будет через неделю. Напишем следующий код:

SELECT DATEADD (day, 7, current_timestamp)AS Data

В результате получим (см. рисунок 10).

Рисунок 10

SELECT DATEADD (ww, 1, current_timestamp)AS Data

Получим следующий результат (см. рисунок 11).

Рисунок 11

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

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

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

Создадим хранимую процедуру с использованием оператора T-SQL CREATE PROCEDURE. Оператор CREATE PROCEDURE имеет следующий синтаксис:

CREATE PROC[EDURE] имя_процедуры

[ {@имя_параметра тип_данных} ] [= по_умолчанию][OUTPUT]

[,...,n]

AS оператор(ы)_t-sql

Создадим процедуру, которая будет выбирать (и возвращать) три колонки данных для таблицы Library, в которой значение колонки Librarian=1. Ниже описан код программы, который наберем в окне запроса:

IF EXISTS (SELECT name

FROM sysobjects

WHERE name = 'Library_Procedure' AND type = 'P')

DROP PROCEDURE Library_Procedure

CREATE PROCEDURE Library_Procedure

AS

SELECT Subscriber, Book_ID, Librarian

FROM Books_Delivery

WHERE Librarian=1

При запуске данного набора команд, будет создана хранимая процедура. Для запуска этой хранимой процедуры обратитесь к ней по имени, как это показано ниже:

Library_Procedure

GO

3.6 Экспорт данных в ms Excel

Экспорт данных из MS SQL Server в MS Excel выполним с помощью программы SQL Server Import and Export Data. Откроем эту программу из меню Start – All programs – Microsoft SQL Server - Import and Export Data. Окно SQL Server Import and Export Data Wizard откроется автоматически (см. рисунок 12).

Рисунок 12

Создадим отчет, выгружающий информацию с SQL Server в файл Excel.

На первом экране мастера Choose a Data Source (Выберите источник данных) необходимо выбрать то место, откуда будут извлекаться. Выполним следующие настройки:

  • Data source: SQL Server Native Client 10.0

  • Server name: local

  • Authentication: Use Windows Authentication

  • Database: Library

На следующем экране мастера Choose a destination (Выберите назначение) выберем источник данных, в который данные будут перемещены. В данном случае выберем Microsoft Excel и введем путь к файлу Excel (C:\Users\Administrator\Documents\Library.xls).

На следующем экране Specify Table Copy or Query (Укажите копирование таблицы или запрос) переставим переключатель в положение Write a query to specify the data to transfer (Написать запрос для выбора передаваемых данных), так как будем выгружать данные, возвращаемые запросом.

На следующем экране Provide a Source Query (Обеспечить запрос для источника) введем следующий текст запроса:

SELECT p.Subscriber, v.Autor v.Title, p.Date_delivery

FROM Books_Delivery as p

JOIN Books as v

ON (p.Book_ID=v.Book_ID)

WHERE p.Subscriber=13581

ORDER BY p.Date_delivery

В следующем диалоговом окне Select Source Tables and Views (Выберите таблицы и представления источника) не будем применять каких-либо настроек, поэтому нажимаем Next.

На следующем экране мастера Save and Execute Package (Сохранить и запустить пакет) выберем действие   Run immediately (Выполнить немедленно) - то есть запустить пакет на выполнение сразу после завершения работы мастера.

Последнее, что сделаем, - запустим пакет на выполнение при помощи кнопки Finish (Завершить) и убедимся, что его сохранение и выгрузка данных происходят нормально.

Результат выполнения данного отчета будет выглядеть следующим образом (см. рисунок 13).

Рисунок 13

Аналогичным образом выполним отчет по таблицам Books и Books_Delivery базы данных Library в файл Library_1.