
- •Введение. Цели и задачи. Изучение базы и банков данных
- •Реляционные базы данных
- •Реляционная база данных
- •Функции субд. Типовая организация субд
- •Типовая организация субд
- •Базисные средства манипулирования реляционными данными
- •Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Особенности теоретико-множественных операций реляционной алгебры
- •Реляционное исчисление
- •Целостность сущности и ссылок
- •Субд в архитектуре клиент-сервер
- •Сервера баз данных
- •Типичные распределения функций между клиентами и серверами
- •Оптимизация запросов
- •Стадии процесса оптимизации запросов
- •Язык реляционных баз данных sql
- •Типы данных
- •1) Числовые целые типы данных.
- •2) Нецелочисленные типы данных.
- •3) Денежные типы данных.
- •4) Типы данных для хранения информации о времени.
- •5) Бинарные типы данных.
- •6) Символьные типы данных.
- •7) Текстовые типы данных.
- •8) Специальные типы данных.
- •Управляющие конструкции Transact sql
- •If...Else
- •Логические операторы
- •Создание, модификация и удаление таблиц
- •Определение идентификационной колонки (Identity)
- •Создание таблиц средствами transact sql
- •Изменение структуры таблицы при помощи Transact-sql
- •Управление данными
- •Использование insert
- •Извлечение данных
- •Раздел into предназначен для сохранения результата, выполнения запроса в заданной таблице.
- •Изменение данных
- •Хранимые процедуры
- •Создание хранимых процедур
- •1. Определение типа создаваемой хранимой процедуры.
- •2. Определение входных и выходных параметров хранимой процедуры.
- •3. Разработка кода хранимой процедуры.
- •Управление процессом компиляции хранимой процедуры
- •Управление автоматическим выполнением хранимых процедур
- •Модификация хранимой процедуры
- •Удаление хранимых процедур
- •Использование индексов
- •Создание индексов
- •Использование представлений
- •Создание триггеров
- •Использование курсора
- •Управление правами доступа к объектам базы данных
- •Современные направления исследований и разработок
If...Else
Часто определенная часть программы должна выполняться только при определенном условии. Синтаксис этой конструкции следующий:
IF Boolean_expression
{sql_statement | statement_block}
[ELSE
{sql_statement | statement_block}]
Аргумент Boolean_expression определяет логическое условие, которое должно возвращать одно из двух значений: TRUE (истина) – если условие выполняется и FALSE (ложь) – если условие не выполняется. Если возвращается значение TRUE, выполняется первая команда sql_statement или блок команд statement_block. Если логическое условие возвращает FALSE, то будет выполнена команда, находящаяся после ключевого слова ELSE (иначе). При отсутствии команд, выполняемых при несоблюдении условия, ключевое слово ELSE можно не указывать.
CASE...END
Эта конструкция часто используется для замены множества одиночных или вложенных конструкций IF...ELSE. Конструкция CASE...END возвращает результат, который можно использовать в качестве переменной в других выражениях. При этом она рассматривается как функция. Синтаксис конструкции CASE...END следующий:
CASE input_expression
WHEN { when_expression | Boolean_expression }
THEN result_expression
[...n]
[ ELSE else_result_expression ]
END
Аргумент input_expression определяет входное значение. Можно указать имя переменной или использовать функцию. Аргумент when_expression определяет один из вариантов значений аргумента input_expression. Если аргументы when_expression и input_expression совпадают, то конструкция CASE...END возвращает значение result_expression. Можно указать несколько строк WHEN...THEN, которые будут содержать все возможные варианты величины input_expression. Если все же значение входного параметра не найдено ни в одной строке WHEN...THEN, то тогда будет возвращено значение, указанное после ключевого слова ELSE.
Логические операторы
Оператор ALL
ехрг { = | <> | != | > | >= | !> | < | <= | !< } ALL (subquery)
С помощью оператора ALL выполняется сравнение скалярного выражения со всеми значениями, возвращаемыми подзапросом. Скалярная величина сравнивается с каждым значением, возвращаемым подзапросом. Если логическое условие выполняется для всех возвращаемых подзапросом значений, только тогда все условие считается выполненным.
Операторы SOME и ANY
С помощью этих операторов можно сравнивать скалярную величину со всеми значениями в колонке таблицы. Разницы между использованием операторов ANY и SOME нет. Если хотя бы в одной строке содержится значение, равное скалярной величине, то условие выполняется. Часто такой подход используется для получения ответа на вопрос, имеется ли в колонке нужное значение.
Оператор BETWEEN
test_expression [NOT] BETWEEN begin_expression AND end_expression
С помощью этого оператора можно получить ответ на вопрос, лежит ли величина в указанном диапазоне. Исходная величина задается аргументом test_expression. Аргумент begin_expression задает начало диапазона, а аргумент end_expression – конец диапазона.
Оператор EXISTS
EXISTS (subquery)
Это оператор возвращает значение TRUE, если указанный подзапрос возвращает хотя бы одну строку. В противном случае возвращается значение FALSE.
Оператор IN
test_expression [NOT] IN (subquery | expression [,...n])
С помощью этого оператора можно проверить, соответствует ли выражение test_expression одному из перечисленных выражений или значений, возвращаемых подзапросом. При работе с подзапросами оператор IN можно заменить оператором «= ANY».
Оператор LIKE
match_expression [NOT] LIKE pattern [ESCAPE escape_character]
С помощью этого оператора можно выполнять сравнение выражения с заданным шаблоном. Аргумент match_expression задает исходное выражение, для которого необходимо выполнить проверку. Шаблон для сравнения, включающий символы-заменители, задастся с помощью аргумента pattern. Допускается использование следующих символов-заменителей:
«%» – вместо этого символа может быть подставлено любое количество произвольных символов;
«_» – заменяет один символ строки;
«[ ]» – вместо одного символа строки будет подставлен набор возможных символов, указанный в этих ограничителях. Кроме того, допускается указание диапазонов символов;
«[^]» – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях.
Как видно, некоторые символы («%», «_», «[», «^» и «]») зарезервированы и их использование затруднительно. При заключении символов-шаблонов в квадратные скобки они воспринимаются как обычные символы. Тем не менее, операнд LIKE позволяет использовать специальный управляющий символ, задаваемый с помощью аргумента escape_character.