В операции манипулирования данными входят три операции:
• операция удаления записей — ей соответствует оператор DELETE,
• операция добавления или ввода новых записей — ей соответствует оператор INSERT
• операция изменения (обновления записей) — ей соответствует оператор UPDATE.
Все операторы манипулирования данными позволяют изменить данные только в одной таблице.
Оператор удаления данных позволяет удалить одну или несколько строк из таблицы в соответствии с условиями, которые задаются для удаляемых строк.
Синтаксис оператора DELETE следующий:
DELETE FROM имя_ таблицы [WHERE условия_ отбора]
• Если условия отбора не задаются, то из таблицы удаляются все строки, однако это не означает, что удаляется вся таблица. Исходная таблица остается, но она остается пустой, незаполненной.
Оператор ввода данных INSERT имеет следующий синтаксис:
INSERT INTO имя_ таблицы [(<список столбцов>) ]
VALUES (<список значений>)
Операция обновления данных UPDATE требуется тогда, когда происходят изменения во внешнем мире и их надо адекватно отразить в базе данных.
Операция обновления имеет следующий формат:
UPDATE имя_ таблицы
SET имя_ столбца = новое_ значение [WHERE условие_ отбора]
• Часть WHERE является необязательной, так же как и в операторе DELETE. Она играет здесь ту же роль, что и в операторе DELETE, — позволяет отобрать строки, к которым будет применена операция модификации. Если условие отбора не задается, то операция модификации будет применена ко всем строкам таблицы.
В лекции рассматриваются часто используемые объекты в базах данных: хранимые процедуры и представления. Демонстрируется создание и управление этими объектами при помощи команд SQL.
Цель: сформировать понятие о назначении хранимых процедур и представлений.
Хранимая процедура (Stored procedure)– это именованный набор операторов Transact-SQL, хранящийся на сервере.
Организация взаимодействия между клиентом и сервером с помощью хранимых процедур предполагает следующее: клиент по известному имени вызывает блок команд, хранящийся на сервере базы данных, сервер выполняет этот блок команд и возвращает клиенту результат. Таким образом, использование хранимых процедур снижает сетевой трафик и сокращает число запросов клиентов, т.к. вместо пересылки по сети нескольких операторов передается лишь имя вызываемой процедуры.
Хранимые процедуры являются самостоятельными объектами базы данных, к которым можно разрешать или запрещать доступ командами GRANT и DENY. Например, выполнение следующей команды запретит выполнение команд хранимой процедуры hello для пользователя mng:
DENY exec ON hello TO mng.
Хранимые процедуры схожи с процедурами других языков программирования и позволяют:
· включать различные операторы и вызывать другие хранимые процедуры;
· принимать входные параметры и возвращать значения в виде выходных параметров.
MS SQL Server поддерживает следующие виды хранимых процедур:
· системные процедуры – хранятся в системной базе данных master, их имена начинаются с символов sp_. Используются для решения специализированных системных задач: администрирования, безопасности и др.;
· пользовательские процедуры – создаются, хранятся и выполняются пользователями в контексте только той базы данных, для которой были созданы;
· временные процедуры – доступны только в активном соединении, после закрытия соединения удаляются автоматически. Имена таких процедур должны начинаться с символа #.
Для работы с хранимыми процедурами предназначены системные хранимые процедуры:
· sp_helptext ИмяПроцедуры – выводит код указанной хранимой процедуры;
· sp_help ИмяПроцедуры – выводит список параметров и их типов данных для указанной процедуры;
· sp_stored_procedures– возвращает список сохраненных процедур текущей базы данных.
Как и большинство объектов MS SQL Server хранимая процедура может быть создана с помощью средств Transact-SQL или с применением графического интерфейса Management Studio.
При создании хранимой процедуры необходимо учитывать следующие особенности:
· процедура может содержать неограниченно количество операторов, кроме операторов создания следующих объектов: процедуры, представления, правила, умолчания;
· создание процедуры может выполнить пользователь роли sysadmin, db_owner или db_ddladmin, а также имеющий право на выполнение команды CREATE PROC;