- •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.
17. Подзапросы: (not)in, (not)exists, all, any, some.
Подзапросы, внутренние или вложенные запросы - это запрос внутри запроса.
NOT - отрицание
IN – эквивалетно значению любого элемента из подзапроса
ANY – сравнивает значение со всеми значениями из подзапроса, возвращая true если сравнение верно для любого ОДНОГО значения из списка
ALL – сравнивает значение со всеми значениями из подзапроса, возвращая true если сравнение верно для ВСЕХ значений из списка
EXISTS берет подзапрос, как аргумент, и оценивает его как верный, если подзапрос возвращает какие-либо записи и неверный, если тот не делает этого.
SOME - Тоже самое что и ANY
Синтаксис:
SELECT * FROM salespeople
WHERE city = ANY[ALL/IN] (SELECT city FROM customers);
Синтаксис:
SELECT productid,
productname
FROM products p
WHERE NOT EXISTS (SELECT *
FROM [order details] od
WHERE p.productid = od.productid)
18. Представления: создание, применение, order by в представлении, with check option, dml-операции c представлениями.
Представление — виртуальная (логическая) таблица, представляющая собой поименованный запрос (алиас к запросу), который будет подставлен как подзапрос при использовании представления.
Создание представления:
CREATE VIEW abc
AS
SELECT *
FROM table .
Назначение представления — упрощение селект запроса. Не хранится в базе данных, а каждый раз вычисляется.
With check option — cпециальная опция, которая указывается при создании представлений. Она приводит к созданию ограничения, условием которому служит условие where. Т.е. ограничение условия берется из where.
CREATE VIEW abc
AS
SELECT *
FROM table
WHERE age >= 20 .
В представлениях можно выполнять все DML-операции: select, insert, update, delete. При этом, так как представления каждый раз вычисляются, все изменения представления будут затрагивать таблицу на основе которой было создано представление.
При использовании предложения ORDER BY в представления, встроенной функции, производной таблицы или вложенный запрос, необходимо также указать оператор Top.
CREATE VIEW abc
AS
SELECT TOP 3 *
FROM table
ORDER BY name
19. Агрегатные функции: sum, count, avg.
Агрегатные функции выполняют вычисление на наборе значений и возвращают одиночное значение. Агрегатные функции, за исключением COUNT, не учитывают значения NULL. Агрегатные функции часто используются в выражении GROUP BY инструкции SELECT.
COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос.
SUM - производит арифметическую сумму всех выбранных значений данного поля
AVG - производит усреднение всех выбранных значений данного поля
MAX - производит наибольшее из всех выбранных значений данного поля
MIN - производит наименьшее из всех выбранных значений данного поля
SELECT Sum (amt)
FROM orders;
20. T-SQL: DECLARE, локальные переменные, присвоение инициализация, глобальные переменные, оператор PRINT, оператор IF-ELSE, операторные скобки BEGIN/END, оператор RETURN, конкатенация строк, преобразование типов CAST, конструкции CASE, WHILE, WAITFOR,TRY/CATCH, процедура RAISEERROR.
Declare — объявление переменной.
Переменная – область памяти. Всегда начинается с @.
Есть 3 способа присвоения: declare @s=1, set @s = 1, select @s = 1.
Инициализация: Declare @имя_переменной тип_данных.
Переменные бывают:
Локальные – переменные, которые используются для временного хранения данных во время запуска пакета инструкций SQL;
Глобальные – переменные, обозначенные @@ (стандартные, системные).
Print — оператор для вывода значений переменных или обычного текста.
if-else — конструкция, которая представляет собой условие (если, иначе).
BEGIN-END: блок операторов. Содержит команды, которые выполняются вместе.
Оператор return возвращает значение.
Конкатенация строк — операция «склеивания» строк. Выполняется при помощи оператора +. Print ‘a’ + ’b’.
Cast — оператор, с помощью которого осуществляется преобразование типов. cast(<переменная или значение> as <требуемый тип>).
Case — оператор выбора.
While – оператор цикла;
Waitfor – оператор, который блокирует выполнение пакета, хранимой процедуры или транзакции до наступления указанного времени или интервала времени.
Try-catch — конструкция исключения.
Raiseerror — cоздает сообщение об ошибке и запускает обработку ошибок для сеанса.