- •Пермь 2010 Содержание
- •Введение
- •1 Подготовительная работа
- •1.1 Программные продукты, используемые при проектировании базы данных
- •1.2 Создание структуры базы данных
- •2 Проектирование базы данных
- •2.1 Создание базы данных
- •2.2 Создание таблиц
- •2.3 Заполнение таблиц
- •2.4 Создание триггеров
- •2.5 Создание пользователей
- •2.5.1 Создание пользователей в операционной системе
- •2.5.2 Создание пользователей внутри sql Server
- •2.6 Резервное копирование базы данных
- •2.7 Создание репликации
- •3 Создание запросов
- •3.1 Описание языка Transact-sql
- •3.2 Создание запросов к базе данных
- •3.3 Создание представлений
- •3.4 Создание функции
- •3.5 Создание процедур
- •3.6 Экспорт данных в ms Excel
- •Заключение
- •Список использованных источников
3.4 Создание функции
Выполним две функции:
-
найдем сочетание символов "st" в строковом выражении. Для этого используем функцию – CHARINDEX, которая возвращает начальную позицию подстроки в строке. Функция CHARINDEX имеет следующий синтаксис:
CHARINDEX (искомое_выражение, строковое_выражение[, стартовая_позиция])
Выполним запрос:
SELECT Title
FROM Books
WHERE CHARINDEX('st', Title) > 0
Данный запрос будет выводить те названия книг, в которых имеется сочетание символов "st". Если искомая строка не будет обнаружена, то функция CHARINDEX возвращает 0. Результат выполнения запроса будет содержать следующие строки (см. рисунок 9).
Рисунок 9
-
создадим функцию 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.