- •Понятие автоматизированной системы, автоматизированного банка данных (абд). Состав и роли пользователей абд.
- •Иерархическая модель данных.
- •Сетевая модель данных.
- •Реляционная модель данных. Понятие домена, отношения, атрибута, кортежа, арности отношения реляционной базы данных.
- •Структура данных в рбд. Свойства столбца и ограничения таблицы. Использование ключей для идентификации строк, ссылочной целостности и логической связи строк. Индексы таблиц.
- •Язык запросов к рбд, основанный на реляционном исчислении. Примеры запросов.
- •Язык запросов к рбд, основанный на реляционной алгебре, примеры запросов.
- •Назначение и общая структура оператора Select в sql. Общая схема выполнения оператора Select. Примеры.
- •Элементы списка вывода в операторе Select Transact sql. Назначение и использование параметра Order by. Примеры.
- •Типы табличных источников в операторах управления данными в sql. Способы соединения строк в параметре From. Примеры соединений.
- •Критерий отбора строк в параметре Where операторов sql. Примеры фильтрующих запросов.
- •Назначение и использование агрегатных функций, параметров Group by и Having оператора Select. Примеры группирующих запросов.
- •Операторы union [all] , except, intersect. Примеры.
- •Структура, назначение параметров и примеры использования оператора insert. Примеры применения.
- •Структура, назначение параметров и примеры использования операторов delete, truncate.
- •Структура, назначение параметров и примеры применения оператора update.
- •Организация ms sql Server: режимы использования сервера и поддерживающие их службы Windows, системные базы, исходные учетные записи сервера.
- •Правила именования постоянных и временных объектов баз данных в ms sql Server. Примеры.
- •Структурные операторы Transact sql: if, go to, while, waitfor. Примеры применения.
- •Обработка исключений в программах Transact sql. Функции для анализа причины исключений и вывода сообщений.
- •Логическая организация базы данных в ms sql Server: словарь (системные таблицы и системные представления) базы master и пользовательской бд. Типы объектов пользовательской базы.
- •Физическая организация базы данных в ms sql Server: файлы и файловые группы. Структура и параметры оператора create database.
- •26.. Изменение параметров базы оператором alter. Реорганизация базы данных командой dbcc.
- •27.. Опции базы данных. Способы задания и проверки опций базы. Процедуры отсоединения и присоединения баз данных к серверу.
- •28.. Базовые типы данных в ms sql Server
- •29.. Специальные типы данных в ms sql Server. Функции приведения значения выражения к требуемому типу. Примеры.
- •30.. Пользовательские типы данных в ms sql Server. Операторы создания и удаления. Примеры создания и применения.
- •31. Создание пользовательской таблицы оператором create table: параметры, определяющие структуру, свойства столбцов и ограничения таблицы.
- •32.. Фрагментарное размещение таблицы в файловых группах: использование схем и функций размещения для таблицы бд. Модификация структуры таблицы оператором alter table. Примеры.
- •33.. Индексы таблиц в ms sql Server: назначение, типы, способы создания. Использование индексов.
- •34.. Статистика столбцов и индексная статистика. Операторы создания обновления статистики.
- •35.. Правила и умолчания в Transact sql. Примеры создания и использования.
- •36.. Представление (view) базы данных. Операторы создания и удаления представлений. Примеры. Ограничения при использовании представлений для внесения изменений в бд.
- •37.. Хранимые процедуры базы данных. Операторы Transact-sql для создания, исполнения и модификации процедур. Пример создания и использования.
37.. Хранимые процедуры базы данных. Операторы Transact-sql для создания, исполнения и модификации процедур. Пример создания и использования.
Хранимые процедуры представляют собой программы обработки данных на языке Transact SQL, записанные в БД и исполняемые на сервере по команде, поступившей от клиентского приложения, размещенного на рабочей станции.
Хранимые процедуры являются средством распределения вычислительной и обработки данных непосредственно на сервере
Хранимая процедура создается в контекстно установленной базе данных оператором USE<имя БД>
Поэтому при создании в имени процедуры не указывается имя сервера и имя базы данных
Исходные данные для процедуры:
объекты базы,
входные параметры (аргументы);
Результат процедуры:
изменения в БД,
возвращаемые наборы строк (таблиц, создаваемых оператором Select),
выходные параметры (скалярные значения)
Оператор создания и сохранения процедуры в БД имеет вид:
CREATE PROCEDURE [<схема>.]<имя процедуры> [;<№ верс>]
[@<имя форм.парам.><тип данных> [=<умалч. знач.>] [OUTPUT] ] [, . . . . . ]
[WITH [ RECOMPILE ] [, ENCRIPTION ] ]
AS
<операторы Transact SQL>
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Описание процедуры доступно через представление sys.procedures, а код в таблице SYSCOMMENTS
Пример создания хранимой процедуры, возвращающей набор строк
Процедура S_Title выводит названия книг ( поле Title) из таблицы Titles, относящиеся к определенному разделу знаний (поле type), задаваемому входным параметром:
CREATE PROCEDURE S_Title @t char(2)
AS
select title from titles
where
type Like '%' + RTRIM (@t) + '%‘
Встроенная функция RTRIM (@t) удаляет из параметра
@t остаточные пробелы
Задание. Создать процедуру, возвращающей количество и все сведения об авторах находящихся в том же городе,
что и автор с заданным au_id
Оператор, который выводит сведения об авторах:
Select * From authors where
city = (Select city From authors where au_id = @ID)
В процедуре необходимо предусмотреть параметры:
@ID – входной параметр – au_id автора
@count (типа Int) - выходной параметр. Для вывода числа авторов, живущих в том же городе, что и заданный автор
Оператор, создания процедуры:
create procedure ProcAuthorsCity
@ID nvarchar(11), @count int output
AS
Begin
Select * From authors where
city = (Select city From authors where au_id = @ID)
set @count = @@ROWCOUNT -- число строк, -- обработанных последним SQL оператором
End
Для исполнения процедуры из файла скрипта или другой процедуры применяется оператор:
[ EXEC [ UTE ] ] [@<имя переменной>=]
[ [<сервер>.] <БД>.] <схема>.]<процедура> [; <№ версии>]
[@<имя факт. парам.>=] <знач. факт. парам.>] [OUTPUT]
[ , . . . ]
[WITH RECOMPILE]
Если в обращении к процедуре задано имя переменной, то ей будет присвоен возвращаемый статус процедуры
При обращении может использоваться как полное, так и сокращенное имя процедуры.
Если номер версии процедуры не задан, то по умолчанию исполняется процедура с номером 1.
Значение фактического параметра задается константой или переменной соответствующего типа.
Выходные параметры задаются переменной с опцией OUTPUT.
Опция WITH RECOMPILE требует перестроения плана процедуры перед данным выполнением
Вызов хранимой процедуры. Пример
Вызов процедуры S_Title, выводит названия книг ( поле Title) из таблицы Titles, относящиеся к определенному разделу знаний
-- @q - возвращаемый статус
-- @t - входной параметр
declare @q int
exec @q = S_Title @t = ‘busin‘ -- /* ключевая форма*/
-- т.к. @t char(2), то будет передан параметр ‘bu‘
-- или
exec @q = S_Title ‘busin'
-- при позиционной форме передачи параметров
select @q -- по умолчанию 0
Задание. Выполнить процедуру ProcAuthorsCity,
возвращающей количество и все сведения об авторах находящихся в том же городе, что и автор с заданным au_id
Declare @к int, @ReturnCode int
execute @ReturnCode = ProcAuthorsCity '274-80-9391', @к output -- факт. параметры
select @к As [К-во] , @ReturnCode As [Код возврата]
-- результат вызова
au_id au_lname au_fname phone
----------- ----------------------------------------
213-46-8915 Red Marjorie 415 986-7020 309
274-80-9391 Straight7 Dean 415 834-2919 5420
К-во Код возврата
----------- ------------
5 0
Сохранение набора строк, создаваемых хранимой процедурой
Для сохранение строк, создаваемых хранимой процедурой, в таблице БД используется оператор Insert – добавления строк в существующую таблицу:
INSERT [ TOP (<выражение> ) [ PERCENT] ]
[INTO] <табл./представление>
[(<список столбцов> ) ]
{ VALUES ( { DEFAULT | NULL | <выражение>}[,…]) |
EXECUTE (<строковое выражение>) |
EXECUTE <имя хранимой процедуры> . . . . . .
}
Изменение хранимой процедуры
Для внесения изменений в текст процедуры :
оператором DROP удалить ее из БД, а затем повторно создать оператором CREATE PROCEDURE. При этом придется повторно задавать разрешения на исполнение.
Оператор ALTER PROCEDURE или редактор процедур в Management Studio