Язык 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.

Просмотреть материалы...
Оценить
(0 голоса)
SQL Server 2005 вводит представления просмотра каталога, как новый интерфейс для поиска системной информации в системном каталоге. Представления просмотра каталога являются наиболее общим интерфейсом для метаданных и предоставляют наиболее эффективный способ получения настраиваемых форм для этой информации (см. примеры 9.1-9.3). Представления просмотра каталога принадлежат схеме sys, следовательно, вы должны использовать имя схемы при доступе к объектам. В этом разделе описываются три наиболее важных представления просмотра каталога: ♦ sys.objects; ♦ sys.columns; ♦ sys.database_principals. Представление просмотра каталога sys.objects содержит одну строку для каждого объекта, определенного пользователем в схеме пользователя. Существуют два других представления просмотра каталогов, которые предоставляют похожую информацию: sys.system_objects и sys.ailobjects.…
Оценить
(0 голоса)
Как уже было сказано В этом разделе, все системные таблицы имеют ту же структуру, что и базовые таблицы. Так как к системным таблицам невозможно обращение напрямую, вы должны использовать запросы к представлениям просмотра каталогов, которые соответствуют отдельным системным таблицам. В примерах 9.1-9.3 используются существующие представления просмотра каталогов для демонстрации того, как можно запросить информацию, связанную с объектами базы данных.       Столбец object_id из представления просмотра каталога sys.objects отображает уникальный идентификационный номер соответствующего объекта базы данных. Значение null в столбце principalid говорит о том, что владельцем объекта является владелец схемы, и в столбце type означает пользователя (таблица).    
Оценить
(0 голоса)
Динамически управляемые представления (DMV) и динамически управляемые функции (DMF) возвращают информацию о состоянии сервера, которая может быть использована для просмотра активных процессов и, соответственно, для настройки производительности системы или для мониторинга актуального состояния системы. В отличие от представлений просмотра каталогов DMV и DMF базируются на внутренних структурах системы. DMV и DMF принадлежат схеме sys, а их имена начинаются с префикса dm_, за которым следует текстовая строка, определяющая категорию, к которой принадлежит конкретный элемент DMV или DMF. Следующий список идентифицирует и описывает некоторые из этих категорий: ♦ dm_db_* содержит информацию о базе данных и ее объектах; ♦ dm_tran_* содержит информацию относительно…
Оценить
(0 голоса)
Информационная схема состоит из представлений только для чтения, которые предоставляют информацию обо всех таблицах, представлениях и столбцах Database Engine, к которым вы имеете доступ. По сравнению с системным каталогом, который управляет метаданными применительно к системе как единому целому, информационная схема главным образом управляет окружением базы данных. Следующие разделы дают описание наиболее важных представлений для информационной схемы.
Оценить
(0 голоса)
Представление information_schema. tables содержит одну строку для каждой таблицы в текущей базе данных, к которой пользователь имеет доступ. Это представление отыскивает информацию из системного каталога, используя представление просмотра каталогов sys.objects. В табл. 9.4 содержится список и описание четырех столбцов этого представления.  
Оценить
(0 голоса)
Представление information_schema. columns содержит одну строку для каждого столбца текущей базы данных, доступной пользователю. Это представление отыскивает информацию из представлений просмотра каталогов sys.columns и sys.objects. В табл. 9.5 приведены список и описание шести наиболее важных столбцов этого представления.    
Оценить
(0 голоса)
Представление Information_schema.referential_constraints содержит одну строку для каждого ограничения ссылочной целостности данных, которым владеет текущий пользователь и которое определено в текущей базе данных. В табл. 9.6 содержится список и описание наиболее важных столбцов этого представления.  
Оценить
(0 голоса)
Предыдущие разделы описывали использование основных интерфейсов для доступа к системным базовым таблицам. Вы также можете отыскивать системную информацию, один из следующих собственных механизмов Database Engine: ♦ системные хранимые процедуры; ♦ системные функции; ♦ функции свойств.
Оценить
(0 голоса)
Системные процедуры используются для решения многих задач администратора и конечного пользователя, таких как переименование объектов базы данных, идентификация пользователей, мониторинг авторизации и ресурсов. Почти что все существующие системные процедуры имеют доступ к системным базовым таблицам для поиска и изменения системной информации. Этот раздел описывает две системные процедуры: sphelp и sp_depends. По поводу предмета рассмотрения данной главы можно сказать, что некоторые системные процедуры были описаны в предыдущих главах, другие же процедуры будут рассмотрены в следующих главах этой книги. Системная процедура sphelp отображает информацию об одном или более объектов базы данных. Имя любого объекта базы данных или тип данных могут быть использованы…
Оценить
(0 голоса)
Системные функции описаны. Некоторые из них могут быть использованы для доступа к системным базовым таблицам. В примере 9.5 показаны два оператора select, которые отыскивают одну и ту же информацию при использовании различных интерфейсов.     Второй оператор select в примере 9.5 использует системную функцию objectid для поиска идентификатора таблицы employee. Эта информация может быть сохранена в переменной, а затем использована при вызове команды или системной процедуры как идентификатор объекта в качестве параметра. Следующие системные функции, помимо других, дают доступ к системным базовым таблицам: ♦ object id(object name); ♦ оbject_name(object_id); ♦ user_id([user_name]); ♦ user_name([user_id]); ♦ db_id([db_name]); ♦ db_name ([db_id] ); ♦…
© 2018 www.serversql.ru. Все права защищены.