Язык 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 голоса)
Системная процедура sprename изменяет имя существующей таблицы (и любого другого существующего объекта базы данных, такого как база данных, представление, хранимая процедура). В примерах 5.25 и 5.26 демонстрируется использование этой системной процедуры.   Пример 5.25 переименовывает таблицу department в subdivision.     Пример 5.26 переименовывает столбец order_no таблицы sales. Если переименовываемый объект является столбцом таблицы, то его спецификация должна быть задана в форме: имя_таблицы, имя_столбца.
Оценить
(1 голос)
Все операторы Transact-SQL, которые используются для удаления объектов базы данных, имеют следующий общий формат: drop тип_обгьекта имя_оСгьекта; Каждый оператор создания объекта (create тип_объекта) имеет соответствующий оператор удаления (drop) объекта. Оператор drop database databasel {,   ...} удаляет одну или более баз данных. Это означает, что все следы этой базы данных удаляются из вашей системы баз данных. Одна или более таблиц могут быть удалены из базы данных следующим оператором: drop table table_namel {,   ...} Все данные, индексы и триггеры, связанные с удаляемой таблицей, будут также удалены. В противоположность этому, все представления, которые были определены с использованием удаленной таблицы, удалены не будут. Только…
Оценить
(0 голоса)
Язык Transact-SQL поддерживает множество операторов определения данных, которые создают, изменяют и удаляют объекты базы данных. Следующие объекты базы данных, помимо других, могут быть созданы и удалены при использовании операторов create объект и drop объект соответственно: ♦ база данных; ♦ таблица; ♦ схема; ♦ представление; ♦ триггер; ♦ хранимая процедура; ♦ индекс. Структура всех объектов базы данных в предыдущем списке может быть изменена с использованием оператора alter объект. Обратите внимание, что только оператор alter table является стандартизованным оператором в этом списке. Все другие операторы alter объект являются расширениями Transact-SQL стандарта SQL. Следующая глава адресована оператору манипулирования данными select.
Оценить
(0 голоса)
Язык Transact-SQL имеет один основной оператор для поиска информации в базе данных: оператор select. При помощи этого оператора можно запрашивать информацию из одной, или более таблиц базы данных (или даже из нескольких баз данных). Результатом выполнения оператора select является другая таблица, также известная как результирующий наборе. Самая простая форма оператора select содержит список select с предложением from. (Все другие предложения являются необязательными.) Эта форма оператора select имеет следующий синтаксис: select [ all | distinct ]  column_list from {tablel  [tab_aliasl]} Здесь tablel - имя таблицы, из которой выбирается информация. Параметр tab_aiiasi задает псевдоним (алиас) соответствующей таблицы. Псевдоним является другим именем соответствующей…
Оценить
(0 голоса)
Простейшая форма оператора select, описанная в предыдущем разделе, не является очень полезной для запросов. На практике всегда существует больше предложений в операторе select, чем в операторе, показанном в примере 6.1. Далее показан синтаксис оператора select, обращающегося к таблице, с (почти что) всеми возможными предложениями:     Этот раздел начинается с определения предложения where. Часто бывает необходимым определить одно или более условий, которые ограничивают количество выбираемых строк. Предложение where задает логическое выражение (выражение, которое возвращает значение true или false), которое проверяется для каждой (потенциально) возвращаемой строки. Если это выражение истинное, то строка возвращается (помещается в результирующий набор), если ложное, то строка…
Оценить
(0 голоса)
Условия в предложении where могут быть либо простыми, либо содержать множество условий. Множественные условия могут быть созданы с помощью операторов and, or и not. Поведение этих операторов было описано с использованием таблиц истинности. Если два условия соединяются оператором and, то выбираются строки, соответствующие обоим условиям. Если два условия соединены оператором or, то выбираются все строки таблицы, для которых истинны либо первое условие, либо второе, либо оба вместе, как показано в примере 6.5.   Результат примера 6.5 содержит некоторые дубликаты значений столбца emp по. Если лишнюю информацию нужно устранить, то должна быть использована опция distinct, как показано здесь:     В…
Оценить
(0 голоса)
Оператор in дает возможность использовать два или более выражений в запросе на поиск. Результатом этого условия будет истина, если значение соответствующего столбца равняется одному из выражений, указанных в предикате in (пример 6.9).     Оператор in эквивалентен серии условий, связанных одним или более операторами or. Количество операторов or равняется количеству выражений в операторе in минус единица. Оператор in может быть использован вместе с логическим оператором not, как показано в примере 6.10. В этом случае запрос отыскивает строки, в которых не присутствуют значения, заданные в списке, среди значений указанного столбца.     В отличие от оператора in, который задает каждое индивидуальное…
Оценить
(1 голос)
Фраза null в операторе create table указывает, что специальное значение, называемое null (которое обычно представляет неизвестное или неприменимое значение), допустимо для описываемого столбца. Такие значения отличаются от всех других значений в базе данных. Предложение where в операторе select обычно позволяет вернуть строки, для которых сравнение в результате дает истину. Вопрос при рассмотрении запросов заключается в том, как сравнения, содержащие значения null, должны быть вычислены в предложении where? Все сравнения со значениями null вернут значение «ложь» (даже если им предшествует отрицание not). Для поиска строк со значениями в столбцах null язык Transact-SQL включает в себя оператор is null. Эта спецификация в…
Оценить
(0 голоса)
like- это оператор, который используется для проверки соответствия шаблону; т. е. он сравнивает значения столбца с заданным шаблоном. Тип данных такого столбца может быть любым символьным типом или датой. Общая форма оператора like: column [not] like  'pattern' Параметр pattern может быть константой типа строки или даты, либо это может быть выражение (включающее и столбцы таблиц), которое должно быть совместимым с типом данных соответствующего столбца. Для заданного столбца сравнение между значением в строке и шаблоном вычисляется в истину, если значение столбца соответствует выражению шаблона. Некоторые символы в шаблоне, называемые шаблонными или групповыми символами, имеют специфическую интерпретацию. Два из этих символа: ♦…
Оценить
(0 голоса)
Все предыдущие примеры этой главы содержат сравнения значений столбцов с выражениями, константами или множеством констант. В дополнение к этому язык Transact-SQL предоставляет возможность сравнения значений столбцов с результатами выполнения другого оператора select. Подобная конструкция, где один или более операторов select являются вложенными в предложение where в другом операторе select, называется подзапросом. Самый первый оператор select в подзапросе называется внешним запросом, в отличие от внутреннего запроса, который обозначает операторы select, используемые в сравнениях. Внутренний запрос будет выполняться первым, а внешний запрос получает значения от внутреннего запроса. Существуют два типа подзапросов: ♦ замкнутый; ♦ коррелированный. В замкнутом подзапросе внутренний запрос логически выполняется…
© 2019 serversql.ru. Все права защищены.