Язык 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 голоса)
Организационная структура базы данных включает множество различных объектов. Все объекты базы данных могут быть физическими или логическими. Физические объекты относятся к организации данных на физических носителях (дисках). Физические объекты Database Engine являются файлами и группами файлов. Логические объекты являются пользовательскими представлениями базы данных. Базы данных, таблицы, столбцы и представления (виртуальные таблицы) - это экземпляры логических объектов. Объект базы данных, который должен быть создан в первую очередь,- это сама база данных. Database Engine управляет как системными, так и пользовательскими базами данных. Авторизованный пользователь может создавать базы данных пользователя, в то время как системные базы данных генерируются в процессе инсталляции системы баз…
Оценить
(0 голоса)
Для создания базы данных используются два основных метода. Первый метод использует Object Explorer в среде SQL Server Management Studio. Второй метод заключается в использовании оператора Transact-SQL create database. Этот оператор имеет следующий синтаксис, детали которого рассматриваются далее: create database db_name [on [primary]   { file_specl} ,...] [logon [file_spec2]  ,   ...] [collate collation_name] [for ( attach  i attach_rebuild_log )] Параметр db_name- имя базы данных. Максимальным размером для имени базы данных являются 128 символов. Правила для идентификаторов, описанные в главе 4, применяются и к именам базы данных. Максимальное количество баз данных, управляемых в одной системе, равно 32 767. Все базы данных хранятся в…
Оценить
(1 голос)
Оператор create database может также быть использован для создания мгновенного снимка (snapshot) существующей базы данных (исходной базы данных). Мгновенный снимок базы данных является согласованной с точки зрения завершенных транзакций копией исходной базы данных в том состоянии, которое соответствует моменту создания мгновенного снимка. Синтаксис создания мгновенного снимка: create database database_snapshot_name on (name = logical_file_name, filename = 'os_file_name') [ ,...n ] as snapshot of source_database_name Как вы можете видеть, если вам нужно создать мгновенный снимок базы данных, вы должны добавить предложение as snapshot of в оператор create database. В примере 5.3 создается мгновенный снимок базы данных Adventureworks, и он сохраняется в каталоге…
Оценить
(0 голоса)
Все данные базы данных могут быть отсоединены от сервера базы данных, а затем соединены с тем же самым или другим сервером базы данных. Отсоединение и соединение должно быть сделано, если вы собираетесь переместить базу данных. Вы можете отсоединить базу данных от сервера баз данных, используя системную процедуру sp_detach_db. Отсоединяемая база данных должна быть в режиме одного пользователя. Для соединения базы данных используйте либо оператор create database, либо системную процедуру sp_attach_db. Когда вы соединяетесь с базой данных, все файлы данных должны быть доступны. Если какой-нибудь файл данных имеет путь, отличный от того, который был задан при первоначальном создании базы данных, вы…
Оценить
(0 голоса)
Оператор create table создает новую таблицу в базе данных со всеми соответствующими столбцами и их типами данных. Основная форма оператора create table: create table table_name (col_namel typel  [not null | null] [{,  col_name2 type2 [not null | null])  ...]) Параметр tabie_name-- это имя создаваемой базовой таблицы. Максимальное количество таблиц в базе данных ограничивается количеством объектов в этой базе данных (в базе данных может быть более 2 миллиардов объектов, включая таблицы, представления, хранимые процедуры, триггеры и ограничения). col_namel, col_name2, ... являются именами столбцов таблицы, typel, type2, ... -типы данных соответствующих столбцов. Первое ограничение, которое будет рассматриваться в данной книге, - это…
Оценить
(0 голоса)
Одним из наиболее важных свойств является то, что СУБД должна, предоставлять способы поддержания целостности данных. Эти ограничения, которые используют проверку изменения и добавления данных, называются ограничениями целостности. Задача поддержания ограничений целостности может быть выполнена пользователем в программах приложения или системой управления базами данных. Наиболее важными преимуществами обработки ограничений целостности самой СУБД являются следующие: ♦ повышается надежность данных; ♦ уменьшается время на программирование; ♦ становится проще поддержка. Использование СУБД для поддержания ограничений целостности повышает надежность данных, потому что здесь не существует возможности, что программист забудет о необходимости следить за ограничениями целостности. Если ограничение целостности обрабатывается в программе приложения, то все программы,…
Оценить
(0 голоса)
Иногда несколько столбцов или групп столбцов таблицы имеют уникальные значения и поэтому могут быть использованы в качестве первичного ключа. Все столбцы или группы столбцов, которые могут рассматриваться как первичные ключи, называются кандидатами в ключи. Каждый кандидат в ключи определяется с использованием предложения unique в операторе create table или alter table. Предложение unique имеет следующую форму: [constraint с_пате] unique [clustered | nonclustered]   ([col_namel]  ,...) Опция constraint в предложении unique назначает явное имя кандидату в ключи. Опция clustered или nonclustered соответствует тому факту, что Database Engine всегда генерирует индекс для каждого кандидата в ключи таблицы. Индекс может быть кластеризованным, т. е. физический…
Оценить
(0 голоса)
Первичный ключ в таблице - это столбец или группа столбцов, чьи значения отличаются для каждой строки. Каждый первичный ключ определяется с использованием предложения primary key в операторе create table или alter table. Предложение primary key имеет следующую форму: [constraint c_name] primary key  [clustered  |  nonclustered]   ({col_namel}  ,...) Все опции в предложении primary key имеют то же самое значение, что и соответствующие опции с теми же именами в предложении unique. В отличие от столбцов unique столбцы Primary Key должны быть Not Null и их режим по умолчанию clustered. В примере 5.7 показано задание первичного ключа для таблицы employee базы данных sample.…
Оценить
(0 голоса)
Ограничение check задает условия для данных, помещаемых в столбец. Каждая строка, добавляемая в таблицу, или каждое значение, изменяющее значение столбца, должно соответствовать этим условиям. Это предложение может быть задано в операторе create table или alter table. Синтаксис предложения check: [constraint c_name] check [not for replication]  expression Выражение expression должно давать логическое значение (true или false), оно может ссылаться на любой столбец текущей таблицы (или только на текущий столбец, если определяется как ограничение на уровне столбца), но не на другие таблицы. Если присутствует опция not for replication, то условие в предложении check не проверяется в процессе репликации данных. Для базы данных…
Оценить
(0 голоса)
Внешний ключ - это столбец или группа столбцов таблицы, которые содержат значения, соответствующие значениям первичного ключа той же самой или другой таблицы. Каждый внешний ключ объявляется с использованием предложения foreign key, объединенного с предложением references. Предложение foreign key имеет следующую форму: [constraint с_пате] [ [foreign key]   ({col_namel),   ...)] references table_name ({col_name2},   ...) [on delete (no action | cascade | set null | set default}] [on update  (no action   |   cascade   |   set null  |   set default}] Предложение foreign key явно определяет все столбцы, которые принадлежат внешнему ключу. Предложение references задает имя таблицы со всеми столбцами, которые входят в состав первичного…
© 2019 serversql.ru. Все права защищены.