Главная страница
Навигация по странице:

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

  • Создание функций Классы функций пользователя: Scalar

  • Multi-statement

  • Встроенные функции

  • Управление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника. Управление данными 3 сем. Управление данными


    Скачать 0.55 Mb.
    НазваниеУправление данными
    АнкорУправление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника
    Дата22.10.2022
    Размер0.55 Mb.
    Формат файлаdocx
    Имя файлаУправление данными 3 сем.docx
    ТипДокументы
    #748915
    страница8 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Удаление таблицы. Команда:

    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]

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

    Классы функций пользователя:

    1. 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).

    1. Inline - содержат всего одну команду SELECT и возвращают набор данных в виде значения типа данных TABLE.

    Команда:

    <определение_табл_функции>::=

    {CREATE | ALTER } FUNCTION [владелец.]

        имя_функции

    ( [ { @имя_параметра скаляр_тип_данных

        [=default]}[,...n]])

    RETURNS TABLE

    [ WITH {ENCRYPTION | SCHEMABINDING}

        [,...n] ]

    [AS]

    RETURN [(] SELECT_оператор [)]

    После ключевого слова RETURNS всегда должно ключевое слово TABLE (строго возвращает значение типа данных TABLE).

    Особенность функции данного типа заключается в том, что структура значения TABLE создается автоматически в ходе выполнения запроса, а не указывается явно при определении типа после ключевого слова RETURNS. Возвращаемое функцией значение типа TABLE может быть использовано непосредственно в запросе (в разделе FROM).

    1. 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]

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

    Математические функции

    ABS

    вычисляет абсолютное значение числа

    ACOS

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

    ASIN

    вычисляет арксинус

    ATAN

    вычисляет арктангенс

    ATN2

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

    CEILING

    выполняет округление вверх

    COS

    вычисляет косинус угла

    COT

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

    DEGREES

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

    EXP

    возвращает экспоненту

    FLOOR

    выполняет округление вниз

    LOG

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

    LOG10

    вычисляет десятичный логарифм

    PI

    возвращает значение «пи»

    POWER

    возводит число в степень

    RADIANS

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

    RAND

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

    ROUND

    выполняет округление с заданной точностью

    SIGN

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

    SIN

    вычисляет синус угла

    SQUARE

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

    SQRT

    извлекает квадратный корень

    TAN

    возвращает тангенс угла


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

    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

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



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

    DATEADD

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

    DATEDIFF

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

    DATENAME

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

    DATEPART

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

    DAY

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

    GETDATE

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

    ISDATE

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

    MONTH

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

    YEAR

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

    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта