- •2. Основы sql: стандарты, группы операторов и их назначение.
- •3. Основные принципы работы sql Server: клиент, сервер, буферный кэш, журнал транзакций, службы, аутентификация, авторизация, страницы дисковой памяти.
- •4. Sql ddl: операторы назначение, применение.
- •5. Sql dml: операторы назначение, применение.
- •6. Sql dcl: операторы назначение, применение.
- •7. Sql tcl: операторы назначение, применение.
- •8. Ограничения целостности, констрейнты.
- •9. Оператор select: секции оператора и их применение.
- •10. Операторы delete, update: секции операторов и их применение.
- •11. Группировка в операторе select, применение секции having.
- •Примеры
- •12. Применение group with cube, group with rollup
- •13. Применение compute, compute by
- •14. Sql-команды: union (all, order by), intersect, except.
- •15. Внутреннее соединение таблиц: естественное, inner join, многотабличный запрос.
- •Inner join
- •16. Внешнее соединение таблиц: outher join (left, right, full, cross).
- •17. Подзапросы: (not)in, (not)exists, all, any, some.
- •18. Представления: создание, применение, order by в представлении, with check option, dml-операции c представлениями.
- •19. Агрегатные функции: sum, count, avg.
- •21. Временные таблицы: локальные, глобальные, работа с временными таблицами.
- •23. Процедуры t-sql: параметры, создание, вызов, возврат значения, системные процедуры.
- •24. Функции: типы, параметры, создание, вызов, возврат значения, принципы применения.
- •26. Транзакции: определение, назначение, свойства acid, уровни изоляции, операторы tcl и их применение.
- •27. Индексы: определение, типы, назначение, создание и применение.
- •Синтаксис sql create index
- •Синтаксис sql create unique index
- •Пример create index
- •28. Создание базы данных: системные базы данных, оператор создания базы данных, файловые группы, файлы, журнал транзакций, основные параметры базы данных.
- •29. Секционирование таблиц: определение, назначение, функция секционирования, схема секционирования,ограничения.
- •30. Моментальные снимки базы данных (snapshot): определение, назначение, создание, применение, технология copy-on-write.
21. Временные таблицы: локальные, глобальные, работа с временными таблицами.
Локальные временные таблицы будут видны только вашей сессии, а глобальные таблицы видны всем сессиям. При этом и те, и другие таблицы, уничтожаются после завершения сессии.
Локальная временная таблица:
Таблица будет существовать только во время выполнения одной сессии, и работать с ней сможете только вы. Например, вы написали большой сценарий, выполняющий определенные действия (например, процедуру, хранящуюся на сервере). Если в этом сценарии создать временную таблицу, то она будет существовать, только пока выполняется сценарий. После этого она автоматически уничтожается.
CREATE TABLE #testtable
(
id INT PRIMARY KEY
)
Глобальная временная таблица:
CREATE TABLE ##testtable
(
id INT PRIMARY KEY
)
22. Курсоры: определение, общая схема работы, локальные/глобальные, динамические/статические, только для чтения, SCROLL, дополнительная навигация со SCROLL-курсорами, конструкция WHERE CURRENT OF, значение FETCH_STATUS.
Курсор: механизм, позволяющий обрабатывать отдельные строки полученные в результате select-запроса.
Схема работы с курсором: DECLARE, OPEN, FETCH, CLOSE, DEALLOCATE. Объявить, открыть, просмотреть, закрыть, удалить.
Динамический курсор: изменения данных отображаются в динамике. У динамического курсора в области памяти хранится не более одной строки.
Статический курсор: данные выбраны один раз и произошедшие изменения «не видны».
Локальный курсор живет в рамках одного пакета или одного скрипта.
Глобальный курсор живет в рамках одного соединения.
Read-only — курсор только для чтения.
Scroll – тип курсора, в котором мы можем двигаться в любом направлении. Работа со скролл курсорами:
last-позиция переходит на последнюю строку;
first-позиция переходит на первую строку;
absolute 5 – на 5 строку относительно начала;
absolute -5 – на 5 строку относительно конца;
relative 5 – на строку, от текущей +5 (вниз на 5);
relative -5 на строку, от текущей -5 (вверх на 5)
next- позиция переходит на следующую строку;
prior-позиция переходит на предыдущую строку.
Where current of cursor — изменение текущей строки, очень быстрая операция. работает быстрее обычного where.
@@CURSOR_ROWS — возвращает число выбранных строк, имеющихся в последнем открытом курсоре в данном соединении.
@@FETCH_STATUS – возвращает состояние последней инструкции FETCH курсора, запущенной в отношении любого курсора, который в настоящий момент открыт соединением.
Синтаксис:
DECLARE имя_курсора CURSOR FOR SELECT текст_запроса
Открытие курсора:
OPEN имя_курсора
Чтение следующей строки из курсора:
FETCH имя_курсора INTO список_переменных
Пример: FETCH my_cur FROM @CURSOR INTO @ID, @QUA, @VAL, @NAM