Файл: 1. Введение в теорию баз данных Вопрос Основные понятия.docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 07.12.2023

Просмотров: 844

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

 

Пример. Использование функции округления до одного знака после запятой для расчета налога.

 

SELECT Товар.Название, Сделка.Количество,

Round(Товар.Цена*Сделка.Количество

    *0.05,1)

AS Налог

FROM Товар INNER JOIN Сделка

    ON Товар.КодТовара=

    Сделка.КодТовара

 

Строковые функции.

Краткий обзор строковых функций представлен в таблице 11.

 

Таблица 11.

 

ASCII

возвращает код ASCII левого символа строки

CHAR

по коду ASCII возвращает символ

CHARINDEX

определяет порядковый номер символа, с которого начинается вхождение подстроки в строку

DIFFERENCE

возвращает показатель совпадения строк

LEFT

возвращает указанное число символов с начала строки

LEN

возвращает длину строки

LOWER

переводит все символы строки в нижний регистр

LTRIM

удаляет пробелы в начале строки

NCHAR

возвращает по коду символ Unicode

PATINDEX

выполняет поиск подстроки в строке по указанному шаблону

REPLACE

заменяет вхождения подстроки на указанное значение

QUOTENAME

конвертирует строку в формат Unicode

REPLICATE

выполняет тиражирование строки определенное число раз

REVERSE

возвращает строку, символы которой записаны в обратном порядке

RIGHT

возвращает указанное число символов с конца строки

RTRIM

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

SOUNDEX

возвращает код звучания строки

SPACE

возвращает указанное число пробелов

STR

выполняет конвертирование значения числового типа в символьный формат

STUFF

удаляет указанное число символов, заменяя новой подстрокой

SUBSTRING

возвращает для строки подстроку указанной длины с заданного символа

UNICODE

возвращает Unicode-код левого символа строки

UPPER

переводит все символы строки в верхний регистр


 

Пример. Использование функции LEFT для получения инициалов клиентов.

 

SELECT Фирма, [Фамилия]+’’+Left([Имя],1)+’.’+Left([Отчество],1)+’.’ AS ФИО

FROM Клиент

 

Функции для работы с датой и временем.

Краткий обзор основных функций для работы с датой и временем представлен в таблице 12.

 

Таблица 12.

 

DATEADD

добавляет к дате указанное значение дней, месяцев, часов и т.д.

DATEDIFF

возвращает разницу между указанными частями двух дат

DATENAME

выделяет из даты указанную часть и возвращает ее в символьном формате

DATEPART

выделяет из даты указанную часть и возвращает ее в числовом формате

DAY

возвращает число из указанной даты

GETDATE

возвращает текущее системное время

ISDATE

проверяет правильность выражения на соответствие одному из возможных форматов ввода даты

MONTH

возвращает значение месяца из указанной даты

YEAR

возвращает значение года из указанной даты

 

Пример. Использование функций YEAR и MONTH для определения общего количества товара, проданного за каждый месяц каждого года.

 

SELECT Year(Дата) AS Год, Month(Дата)

   AS Месяц,

   Sum(Количество) AS Общ_Количество

FROM Сделка

GROUP BY Year(Дата), Month(Дата)

 

Пример. Пример выделения из даты значения года.

 

DECLARE @d DATETIME

DECLARE @y INT

SET @d=’29.10.03’

SET @y=DATEPART(yy,@d)

SELECT @y

 

Вопрос 12. Хранимые процедуры.

 

Понятие хранимой процедуры.

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



     необходимые операторы уже содержатся в базе данных;

     все они прошли этап синтаксического анализа и находятся в исполняемом формате; перед выполнением хранимой процедуры SQL Server генерирует для нее план исполнения, выполняет ее оптимизацию и компиляцию;

     хранимые процедуры поддерживают модульное программирование, так как позволяют разбивать большие задачи на самостоятельные, более мелкие и удобные в управлении части;

     хранимые процедуры могут вызывать другие хранимые процедуры и функции;

     хранимые процедуры могут быть вызваны из прикладных программ других типов;

     как правило, хранимые процедуры выполняются быстрее, чем последовательность отдельных операторов;

     хранимые процедуры проще использовать: они могут состоять из десятков и сотен команд, но для их запуска достаточно указать всего лишь имя нужной хранимой процедуры. Это позволяет уменьшить размер запроса, посылаемого от клиента на сервер, а значит, и нагрузку на сеть.

 

Хранение процедур в том же месте, где они исполняются, обеспечивает уменьшение объема передаваемых по сети данных и повышает общую производительность системы. Применение хранимых процедур упрощает сопровождение программных комплексов и внесение изменений в них. Обычно все ограничения целостности в виде правил и алгоритмов обработки данных реализуются на сервере баз данных и доступны конечному приложению в виде набора хранимых процедур, которые и представляют интерфейс обработки данных. Для обеспечения целостности данных, а также в целях безопасности, приложение обычно не получает прямого доступа к данным – вся работа с ними ведется путем вызова тех или иных хранимых процедур.

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


Хранимые процедуры существуют независимо от таблиц или каких-либо других объектов баз данных. Они вызываются клиентской программой, другой хранимой процедурой или триггером. Разработчик может управлять правами доступа к хранимой процедуре, разрешая или запрещая ее выполнение. Изменять код хранимой процедуры разрешается только ее владельцу или члену фиксированной роли базы данных. При необходимости можно передать права владения ею от одного пользователя к другому.

Хранимые процедуры в среде MS SQL Server.

При работе с SQL Server пользователи могут создавать собственные процедуры, реализующие те или иные действия. Хранимые процедуры являются полноценными объектами базы данных, а потому каждая из них хранится в конкретной базе данных. Непосредственный вызов хранимой процедуры возможен, только если он осуществляется в контексте той базы данных, где находится процедура.


Типы хранимых процедур.

В SQL Server имеется несколько типов хранимых процедур.

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

Пользовательские хранимые процедуры реализуют те или иные действия. Хранимые процедуры – полноценный объект базы данных. Вследствие этого каждая хранимая процедура располагается в конкретной базе данных, где и выполняется.

Временные хранимые процедуры существуют лишь некоторое время, после чего автоматически уничтожаются сервером. Они делятся на локальные и глобальные. Локальные временные хранимые процедуры могут быть вызваны только из того соединения, в котором созданы. При создании такой процедуры ей необходимо дать имя, начинающееся с одного символа #. Как и все временные объекты, хранимые процедуры этого типа автоматически удаляются при отключении пользователя, перезапуске или остановке сервера. Глобальные временные хранимые процедуры доступны для любых соединений сервера, на котором имеется такая же процедура. Для ее определения достаточно дать ей имя, начинающееся с символов ##. Удаляются эти процедуры при перезапуске или остановке сервера, а также при закрытии соединения, в контексте которого они были созданы.

Создание, изменение и удаление хранимых процедур.

Создание хранимой процедуры предполагает решение следующих задач:

     определение типа создаваемой хранимой процедуры: временная или пользовательская. Кроме этого, можно создать свою собственную системную хранимую процедуру, назначив ей имя с префиксом sp_ и поместив ее в системную базу данных. Такая процедура будет доступна в контексте любой базы данных локального сервера;