Язык Transact-SQL

Подкатегории

Хранимые процедуры и функции, определенные пользователем

В этом разделе вводятся описания пакетов и подпрограмм. Пакеты являются последовательностью операторов Transact-SQL и процедурных расширений. Подпрограммы могут быть либо хранимыми процедурами, либо функциями, определенными пользователем (User Defined Function, UDF). В начале главы вводятся все процедурные расширения, поддерживаемые Database Engine. После этого процедурные расширения используются вместе с операторами Transact-SQL, чтобы продемонстрировать, как могут быть реализованы пакеты. Пакет может быть сохранен как объект базы данных в виде хранимой процедуры или UDF. Одни процедуры написаны пользователями, другие предоставляются корпорацией Microsoft, они называются системными хранимыми процедурами. В отличие от пользовательских хранимых процедур функции, написанные пользователем, возвращают вызвавшей программе некоторое значение. Все подпрограммы могут быть написаны либо на Transact-SQL, либо на любом языке программирования, таком как С# или Visual Basic.

Просмотреть материалы...

Система безопасности Database Engine

Этот раздел начинается с краткого обзора наиболее важных концепций безопасности базы данных. Затем обсуждаются специфические особенности системы безопасности Database Engine. Аутентификация требует ответа на следующий вопрос: «Имеет ли этот пользователь легитимные права на доступ в систему?» Следовательно, эта концепция безопасности задает процесс проверки полномочий для предотвращения использования системы неавторизованными пользователями.

Просмотреть материалы...

Управление параллельной работой

Как вы уже знаете, данные в базе данных обычно используются многими программами пользовательских приложений. Ситуация, при которой несколько программ пользовательских приложений читают и пишут одни и те же данные в одно и то же время, называется конкурентным доступом. Следовательно, каждая СУБД должна иметь некоторый механизм управления для разрешения проблем конкурентного доступа. Высокий уровень конкурентного доступа возможен в системе базы данных, которая может управлять многими активными пользовательскими приложениями без их влияния друг на друга. И наоборот, система базы данных, где различные активные приложения влияют друг на друга, поддерживает низкий уровень конкурентного доступа. Этот раздел начинается с описания двух моделей управления конкурентным доступом, которые поддерживает Database Engine. В следующем разделе объясняется, как проблемы конкурентного доступа могут быть решены с использованием транзакций. Это обсуждение включает вводные сведения в четыре свойства транзакций, известные как свойства ACID (Atomicity, Consistency, Isolation, Durability- атомарность, согласованность, изолированность, устойчивость), обсуждаются связанные с транзакциями операторы Transact-SQL, вводится понятие протокола транзакции. Затем рассматривается блокировка и три основных свойства блокировки: модели блокировки, ресурсы блокировки, длительность блокировки. Также вводится важное понятие взаимной блокировки, которая может возникать как результат обычной блокировки.

Просмотреть материалы...

Системный каталог

В этом разделе рассматривается системный каталог Database Engine. За общими сведениями следует описание представлений для просмотра структуры некоторых каталогов; представления позволяют вам просматривать метаданные. В начале главы также рассматривается использование динамически управляемых представлений и динамически управляемых функций. А затем обсуждаются четыре альтернативных способа поиска информации метаданных: системные хранимые процедуры, системные функции, функции свойств и информационная схема.

Просмотреть материалы...

Индексы

В этом разделе описываются индексы и их роль в оптимизации времени отклика запросов. В первой части главы рассматриваются вопросы хранения индексов и существующие для этого формы. В основном глава содержит описание трех операторов Transact-SQL, имеющих отношение к индексам: create index, alter index и drop index. После этого рассматривается фрагментация индексов и ее влияние на производительность системы. Затем приводятся некоторые общие рекомендации по созданию индексов.

Просмотреть материалы...

Представления – View

Этот раздел посвящена исключительно объектам базы данных, называемым представлениями (view). Структура этой главы соответствует структуре, в которых были описаны операторы DDL и DML для базовых таблиц. В первом разделе этой главы рассматриваются операторы DDL, связанные с представлениями: create view, alter view и drop view. Затем описываются операторы DDL для представлений: select, insert, update и delete. Оператор select будет рассмотрен отдельно от других трех операторов. В отличие от базовых таблиц представления не могут быть использованы для операций модификации без некоторых ограничений.

Просмотреть материалы...

Триггеры

Этот раздел посвящен механизму, называемому триггерами. В начале главы описываются операторы Transact-SQL для создания, удаления и изменения триггеров. После этого даются примеры из различных областей приложений для этого объекта базы данных. Каждый пример создается с использованием одного из операторов insert, update или delete. Во второй части этой главы рассматриваются триггеры DDL, которые базируются на таких операторах, как create table. Опять же, даются примеры из различных областей приложений, связанных с триггерами DDL.

Просмотреть материалы...

Основные элементы SQL

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

Просмотреть материалы...

Язык описания данных

Этот раздел описывает все операторы Transact-SQL, связанные с языком определения данных DDL (Data Definition Language). Операторы DDL разделены на три группы, которые рассматриваются по порядку. Первая группа включает операторы, которые создают объекты, вторая группа включает операторы, которые изменяют структуру объектов, а третья группа включает операторы, которые удаляют объекты базы данных.

Просмотреть материалы...

Запросы к базе данных

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

Просмотреть материалы...

Изменение содержимого таблиц

В дополнение к оператору select, который был описан, существуют три других оператора DML: insert, update и delete. Как и оператор select, эти три оператора модификации оперируют либо таблицами, либо представлениями. В данной главе обсуждаются эти операторы в работе с таблицами и даются примеры их использования. Дополнительно рассматриваются два других оператора: truncate table и merge. В то время как оператор truncate table является расширением в языке Transact-SQL стандарта SQL, оператор merge - новая и стандартизованная возможность в SQL Server 2008.

Просмотреть материалы...

Оценить
(1 голос)
Database Engine позволяет создавать индексы для детерминированных вычисляемых столбцов, где столбцы имеют точные типы данных. (Вычисляемый столбец называется детерминированным, если одни и те же значения всегда возвращаются для одних и тех же данных таблицы.) Индексированный вычисляемый столбец может быть создан, только если следующие опции в операторе set установлены в значение on (эти опции гарантируют детерминированность столбца): ♦ quoted_identifier; ♦ concat_null_yields_null; ♦ ansi_nulls; ♦ ansi_padding; ♦ ansi_warnings. Также должна быть установлена в off опция numeric_roundabort. Если вы создаете кластеризованный индекс для вычисляемого столбца, то значения этого столбца будут физически присутствовать в соответствующих строках таблицы, потому что страницы листьев кластеризованного индекса содержат…
Оценить
(1 голос)
Начиная с SQL Server 2005, можно явно отмечать вычисляемый столбец как постоянный, используя опцию persisted. Эта опция позволяет указать, что вычисляемый столбец будет физически существовать в соответствующих строках таблицы, даже если не будет создан корреспондирующий кластеризованный индекс. Эта возможность необходима для вычисляемых столбцов, созданных из приближенных типов данных (float и real). (Как вы уже знаете, вы можете создавать индекс для вычисляемых столбцов только в том случае, если используемые в вычислении столбцы имеют точные типы данных.)
Оценить
(1 голос)
Индексы используются для более эффективного доступа к данным. Они могут оказать влияние не только на оператор select, но и на производительность операторов insert, update и delete. Индекс может быть кластеризованным и некластеризованным, уникальным и неуникальным, одинарным или составным. Кластеризованный индекс физически сортирует строки таблицы в порядке указанного столбца (столбцов). Уникальный индекс указывает, что каждое значение может появиться только один раз в этом столбце (столбцах) таблицы. Составной индекс состоит более чем из одного столбца. Прекрасным средством, относящимся к индексам, является Database Engine Tuning Advisor (DTA), который будет, наряду с другими средствами, анализировать экземпляр вашей фактической рабочей нагрузки (поставляемый либо через файл…
Оценить
(0 голоса)
В предыдущих главах базовые таблицы описывались с использованием операторов DDL и DML. Базовая таблица содержит данные, хранимые на диске. В отличие от них представления по умолчанию не существуют физически, т. е. их содержимое не хранится на диске. Это неверно для так называемых индексированных представлений, которые обсуждаются позже В этом разделе. Представления являются объектами базы данных, которые всегда наследуют одну или более базовых таблиц (или представлений), используя информацию метаданных. Эта информация (включая имя представления и тот способ, который используется для выборки строк из базовых таблиц) является единственной информацией представления, которая сохраняется физически. Поэтому представления также часто называют виртуальными таблицами.
Оценить
(1 голос)
Представление создается при использовании оператора create view. Общая форма этого оператора: create view view_name {(column_list)] [with [encryption  i  schemabinding  i  view_metadata}] as select_statement [with check option] Здесь view_name- имя определяемого представления; coiumn_iist- список имен, которые будут использованы для столбцов в представлении. Если эта необязательная спецификация опущена, то будут использованы имена столбцов из таблиц, лежащих в основе представления. seiect_statement задает оператор select, который отыскивает строки и столбцы из одной или более таблиц (и/или представлений). Опция with encryption кодирует оператор select, повышая, таким образом, безопасность системы баз данных. Предложение schemabinding связывает представление со схемой таблицы, лежащей в основе представления. Когда задано schemabinding,…
Оценить
(0 голоса)
Язык Transact-SQL поддерживает нестандартный оператор alter view, который используется для изменения запроса в представлении. Синтаксис оператора alter view аналогичен синтаксису оператора create view. Вы можете использовать оператор alter view для исключения переназначения привилегий для представления. Изменение существующего представления с использованием этого оператора также не влияет на объекты базы данных (обычно хранимые процедуры), которые зависят от данного представления. В противном случае, если вы используете операторы drop view и create view для удаления и пересоздания представления, любые объекты базы данных, которые используют данное представление, не будут работать правильно, по крайней мере, в промежуток времени, когда представление удаляется и создается заново. В примере…
Оценить
(0 голоса)
Представление sys.objects является наиболее важным представлением просмотра каталогов, имеющим отношение к представлениям. Как вы уже знаете, это представление просмотра каталогов содержит информацию, связанную со всеми объектами текущей базы данных. Все строки этого представления, которые имеют значение v для столбца type, являются представлениями. Другое представление просмотра каталогов sys.views отображает дополнительную информацию о существующих представлениях. Наиболее важным столбцом этого представления является with_check_option, который сообщает, была ли задана опция with check option. Используя системную процедуру spheiptext, вы можете отобразить запрос, принадлежащий конкретному представлению.
Оценить
(0 голоса)
Представления отыскиваются и модифицируются при помощи тех же самых операторов Transact-SQL, которые используются для поиска и модификации базовых таблиц. В следующих подразделах описываются все четыре оператора DML, имеющие отношение к представлениям.
Оценить
(0 голоса)
Представление используется точно так же, как и любая базовая таблица базы данных. Вы можете думать о выборке данных из представления, как если бы оператор выборки был бы преобразован в эквивалентный оператор выборки данных из базовых таблиц, лежащих в основе представления. Пример 11.9 демонстрирует это.   Оператор select из примера 11.9 трансформируется в следующую эквивалентную форму с использованием базовой таблицы из представления v_d2: select emp_lname from employee where emp_lname like 'j%' and dept_no = 'd21; Следующие три раздела описывают использование представлений с тремя другими операторами DML: insert, update и delete. Изменение данных этими операторами трактуется в виде, аналогичном выборке данных. Единственным…
Оценить
(0 голоса)
Представление может быть использовано с оператором insert, как если бы оно было обычной базовой таблицей. Когда представление используется для добавления строк, строки фактически добавляются в соответствующую базовую таблицу.     Представление vdept, которое было создано в примере 11.10, содержит первые два столбца таблицы department. Последующий оператор insert добавляет строку в таблицу, связанную с представлением, используя значения 'd4' и 'Development'. Столбцу location, который не описан в представлении v_dept, присваивается значение null. При использовании представления обычно допустимо добавлять в представление новую строку, которая не удовлетворяет условиям в предложении where запроса в представлении. Опция with check option используется для ограничения добавления только тех…
© 2019 serversql.ru. Все права защищены.