Типы данных MSSQLServer2008 (отличия от типов данных MSSQLServer2005). Названия, характеристики, области применения
Новые типы данных (DATE, TIME, DATETIMEOFFSET, DATETIME2, Hierarchyid, GEOMETRY, GEOGRAPHY, FILESTREAM)
a) DATE – храним только дату
b) TIME – храним только время
c) DATETIMEOFFSET – храним дату и время со смещениями «+» или «-»
d) DATETIME2 – храним дату и время от January 1, 0001 до December 31, 9999
e) HierarchyId – храним данные иерархий причем дерево иерархий будет довольно компактным.
21. Команды создания / изменения структуры таблиц (отличия в синтаксисе в MSSQLServer2008 по сравнению с MSSQLServer2005).
Появились индексы с фильтрацией.
CREATE NONCLUSTERED INDEX IX_TestTable_OneON TestTable(TestTableVarFieldOne)
WHERE TestTableVarFieldOne = 'SampleText'
Для чего это нужно:
Например мы знаем что по колонке очень часто идет какой-нибудь текстовый запрос из разряда = ‘SampleText’, ставим этот индекс, и наш план выполнения запроса становится вкусный и быстрый.
можно передавать таблицы как параметр)
Для чего может быть нужно передавать таблицу из приложения в Базу Данных?
1) Для того чтобы уменьшить кол-во INSERT/UPDATE операций,
2) Для того чтобы некоторые части слоя бизнеслогики перенести на сервер
Плюсы:
1) Строгая типизация
2) Сортировка
3) Мы можем в этих таблицах использовать индексы (первичный ключ)
4) Удобство
Минусы:
Можно наворотить плохое, особенно людям, которые очень изобретательны
GO
CREATE TYPE Customer AS TABLE (id int, CustomerName nvarchar(50), postcode nvarchar(50));
GO
CREATE TABLE Customers (id int, CustomerName nvarchar(50));
GO
CREATE TABLE CustomerPostCodes(id int, postcode nvarchar(50));
GO
CREATE Procedure AddCustomers (@customer Customer READONLY)
AS
INSERT INTO Customers
SELECT id, CustomerName FROM @customer
INSERT INTO CustomerPostCodes
SELECT id, postcode FROM @customer
GO
Типы данных MSSQLServer2005. Названия, характеристики, области применения.
Операции в MSSQLServer2005. Названия и назначение. Типы данных, для которых операции применимы. Примеры.
Приведение типов данных. Явное и неявное приведение типов данных. Функции CASTи CONVERT. Совместимость типов данных. Функции COALESCE, CASE, ISNULL. Примеры.
Команда создания таблицы. Синтаксис, подробное описание секций команды. Примеры.
Команда изменения структуры таблицы. Синтаксис, подробное описание секций команды. Примеры.
Команда удаления таблицы и команды удаления данных из таблицы. Синтаксис, подробное описание секций команд. Примеры.
Commontableexpressions (cte). Их назначение и синтаксис описания. Ограничения при описании cte. Рекурсивные cteи ограничения при их описании. Примеры.
Команда извлечения данных из таблицы. Секция From, синтаксис, подробное описание. Использование горизонтальных и вертикальных объединений.Примеры.
Команда извлечения данных из таблицы. Синтаксис, подробное описание секций команды (кроме секции FROM). Примеры.
Команда добавления (вставки) данных в таблицу. Синтаксис, подробное описание секций команды. Примеры.
Команда изменения данных в таблице. Синтаксис, подробное описание секций команды. Примеры.
Курсоры. Необходимость их применения. Синтаксис описания (подробно). Общая схема работы с курсором. Команды и функции для работы с курсором. Примеры.
13. Триггеры. Необходимость их применения. Синтаксис команды создания / изменения DMLтриггеров (подробно). Синтаксис команды удаления триггера (подробно). Особенности написания триггеров, реагирующих на несколько событий (функции COLUMNSUPDATEDи UPDATE). Использование таблиц inserted и deleted. Порядок срабатывания триггеров.
Триггеры. Необходимость их применения. Примеры DMLтриггеров реагирующих на одно и несколько событий. Способы определения события, активировавшего триггер. Ограничения на команды, содержащиеся в теле DMLтриггера.
15. Триггеры. Необходимость их применения. Синтаксис команды созданий / изменения DDLтриггеров (подробно). Синтаксис команды удаления триггера (подробно). Особенности написания триггеров, реагирующих на несколько событий (функция EVENTDATA). Примеры триггеров.
16. Триггеры. Необходимость их применения. Синтаксис команды создания / изменения LOGONтриггеров (подробно). Синтаксис команды удаления триггера (подробно). Пример триггера.
17. Триггеры. Необходимость их применения. Разрешение / запрещение срабатывания различных типов триггеров (команды ENABLE/ DISABLEи команда ALTERTABLE, применяемая для разрешения / запрещения срабатывания триггеров). Особенности использования этих команд. Рекурсивное срабатывание триггеров и способы борьбы с этим явлением. Примеры.
18. Представления. Их назначение. Команда создания / изменения представления, ее синтаксис (подробное описание). Команда удаления представления. Особенности при модификации данных при работе с представлениями. Примеры.
19. Хранимые процедуры. Их назначение. Создание / изменение хранимых процедур (подробное описание синтаксиса команд). Ограничения на команды, содержащиеся в теле хранимой процедуры. Команды удаления хранимой процедуры. Синтаксис команды запуска хранимой процедуры (подробно). Примеры.