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

Функции Transact-SQL

Функции языка Transact-SQL могут быть агрегатными или скалярными. Эти типы функций рассматриваются в этой статье.

Агрегатные функции

Агрегатные функции выполняют вычисления над группой значений столбца и всегда возвращают одно значение результата этих вычислений. Язык Transact-SQL поддерживает несколько обычных агрегатных функций:

Вычисляет среднее арифметическое значение данных, содержащихся в столбце. Значения, над которыми выполняется вычисление, должны быть числовыми.

MIN и MAX

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

Вычисляет общую сумму значений в столбце. Значения, над которыми выполняется вычисление, должны быть числовыми.

COUNT

Подсчитывает количество значений, отличных от null в столбце. Функция count(*) является единственной агрегатной функцией, которая не выполняет вычисления над столбцами. Эта функция возвращает количество строк (независимо от того, содержат ли отдельные столбцы значения null).

COUNT_BIG

Аналогична функции count, с той разницей, что возвращает значение данных типа BIGINT.

Использование обычных агрегатных функций в инструкции SELECT будет рассматриваться в одной из следующих статей.

Скалярные функции

Скалярные функции Transact-SQL используются в создании скалярных выражений. (Скалярная функция выполняет вычисления над одним значением или списком значений, тогда как агрегатная функция выполняет вычисления над группой значений из нескольких строк.) Скалярные функции можно разбить на следующие категории:

Эти типы функций рассматриваются в последующих разделах.

Числовые функции

Числовые функции Transact-SQL

Возвращает абсолютное значение (т. е. отрицательные значения возвращаются, как положительные) числового выражения n.

Обратные тригонометрические функции, вычисляющие арккосинус, арксинус, арктангенс значения n (для ATN2 вычисляется арктангенс n/m). Исходные значения n, m и результат имеют тип данных FLOAT.

Тригонометрические функции, вычисляющие косинус, синус, тангенс, котангенс значения n. Результат имеет тип данных FLOAT.

Функция DEGREES преобразует радианы в градусы, RADIANS соответственно наоборот.

Округляет число до большего целого значения.

Округляет до меньшего целого значения.

Возвращает значение π (3,1415).

Возвращает произвольное число типа FLOAT в диапазоне значений между 0 и 1.

Возвращает количество строк таблицы, которые были обработаны последней инструкцией Transact-SQL, исполненной системой. Возвращаемое значение имеет тип BIGINT.

Функции даты

Функции даты вычисляют соответствующие части даты или времени выражения или возвращают значение временного интервала. Поддерживаемые в Transact-SQL функции даты и их краткое описание приводятся в таблице ниже:

ФункцияСинтаксисОписаниеПример использования
ABSABS(n)
Функции даты Transact-SQL

Возвращает текущую системную дату и время.

Возвращает указанную в параметре item часть даты date в виде целого числа.

Возвращает указанную в параметре item часть даты date в виде строки символов.

Вычисляет разницу между двумя частями дат dat1 и dat2 и возвращает целочисленный результат в единицах, указанных в аргументе item.

Прибавляет n-е количество единиц, указанных в аргументе item к указанной дате date. (Значение аргумента n также может быть отрицательным.)

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

Строковые функции манипулируют значениями столбцов, которые обычно имеют символьный тип данных. Поддерживаемые в Transact-SQL строковые функции и их краткое описание приводятся в таблице ниже:

ФункцияСинтаксисОписаниеПример использования
GETDATEGETDATE()
Строковые функции Transact-SQL

Преобразовывает указанный символ в соответствующее целое число кода ASCII.

Преобразовывает код ASCII (или Unicode если NCHAR) в соответствующий символ.

Возвращает начальную позицию вхождения подстроки str1 в строку str2. Если строка str2 не содержит подстроки str1, возвращается значение 0

Возвращает целое число от 0 до 4, которое является разницей между значениями SOUNDEX двух строк str1 и str2. Метод SOUNDEX возвращает число, которое характеризует звучание строки. С помощью этого метода можно определить подобно звучащие строки. Работает только для символов ASCII.

Возвращает количество первых символов строки str, заданное параметром length для LEFT и последние length символов строки str для функции RIGHT.

Возвращает количество символов (не количество байт) строки str, указанной в аргументе, включая конечные пробелы.

Функция LOWER преобразовывает все прописные буквы строки str1 в строчные. Входящие в строку строчные буквы и иные символы не затрагиваются. Функция UPPER преобразовывает все строчные буквы строки str в прописные.

Функция LTRIM удаляет начальные пробелы в строке str, RTRIM соответственно удаляет пробелы в конце строки.

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

Возвращает начальную позицию первого вхождения шаблона p в заданное выражение expr, или ноль, если данный шаблон не обнаружен.

Заменяет все вхождения подстроки str2 в строке str1 подстрокой str3.

Повторяет i раз строку str.

Выводит строку str в обратном порядке.

Возвращает четырехсимвольный код soundex, используемый для определения похожести двух строк. Работает только для символов ASCII.

Возвращает строку пробелов длиной, указанной в параметре length. Аналог REPLICATE(‘ ‘, length).

Удаляет из строки str1 length-символов, начиная с позиции a, и вставляет на их место строку str2.

Извлекает из строки str, начиная с позиции a, подстроку длиной length.

Системные функции

Системные функции языка Transact-SQL предоставляют обширную информацию об объектах базы данных. Большинство системных функций использует внутренний числовой идентификатор (ID), который присваивается каждому объекту базы данных при его создании. Посредством этого идентификатора система может однозначно идентифицировать каждый объект базы данных.

В следующей таблице приводятся некоторые из наиболее важных системных функций вместе с их кратким описанием:

ФункцияСинтаксисОписаниеПример использования
ASCII, UNICODEASCII(char), UNICODE(char)
Системные функции Transact-SQL

Преобразовывает выражение w в указанный тип данных type (если это возможно). Аргумент w может быть любым действительным выражением.

Возвращает длину столбца col объекта базы данных (таблицы или представления) obj.

Эквивалент функции CAST, но аргументы указываются по-иному. Может применяться с любым типом данных.

Возвращает текущие дату и время.

Возвращает имя текущего пользователя.

Возвращает число байтов, которые занимает выражение z.

Возвращает 1, если использование значений null в базе данных dbname отвечает требованиям стандарта ANSI SQL.

Возвращает значение выражения expr, если оно не равно NULL; в противном случае возвращается значение value.

Определяет, имеет ли выражение expr действительный числовой тип.

Создает однозначный идентификационный номер ID, состоящий из 16-байтовой двоичной строки, предназначенной для хранения значений типа данных UNIQUEIDENTIFIER.

Создает идентификатор GUID, больший, чем любой другой идентификатор GUID, созданный ранее этой функцией на указанном компьютере. (Эту функцию можно использовать только как значение по умолчанию для столбца.)

Возвращает значение null, если значения выражений expr1 и expr2 одинаковые.

Возвращает информацию о свойствах сервера базы данных.

Возвращает ID текущего пользователя.

Возвращает идентификатор пользователя username. Если пользователь не указан, то возвращается идентификатор текущего пользователя.

Возвращает имя пользователя с указанным идентификатором id. Если идентификатор не указан, то возвращается имя текущего пользователя.

Функции метаданных

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

ФункцияСинтаксисОписаниеПример использования
CASTCAST (w AS type [(length)]
Функции метаданных Transact-SQL

Возвращает имя столбца с указанным идентификатором col_id таблицы с идентификатором tab_id.

Возвращает информацию об указанном столбце.

Возвращает значение свойства property базы данных database.

Возвращает идентификатор базы данных db_name. Если имя базы данных не указано, то возвращается идентификатор текущей базы данных.

Возвращает имя базы данных, имеющей идентификатор db_id. Если идентификатор не указан, то возвращается имя текущей базы данных.

Возвращает имя индексированного столбца таблицы table. Столбец указывается идентификатором индекса i и позицией no столбца в этом индексе.

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

Возвращает имя объекта базы данных, имеющего идентификатор obj_id.

Возвращает идентификатор объекта obj_name базы данных.

Возвращает информацию об объектах из текущей базы данных.

Источник

Скалярные операторы Transact-SQL

Скалярные операторы используются для работы со скалярными значениями. Язык Transact-SQL поддерживает числовые и логические операторы, а также конкатенацию.

Логические операторы обозначаются двумя разными способами, в зависимости от того, применяются они к битовым строкам или к другим типам данных. Операторы NOT, AND и OR применяются со всеми типами данных (за исключением данных типа BIT).

Далее описаны побитовые (логические) операторы для обработки строк, а в примере ниже демонстрируется их использование:

Оператор конкатенации + применяется для соединения символьных или битовых строк.

Глобальные переменные

— это специальные системные переменные, которые можно использовать, как будто бы они были скалярными константами. Язык Transact-SQL поддерживает большое число глобальных переменных, именам которых предшествует префикс @@. В таблице ниже приводится список некоторых наиболее важных глобальных переменных и их краткое описание. (Полный список глобальных переменных можно найти в электронной документации по T-SQL.)

ФункцияСинтаксисОписаниеПример использования
COL_NAMECOL_NAME (tab_id, col_id)
Глобальные переменные

Возвращает число попыток входа со времени запуска системы.

Возвращает общее время занятости центрального процессора (в миллисекундах), прошедшее с момента старта системы.

Возвращает информацию о возвращенном значении последней исполненной инструкции Transact-SQL.

Возвращает последнее значение, добавленное в столбец, имеющий свойство IDENTITY.

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

Возвращает названия языка, используемого в настоящий момент базой данных.

Возвращает максимальное число фактических соединений с системой.

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

Возвращает количество строк таблицы, которые были затронуты последней инструкцией Transact-SQL, исполненной системой.

Возвращает информацию о локальном сервере базы данных. Эта информация содержит, среди прочего, имя сервера и имя экземпляра.

Возвращает идентификатор серверного процесса.

Возвращает текущую версию программного обеспечения системы баз данных.

Источник

Что такое скалярное значение sql

— календарные даты в стандарте представляются в виде строковых констант. Например, 1 сентября 1999 года должно быть представлено как один из следующих вариантов: 09/01/1999, 09:01:1999, 01.09.1999, 01-SEP-1999 или 1999-09-01.

В БД некоторые данные могут отсутствовать из-за того, что они неизвестны на данный момент времени или не существуют по своей природе.

Во многих ситуациях значения NULL требуют от СУБД отдельной обработки.

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

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

В Firebird 2.1 предусмотрено несколько категорий операций (табл. 2.4) [16].

Таблица 2.4. Категории операций

Выполняется лишь над одним выражением любого типа данных из категории числовых типов данных

Операция конкатенации ( ), которая соединяет строки, являющиеся ее операндами

Проверяют истинность условий AND, OR, NOT

Возвращает различные результаты в зависимости от определенных условий (CASE)

Расширяют возможности операций сравнения (ANY, ALL, BETWEEN, DISTINCT FROM, EXIST, SINGULAR, IN, IS NULL, LIKE, CONTAINING, STARTING WITH)

— в языке DDL: CHECK для проверки условий достоверности данных;

— в языке DQL: WHERE (для условий поиска), HAVING (для условий выбора групп), ON (для условий соединения) и случаи проверки

множества условий: CASE, COALESCE, NULLIF, IIF;

— в языке PSQL: IF (универсальная проверка истина/ложь), WHILE (для проверки условий цикла) и WHEN (для проверки кодов исключения).

Часто условия являются не простыми предикатами, а группой нескольких предикатов (связанных логическими операциями AND или OR), каждый из которых при вычислении делает вклад в вычисление общей истинности.

Для построения всех этих видов выражений могут использоваться константы, переменные, имена столбцов, функции и подзапросы, возвращающие результат соответствующего типа в зависимости от разновидности скалярного выражения. Во все эти виды выражений могут входить CASE-выражения (или выражения с переключателем), которые представляют собой либо операцию CASE, либо функции вывода (выбора вариантов). Более подробно CASE-выражения будут рассмотрены далее.

Простым примером численного выражения является 2*2. Следующее выражение является более сложным и использует функцию и строковую операцию :

Год подачи ремонтной заявки EXTRACT (YEAR From IncomingDate). 2.9. Типы данных

Типы данных определяют столбцы таблицы БД в следующих случаях:

— при определении (создании) таблицы запросом CREATE TABLE;

— при определении домена запросом CREATE DOMAIN;

— при добавлении нового столбца запросом ALTER TABLE.

В SQL используются основные типы данных, форматы которых могут несколько различаться для разных СУБД. Общий вид определения типа данных выглядит следующим образом:

В табл. 2.5 приведено описание типов данных SQL, используемых в СУБД Firebird [18].

Символьные типы данных представлены типами CHAR и VARCHAR.

Тип VARCHAR представляет строки переменной длины. В отличие от типа CHAR при сохранении в БД недостающие символы не заполняются пробелами. При чтении считываются только введенные символы, а затем дополняются пробелами.

Символьные типы фиксированной длины не могут превышать 32767 байт абсолютной длины; для типов переменной длины этот предел уменьшается на два байта, которые при сохранении строки содержат счетчик символов [18].

Числовые типы данных представлены типами SMALLINT, INTEGER и BIGINT, NUM4ERIC и DECIMAL, DOUBLE PRECISION и FLOAT.

Источник

Что такое скалярное значение sql

Общая характеристика оператора SELECT и организация списка ссылок на таблицы в разделе FROM

что такое скалярное значение sql. 3 clip image002. что такое скалярное значение sql фото. что такое скалярное значение sql-3 clip image002. картинка что такое скалярное значение sql. картинка 3 clip image002. Функции языка Transact-SQL могут быть агрегатными или скалярными. Эти типы функций рассматриваются в этой статье.

TRUE

FALSE

UNKNOWN

TRUE

FALSE

UNKNOWN

IS NOT

TRUE

FALSE

UNKNOWN

TRUE

FALSE

UNKNOWN

Выражения с переключателем
Выражения с переключателем в некотором смысле ортогональны рассмотренным выше видам выражений, поскольку разные выражения с переключателем могут вырабатывать значения разных типов в зависимости от типа данных элементов. Поскольку мы еще вообще не рассматривали этот вид выражений, обсудим их более подробно. Как обычно, начнем с синтаксиса:
case_expression ::= case_abbreviation
| case_specification

simple_case ::= CASE value_expression simple_when_clause_list
[ ELSE value_expression ] END

что такое скалярное значение sql. 3 clip image002 0000. что такое скалярное значение sql фото. что такое скалярное значение sql-3 clip image002 0000. картинка что такое скалярное значение sql. картинка 3 clip image002 0000. Функции языка Transact-SQL могут быть агрегатными или скалярными. Эти типы функций рассматриваются в этой статье.

что такое скалярное значение sql. 3 clip image002 0001. что такое скалярное значение sql фото. что такое скалярное значение sql-3 clip image002 0001. картинка что такое скалярное значение sql. картинка 3 clip image002 0001. Функции языка Transact-SQL могут быть агрегатными или скалярными. Эти типы функций рассматриваются в этой статье.

Ссылки на таблицы раздела FROM
Напомним, что раздел FROM оператора выборки определяется синтаксическим правилом
FROM table_reference_commalist
Рассмотрим более подробно, какой вид могут иметь элементы этого списка. Для начала приведем полный набор синтаксических правил SQL:1999, определяющий table_reference.
table_reference ::= table_primary | joined_table
table_primary ::= table_or_query_name [ [ AS ] correlation_name
[ (derived_column_list) ] ]
| derived_table [ [ AS ] correlation_name
[ (derived_column_list) ] ]
| lateral_derived_table [ [ AS ] correlation_name
[ (derived_column_list) ] ]
| collection_derived_table [ [ AS ] correlation_name
[ (derived_column_list) ] ]
| ONLY (table_or_query_name)[ [ AS ] correlation_name
[ (derived_column_list) ] ]
| (joined_table)
table_or_query_name ::= < table_name | query_name >
derived_table ::= (query_expression)
lateral_derived_table ::= LATERAL (query_expression)
collection_derived_table ::= UNNEST
(collection_value_exression) [ WITH ORDINALITY ]
Мы отложим до следующих лекций обсуждение порождаемых таблиц с горизонтальной связью (lateral_derived_table) и «соединенных таблиц» (joined_table). Кроме того, мы не будем рассматривать в этом курсе конструкции collection_derived_table и ONLY (table_or_query_name), поскольку они относятся к объектным расширениям языка SQL, которые в данном курсе подробно не рассматриваются (на неформальном уровне объектно-реляционный подход обсуждается в последней лекции этого курса). Но даже при таких самоограничениях для дальнейшего продвижения нам придется определить несколько дополнительных синтаксических конструкций языка SQL.
Табличное выражение, спецификация запроса и выражение запросов
Табличным выражением (table_expression) называется конструкция
table_expression ::= FROM table_reference_commalist
[ WHERE conditional_expression ]
[ GROUP BY column_name_commalist ]
[ HAVING conditional_expression ]
Спецификацией запроса (query_specification) называется конструкция
query_specification SELECT [ ALL | DISTINCT ]
select_item_commalist table_expression
Наконец, выражением запросов (query_expression) называется конструкция
query_expression ::= [ with_clause ] query_expression_body
query_expression_body ::= < non_join_query_expression
| joined_table >
non_join_query_expression ::= non_join_query_term
| query_expression_body
< UNION | EXCEPT >[ ALL | DISTINCT ]
[ corresponding_spec ] query_term
query_term ::= non_join_query_term | joined_table
non_join_query_term ::= non_join_query_primary
| query_term INTERSECT [ ALL | DISTINCT ]
[ corresponding_spec ] query_primary
query_primary ::= non_join_query_primary | joined_table
non_join_query_primary ::= simple_table
| (non_join_query_expression)
simple_table ::= query_specification
| table_value_constructor
| TABLE table_name
corresponding_spec ::= CORRESPONDING
[ BY column_name_comma_list ]
Если не обращать внимания на не обсуждавшиеся пока конструкции joined_table и table_value_constructor, синтаксические правила показывают, что выражение запросов строится из выражений, значениями которых являются таблицы, с использованием «теоретико-множественных»операций UNION (объединение), EXCEPT (вычитание) и INTERSECT (пересечение). Операция пересечения является «мультипликативной» и обладает более высоким приоритетом, чем «аддитивные» операции объединения и вычитания. Вычисление выражения производится слева направо с учетом приоритетов операций и круглых скобок. При этом действуют следующие правила.

Раздел WITH выражения запросов
Как видно из синтаксиса выражения запросов, в этом выражении может присутствовать раздел WITH. Он задается в следующем синтаксисе:
with_clause ::= WITH [ RECURSIVE ] with_element_comma_list
with_element ::= query_name [ (column_name_list) ]
AS (query_expression) [ search_or_cycle_clause ]
Общую форму раздела WITH мы обсудим в следующих лекциях, когда будем рассматривать средства формулировки рекурсивных запросов. Пока ограничимся случаем, когда в разделе WITH отсутствуют спецификация RECURSIVE и search_or_cycle_clause. Тогда конструкция
WITH query_name (c1, c2, ѕ cn) AS (query_exp_1) query_exp_2
означает, что в любом месте выражения запросов query_exp_2, где допускается появление ссылки на таблицу, можно использовать имя query_name. Можно считать, что перед выполнением query_exp_2 происходит выполнение query_exp_1, и результирующая таблица с именами столбцов c1, c2, … cn сохраняется под именем query_name. Как мы увидим позже, в этом случае раздел WITH фактически служит для локального определения представляемой таблицы (VIEW).

что такое скалярное значение sql. 3 clip image002 0002. что такое скалярное значение sql фото. что такое скалярное значение sql-3 clip image002 0002. картинка что такое скалярное значение sql. картинка 3 clip image002 0002. Функции языка Transact-SQL могут быть агрегатными или скалярными. Эти типы функций рассматриваются в этой статье.

Конструкторы значения строки и таблицы
Чтобы завершить обсуждение выражений запросов (с учетом того, что конструкция соединенных таблиц (joined_table) отложена на следующие лекции), нам осталось рассмотреть конструкции table_value_constructor и TABLE table_name.
В определении конструктора значения-таблицы используется конструктор значения-строки, который строит упорядоченный набор скалярных значений, представляющий строку (возможно и использование подзапроса):
row_value_constructor ::= row_value_constructor_element
| [ ROW ] (row_value_constructor_element_comma_list)
| row_subquery
row_value_constructor_element ::= value_expression | NULL | DEFAULT
Заметим, что значение элемента по умолчанию можно использовать только в том случае, когда конструктор значения-строки применяется в операторе INSERT (тогда этим значением будет значение по умолчанию соответствующего столбца).
Конструктор значения-таблицы производит таблицу на основе заданного набора конструкторов значений-строк:
table_value_constructor ::= VALUES
row_value_constructor_comma_list
Конечно, для того чтобы корректно построить таблицу, требуется, чтобы строки, производимые всеми конструкторами строк, были одной и той же степени и чтобы типы (или домены) соответствующих столбцов являлись приводимыми.
Наконец, конструкция TABLE table_name является сокращенной формой записи выражения SELECT * FROM table_name.
Ссылки на базовые, представляемые и порождаемые таблицы
Теперь мы можем завершить обсуждение разновидностей ссылок на таблицу в разделе FROM. Для удобства повторим синтаксические правила (опустив конструкции, рассмотрение которых отложено на следующие лекции или выходит за пределы материала данного курса):
table_reference ::= table_primary
table_primary ::= table_or_query_name [ [ AS ] correlation_name
[ (derived_column_list) ] ]
| derived_table [ AS ] correlation_name
[ (derived_column_list) ]
table_or_query_name ::= < table_name | query_name >
derived_table ::= (query_expression)
Итак, в самом простом случае в качестве ссылки на таблицу используется имя таблицы (базовой или представляемой) или имя запроса, присоединенного к данному запросу с помощью раздела WITH. В другом случае (derived_table) порождаемая таблица задается выражением запроса, заключенным в круглые скобки. Явное указание имен столбцов результата запроса из раздела WITH или порождаемой таблицы требуется в том случае, когда эти имена не выводятся явно из соответствующего выражения запроса. Обратите внимание, что в таких случаях в соответствующем элементе списка раздела FROM должен указываться псевдоним (correlation_name), потому что иначе таблица была бы вообще лишена имени. Можно считать, что выражение запроса вычисляется и сохраняется во временной таблице при обработке раздела FROM.
Возможно, некоторых читателей смутила рекурсивная природа синтаксических определений, приведенных в этом подразделе. Чтобы определить понятие ссылки на таблицу в разделе FROM оператора выборки, который опирается на спецификацию запроса, нам пришлось ввести более общее понятие выражения запросов, в определении которого используется спецификация запроса. Да, действительно, многие синтаксические конструкции SQL определяются рекурсивно. Но эта рекурсия никогда не приводит к зацикливанию. В частности, раскрутка рекурсии операторов выборки основывается на базовой, не выделяемой отдельными синтаксическими правилами форме, в которой в разделе FROM указываются только имена базовых таблиц.
Представляемые таблицы, или представления (VIEW)
Еще одним примером рекурсивности спецификаций языка SQL является то, что в конце этой лекции мы вынуждены прервать обсуждение оператора выборки и ввести понятие представляемой таблицы, или представления, которую можно использовать в операторе выборки наряду с базовыми таблицами. Только после этого можно будет считать обсуждение ссылок на таблицы в разделе FROM условно завершенным. Итак, оператор создания представления в общем случае определяется следующими синтаксическими правилами:
create_view ::= CREATE [ RECURSIVE ] VIEW table_name
[ column_name_comma_list ]
AS query_expression
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
Рекурсивные представления (такие, в определении которых присутствует ключевое слово RECURSIVE) и необязательный раздел WITH CHECK OPTION мы обсудим в следующих лекциях (пока лишь заметим, что этот раздел связан с особенностями выполнения операций обновления базы данных через представления). Здесь мы кратко рассмотрим только простую форму представлений, определяемых по следующим правилам:
create_view ::= CREATE VIEW table_name
[ column_name_comma_list ]
AS query_expression
Имя таблицы, задаваемое в определении представления, существует в том же пространстве имен, что и имена базовых таблиц, и, следовательно, должно отличаться от всех имен таблиц (базовых и представляемых), созданных тем же пользователем. Если имя представления встречается в разделе FROM какого-либо оператора выборки, то вычисляется выражение запроса, указанное в разделе AS, и оператор выборки работает с результирующей таблицей этого выражения запроса.Явное указание имен столбцов представляемой таблицы требуется в том случае, когда эти имена не выводятся из соответствующего выражения запроса.
Как и для всех других вариантов оператора CREATE, для CREATE VIEW имеется обратный оператор DROP VIEW table_name, выполнение которого приводит к отмене определения представления (реально это выражается в удалении данных о представлении из таблиц-каталогов базы данных). После выполнения операции пользоваться представлением с данным именем становится невозможно.
Заключение
В ходе чтения лекций, посвященных оператору SELECT языка SQL, мне неоднократно случалось слышать жалобы студентов на сухость начального материала и отсутствие иллюстрирующих примеров. Однако я не встречал ни одного учебного пособия по языку SQL, основанного на примерах (среди многочисленных изданий типа «SQL за 24 часа», «SQL для чайников» и даже «SQL для идиотов»), который действительно давал бы представление об SQL как языке, а не служил инструкцией армейского типа.
Сложность организации оператора выборки не позволяет сразу начинать с полноценных примеров, а для демонстрации примеров промежуточных конструкций требуется создание неприемлемо громоздкого контекста. Поэтому могу лишь принести извинения за некоторую сухость этой лекции.
С другой стороны, теперь мы уже вплотную подошли к тому этапу, на котором возможно использование иллюстраций, и в следующих лекциях их будет достаточно, хотя проиллюстрировать все интересные разновидности оператора SELECT все равно не представляется возможным, поскольку число вариантов близко к астрономическому.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ПеременнаяОписание
@@CONNECTIONS