Управление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника. Управление данными 3 сем. Управление данными
Скачать 0.55 Mb.
|
Удаление таблицы. Команда: DROP TABLE имя_таблицы Пример (создание родительской таблицы товар с ограничениями): CREATE TABLE Товар (КодТовара INT IDENTITY(1,1) PRIMARY KEY, Название VARCHAR(50) NOT NULL UNIQUE, Цена MONEY NOT NULL, Тип VARCHAR(50) NOT NULL, Сорт VARCHAR(50) NOT NULL CHECK(сорт in('первый','второй','третий')), Город VARCHAR(50) NOT NULL, Остаток INT CHECK(остаток>=0)) Пример (создание дочерней таблицы сделка с ограничениями): CREATE TABLE Сделка (КодСделки INT IDENTITY(1,1) PRIMARY KEY, КодТовара INT NOT NULL, КодКлиента INT NOT NULL, Количество INT NOT NULL DEFAULT 0, Дата DATETIME NOT NULL DEFAULT GETDATE(), CONSTRAINT fk_Товар FOREIGN KEY(КодТовара) REFERENCES Товар, CONSTRAINT fk_Клиент FOREIGN KEY(КодКлиента) REFERENCES Клиент) Создание представлений Представления (просмотры, VIEW) - временные, производные (виртуальные) таблицы, являются объектами БД, информация в которых не хранится постоянно, а формируется динамически при обращении к ним. Представление - это предопределенный запрос, хранящийся в БД, который выглядит подобно обычной таблице и не требует для своего хранения дисковой памяти (только оперативная). Команда создания и изменения: <определение_просмотра> ::= { CREATE| ALTER} VIEW имя_просмотра [(имя_столбца [,...n])] [WITH ENCRYPTION] AS SELECT_оператор [WITH CHECK OPTION] Параметр WITH ENCRYPTION предписывает серверу шифровать SQL-код запроса (скрывает имена исходных таблиц и столбцов, алгоритм объединения данных). Параметр WITH CHECK OPTION предписывает серверу исполнять проверку изменений, производимых через представление, на соответствие критериям, определенным в операторе SELECT. Выборка данных из представления: SELECT * FROM ... * - символ ссылается на все столбцы, существующие в исходной таблице на момент создания представления. Добавление строки: INSERT INTO ... VALUES (...,'...', '...') Удаление: DROP VIEW имя_просмотра [,...n] Приемущества: независимость от данных, актуальность, повышение защищенности данных, снижение стоимости, возможность настройки, обеспечение целостности данных. Недостатки: ограниченные возможности обновления, структурные ограничения, снижение производительности. Создание функций Классы функций пользователя: Scalar - возвращают обычное скалярное значение, каждая функция может включать множество команд, объединяемых в один блок с помощью конструкции BEGIN...END. Команда: <определение_скаляр_функции>::= {CREATE | ALTER } FUNCTION [владелец.] имя_функции ( [ { @имя_параметра скаляр_тип_данных [=default]}[,...n]]) RETURNS скаляр_тип_данных [WITH {ENCRYPTION | SCHEMABINDING} [,...n] ] [AS] BEGIN <тело_функции> RETURN скаляр_выражение END Функция может содержать один или несколько входных параметров или ни одного. Каждый параметр должен иметь уникальное имя и начинаться с символа «@». Конструкция RETURNS скаляр_тип_данных указывает, какой тип данных будет иметь возвращаемое функцией значение. Дополнительные параметры WITH: благодаря ключевому слову ENCRYPTION код команды, используемый для создания функции, будет зашифрован, запретить внесение изменений с помощью ключевого слова SCHEMABINDING (во избежание удаления объектов БД). Между ключевыми словами BEGIN...END - набор команд (тело функции). RETURN - завершение выполнения функции и как результат вычисления возвращается значение после слова RETURN (обычные константы, сложные выражения; тип данных возвращаемого значения должен совпадать с типом данных, указанным после ключевого слова RETURNS). Inline - содержат всего одну команду SELECT и возвращают набор данных в виде значения типа данных TABLE. Команда: <определение_табл_функции>::= {CREATE | ALTER } FUNCTION [владелец.] имя_функции ( [ { @имя_параметра скаляр_тип_данных [=default]}[,...n]]) RETURNS TABLE [ WITH {ENCRYPTION | SCHEMABINDING} [,...n] ] [AS] RETURN [(] SELECT_оператор [)] После ключевого слова RETURNS всегда должно ключевое слово TABLE (строго возвращает значение типа данных TABLE). Особенность функции данного типа заключается в том, что структура значения TABLE создается автоматически в ходе выполнения запроса, а не указывается явно при определении типа после ключевого слова RETURNS. Возвращаемое функцией значение типа TABLE может быть использовано непосредственно в запросе (в разделе FROM). Multi-statement - возвращают значение типа данных TABLE, содержащее набор данных, однако в теле функции находится множество команд SQL (INSERT, UPDATE и т.д.). Команда: <определение_мульти_функции>::= {CREATE | ALTER }FUNCTION [владелец.] имя_функции ( [ { @имя_параметра скаляр_тип_данных [=default]}[,...n]]) RETURNS @имя_параметра TABLE <определение_таблицы> [WITH {ENCRYPTION | SCHEMABINDING} [,...n] ] [AS] BEGIN <тело_функции> RETURN END При создании необходимо явно задать структуру возвращаемого значения после ключевого слова TABLE. Набор возвращаемых данных формируется с помощью команд INSERT, выполняемых в теле функции (допускается использование различных конструкций языка SQL, которые могут контролировать значения, размещаемые в выходном наборе строк). При работе с INSERT явно указать имя объекта, куда необходимо вставить строки (поэтому необходимо присвоить имя объекту с типом данных TABLE – оно и указывается как возвращаемое значение). Завершение работы функции происходит в двух случаях: если возникают ошибки выполнения и только при появлении ключевого слова RETURN. При исп. RETURN не нужно указывать возвращаемое значение (может быть более одной команды). Команда удаления функции: DROP FUNCTION {[ владелец.] имя_функции } [,...n] Встроенные функции: математические, строковые, для работы с датой и временем, конфигурирования, системы безопасности, управления метаданными, статистические. Математические функции
Строковые функции
Функции для работы с датой и временем
|