Язык 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 голоса)
В обеих формах оператора insert явное задание списка столбцов не является обязательным. Это означает, что отсутствие списка столбцов эквивалентно заданию списка всех столбцов таблицы. Опция default values позволяет добавить значения по умолчанию во все столбцы таблицы. Если столбец имеет тип данных timestamp или содержит в описании свойство identity, то в него будет добавлено значение, автоматически созданное системой. Для других типов данных столбец устанавливается в непустое значение по умолчанию, если в описании столбца таблицы задано значение по умолчанию, или в null, если такое значение не задано. Если столбец не допускает пустого значения и для него не указано значение default, то оператор…
Оценить
(0 голоса)
Вторая форма оператора insert добавляет одну строку или несколько строк, полученных из подзапроса. В примере 7.8 показано, как множество строк может быть добавлено в таблицу при использовании второй формы оператора insert.     Новая таблица daiias_dept, создаваемая в примере 7.8, имеет те же самые столбцы, что и таблица department, за исключением столбца location. Подзапрос в операторе insert выбирает все строки со значением Dallas в столбце location. Выбранные строки последовательно добавляются в новую таблицу. Содержимое таблицы daiiasdept может быть получено при помощи следующего оператора select: select * from dallas_dept; Пример 7.9 тоже показывает, как может быть добавлено множество строк с использованием…
Оценить
(0 голоса)
SQL Server 2008 вводит новую возможность, называемую конструктором значения таблицы (или столбца), которая позволяет вам присваивать отдельные кортежи (строки) оператору DML, такому как insert или delete. В примере 7.10 показано, как вы можете присваивать отдельные строки, используя подобный конструктор с оператором insert.   Оператор insert в примере 7.10 за один раз добавляет три строки в таблицу department, используя конструктор значения таблицы. Как вы можете видеть из этого примера, синтаксис конструктора достаточно простой. Для использования конструктора значения таблицы задайте список значений каждой строки, заключенных в круглые скобки, и отделяя один список от другого запятой.
Оценить
(0 голоса)
Оператор update изменяет значения в строках таблицы. Этот оператор имеет следующую общую форму: update tab_name {set column_l = {expression |  default  | null}}   [,   ...n] [from tab_namel [,   ...n]] [where condition] Строки в таблице tab_name изменяются в соответствии с предложением where. Для каждой изменяемой строки оператор update изменяет значения столбцов в предложении set, присваивая соответствующим столбцам константы (или, в общем случае, выражения). Если предложение where отсутствует, оператор update изменяет все строки таблицы. (Предложение from будет рассматриваться позже в этом разделе.) Рассмотрим пример 7.11.     Здесь оператор update изменяет в точности одну строку таблицы works_on, потому что комбинация столбцов emp_no…
Оценить
(0 голоса)
Оператор delete удаляет из таблицы строки. Этот оператор имеет две различные формы: delete from table_name [where predicate]; delete table_name from table_name [,  ...] [where condition]; Все строки, которые удовлетворяют условию в предложении where, будут удалены. Нет необходимости (и не требуется) явно указывать столбцы в операторе delete, потому что оператор delete оперирует строками, а не столбцами. Рассмотрим пример 7.16.   Предложение where в операторе delete может содержать внутренний запрос (пример 7.17).     Пример 7.17 также может быть переформулирован с использованием предложения from, как показано в примере 7.18. Это предложение имеет ту же семантику, что и предложение from в операторе update.…
Оценить
(0 голоса)
Язык Transact-SQL также поддерживает оператор truncate table. Этот оператор предоставляет «быстрое выполнение» версии оператора delete, не содержащего предложения where. Оператор truncate table удаляет все строки таблицы гораздо быстрее, чем это сделает оператор delete, потому что он удаляет содержимое таблицы страница за страницей, в то время как delete удаляет содержимое строка за строкой. Оператор truncate table имеет следующую форму: truncate table table_name
Оценить
(0 голоса)
Результат выполнения операторов insert, update или delete всегда содержит только текст, в котором присутствуют только сведения о количестве измененных строк (например, «3 rows deleted» - «Удалено 3 строки»). Если содержимое такого результата вас не устраивает, вы можете использовать предложение output, которое позволяет явно отображать строки, которые были добавлены, изменены в таблице или удалены из нее. Предложение output использует таблицы inserted и deleted для отображения соответствующего результата. В примере 7.20 показано, как работает предложение output с оператором delete.     Во-первых, здесь объявляется переменная типа таблицы @del_tabie с двумя столбцами: empno и emp_iname. Эта таблица будет использована для хранения удаленных строк.…
Оценить
(2 голоса)
SQL Server 2008 вводит SQL-оператор merge. Этот оператор объединяет последовательность условных команд insert и update в одном атомарном операторе в зависимости от существования записи. Основной областью приложения оператора merge является хранилище данных, где нужно периодически обновлять таблицы с учетом вновь приходящих данных от систем оперативной обработки транзакций (OLTP, online transaction processing). Эти новые данные могут содержать изменения для существующих строк таблиц и/или новые строки, которые нужно добавить. Если строка в новых данных соответствует элементу, который уже существует в таблице, то выполняется оператор update. В противном случае выполняется оператор insert. В версиях, предшествующих SQL Server 2008, эти операции выполнялись либо как…
Оценить
(0 голоса)
Вообще, существуют только три оператора SQL, которые могут быть использованы для изменения таблицы: insert, update и delete. Они являются основными для главных операций работы с данными: для добавления строки вы используете только один оператор - insert. То же самое верно относительно изменения столбцов или удаления строк при помощи операторов update и delete соответственно. Нестандартный оператор truncate table является всего лишь другой формой оператора delete, однако удаление строк выполняется быстрее при использовании truncate table, чем при delete. Оператор merge является, скорее всего, оператором «upsert» (update + insert): он объединяет операторы update и insert в одном операторе. Все операторы, которые принадлежат DDL…
«ПерваяПредыдущая21222324252627СледующаяПоследняя»
Навигация
© 2018 www.serversql.ru. Все права защищены.