ТОП 10:

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



Запрос – это средство выбора необходимой информации из базы данных.

Создадим четыре запроса к базе данных Library:

1) найдем все книги, выданные в феврале 2010 года используя таблицу Books_Delivery. Код программы будет следующим:

Select *

from Books_Delivery

Where Date_delivery between '2010-02-01' and '2010-02-28'

2) найдем книги, которые брал абонент 13581, отсортируем по дате выдаче. Наберем следующий код программы:

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

3) найдем всю зарегистрированную в библиотеке литературу, выпущенную не позднее 2000 года. Код программы будет следующим:

SELECT Book_ID,Year_Edition

FROM Books

WHERE Year_Edition>='2000'

ORDER BY Year_Edition

 

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

Представление – это виртуальная таблица, определяемая запросом, содержащим оператор SELECT. Эта виртуальная таблица состоит из данных одной или нескольких реальных таблиц, а для пользователей представление выглядит, как реальная таблица. Пользователи могут обращаться к этим виртуальным таблицам в операторах Transaсt-SQL таким же образом, как и к таблицам. К представлению можно применять операции SELECT, INSERT, UPDATE и DELETE.

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

1) представление по таблице Subscriber, в котором имеется доступ только к колонкам Subscriber_ID, Surname, First_Name, Name, используя оператор T-SQL:

CREATE VIEW Subscriber_vw

AS

SELECT Subscriber_ID,

Surname,

First_Name,

Name

FROM Subscriber

2) представление для таблицы Books, при котором выбраны все колонки данной таблицы, но есть условие на тип издания – учебное пособие (Books.Edition=3) и издательство (Books.Mockery=145). Напишем следующий код:

CREATE VIEW View_1

AS

SELECT *

FROM Books

WHERE Books.Edition=3 and Books.Mockery=145

3) представление для таблицы Books, при котором выбраны колонки Book_ID, Theme, при условии тема - English language (Books.Theme='A20')

CREATE VIEW View_2

AS

SELECT Books.Book_ID,

Books.Theme

FROM Books

WHERE Books.Theme='A20'

 

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

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

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

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

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

SELECT Title

FROM Books

WHERE CHARINDEX('st', Title) > 0

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

 

 

Рисунок 9

 

 

2) создадим функцию 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

 

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

 

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

Процедура – это набор операторов 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

Экспорт данных в 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.

 

Заключение

В данном курсовом проекте была разработана база данных «Библиотека». Программа полностью автоматизирует труд библиотекаря и организует надежное хранение и обработку данных.

При разработке данного курсового проекта были приобретены навыки работы в MS SQL Server 2008 и AllFusion ERwin Data Modeler.

 







Последнее изменение этой страницы: 2016-07-11; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.234.254.115 (0.007 с.)