- •Крещенко л.Ф. Мова sql
- •Навчальна програма дисципліни«Мова sql»
- •Методичні рекомендації до вивчення дисципліни Тема 1. Основи роботи з Microsoft sql| Server| 2005
- •1. Основні відомості про|із|sql|Server|2005 та принципи його роботи
- •Що таке sql Server 2005
- •Бази даних
- •Реляційні бази даних
- •2. Використання sql|Server|Management|Studio|
- •Створення|створіння|запитів
- •Тема 2. Створення і керування базою даних sql Server
- •1. Створення бази даних у середовищі ms sql Server 2005
- •Методи створення бази даних sql Server
- •Оператор create database
- •Керування базою даних sql Server
- •Видалення бази даних sql Server
- •Приклад створення і керування базою даних
- •Перегляд бази даних BookShopDb
- •Видалення бази даних за допомогою оператора drop database
- •2. Створення таблиць у базі даних та накладання обмежень
- •Визначення типів даних
- •Системні типи даних
- •Користувальницькі типи даних
- •Цілісність даних
- •Цілісність, обумовлена користувачем
- •Практична реалізація створення таблиць та забезпечення цілісності даних Перегляд існуючих таблиць, стовпців і їхніх типів даних
- •Створення таблиць і керування ними
- •Створення таблиць у базі даних sql Server
- •Реалізація обмежень, що забезпечують цілісність
- •Загальні відомості про обмеження, що забезпечують цілісність
- •Визначення можливості зберігання порожніх значень (null)
- •Визначення значень за замовчуванням (default)
- •Автоматична нумерація й стовпці з ідентифікатором (identity)
- •Створення стовпців з ідентифікатором
- •Властивість identity
- •Обмеження primary key
- •Створення обмежень primary key
- •Обмеження unique
- •Створення обмежень unique
- •Обмеження foreign key
- •Створення обмежень foreign key
- •Обмеження check
- •Створення обмежень check
- •Модифікація таблиць у базі даних sql Server
- •Видалення таблиці з бази даних sql Server
- •Створення таблиці Authors у базі BookShopDb
- •Створення таблиць BookAuthors і BookCondition у базі даних BookShopDb
- •Тема 3. Синтаксичні елементи мови Transact-sql
- •1.Ідентифікатори
- •Звичайні ідентифікатори
- •Ідентифікатори з обмежниками
- •2. Функції та інші конструкції мови
- •Убудовані функції
- •Функції одержання набору рядків
- •Агрегатні функції
- •Скалярні функції
- •Користувальницькі функції
- •Типи користувальницьких функцій
- •Детермінованість функцій
- •3. Типи даних та фирази
- •Коментарі
- •Приклади. Створення сценаріїв за допомогою синтаксичних елементів мови Transact-sql
- •Сценарії Trarisact-sql
- •Тема 4 Вибірка даних з бази даних sql Server
- •1. Основи оператора select
- •Конструкція select
- •Використання ключових слів у списку вибору
- •Ключове слово distinct
- •Ключове слово top n
- •Ключове слово as
- •Типи інформації в списку вибору
- •Конструкція into
- •Конструкція from
- •Конструкції where, group by і having
- •Конструкція group by
- •Обробка конструкцій where, group by і having
- •Конструкція order by
- •Витяг всіх даних з таблиці Titles
- •Одержання даних з певних стовпців таблиці Titles
- •Завдання умови, якій повинен відповідати результуючий набір
- •Угруповання даних у результуючому наборі
- •2.Витяг даних за допомогою з'єднань
- •Внутрішні з'єднання
- •Зовнішні з'єднання
- •Використання лівих зовнішніх з'єднань
- •Використання правих зовнішніх з'єднань
- •Використання повних зовнішніх з'єднань
- •3.Визначення підзапитів усередині операторів select
- •Типи підзапитів
- •Підзапити із ключовими словами in або not in
- •Підзапити з операторами порівняння
- •Підзапити із ключовими словами exists і not exists
- •Узагальнення даних
- •Узагальнення даних за допомогою оператора cube
- •Узагальнення даних за допомогою оператора rollup
- •Приклади
- •Одержання даних за допомогою повного зовнішнього з'єднання
- •Тема 5. Модифікація даних у базах даних sql Server
- •1. Додавання даних у бд sql Server
- •Додавання даних за допомогою оператора insert
- •Insert [into] таблиця_або_відображення
- •Додавання даних за допомогою оператора insert...Values
- •Додавання даних за допомогою підзапиту select
- •Додавання даних за допомогою оператора select...Into
- •Додавання у вставлені рядки даних типу ntext, text і image
- •Додавання даних за допомогою операцій масового копіювання
- •2. Модифікація даних у бд sql Server
- •Модифікація даних за допомогою оператора update
- •Модифікація даних за допомогою конструкції set
- •Модифікація даних за допомогою конструкції where
- •Модифікація даних за допомогою конструкції from
- •Модифікація даних за допомогою api і курсорів
- •Модифікація даних типу ntext, text і image
- •3. Видалення даних із бд sql Server
- •Видалення даних оператором delete
- •Видалення даних за допомогою api і курсорів
- •Видалення даних за допомогою оператора truncate table
- •Практичні приклади модифікації даних у бд sql Server
- •Тема 6. Збережені процедури
- •1. Основні відомості про збережені процедури
- •Продуктивність
- •Можливості програмування
- •Безпека
- •2. Операції зі збереженими процедурами
- •Збереження процедури
- •Методи створення збережених процедур
- •Передача контексту збереженій процедурі
- •Виконання збереженої процедури
- •Виклик збереженої процедури
- •Визначення параметрів і їхніх значень
- •Модифікація збереженої процедури
- •Видалення збереженої процедури
- •Приклади роботи зі збереженими процедурами
- •Приклади програмування збережених процедур
- •Тема 7. Створення|створіння|тригерів|трігерів|і керування ними
- •1. Створення|створіння|тригерів|трігерів|за допомогою мови|язика|transact-sql|
- •Конструкція on|
- •Конструкції for|, after|і instead|of|
- •Конструкція as|
- •Управління тригерами|трігерами|
- •Зміна і перейменування тригерів
- •Перегляд|проглядати|, видалення|віддалення|і відключення тригерів|трігерів|
- •2. Програмування тригерів|трігерів| Псевдотаблиці Inserted|і Deleted|
- •План практичних занять Практичні заняття 1,2 (4 години)
- •Перелік завдань для модуля
- •Індивідуальні завдання для самостійної роботи студентів
- •Порядок і критерії оцінювання знань студентів
- •Перелік питань для підготовки до поточного модульного контролю
- •Розподіл балів, що отримають студенти за результатами вивчення дисципліни «Мова sql»
- •Система нарахування балів за видами навчальної роботи
- •Список рекомендованої літератури
Конструкції for|, after|і instead|of|
При створенні|створінні|тригера|трігера|слід задати тип|тип|події, що викликає|спричиняє|його спрацьовування. Типів події три:INSERT|, UPDATE| і DELETE|.Один і той же тригер|трігер| може спрацювати на одне, два або всі три події. Якщо необхідно, щоб|аби|він спрацьовував на всі події, то після|потім|конструкційFOR|, AFTER|абоINSTEAD| OF|слід помістити всі три ключові|джерельні|слова:INSERT|, UPDATE| і DELETE|у будь-якому порядку. Наприклад, наступний|слідуючий|код TRANSACT-SQL|примушує|заставляє|тригер|трігер|Alerter|спрацьовувати на всі події:
CREATE TRIGGER dbo.alerter
ON dbo.employees
FOR INSERT, UPDATE, DELETE
Конструкція FOR|- синонімAFTER|. Тому приведений вище код створюєALTER|тригер|трігер|. Щоб|аби|створити тригер|трігер|Alerter|якINSTEAD| OF|, використовуйте наступний|слідуючий|код:
CREATE TRIGGER dbo.alerter
ON dbo.employees
INSTEAD OF INSERT, UPDATE, DELETE
Зверніть увагу, що замість конструкції FOR|застосовується конструкціяINSTEAD| OF|.
Конструкція as|
Конструкція AS|і наступні|слідуючі|за нею команди мови|язика|TRANSACT-SQL|визначають завдання|задачу|, яке виконуватиме тригер|трігер|. Нижче наводиться приклад створення|створіння|тригера|трігера|Alerter|, який посилає по електронній пошті повідомлення|сполучення|користувачаHello, якщо в таблиціemployees|відбуваються|походять|подіїINSERT|,UPDATE|або DELETE|:
USE BookShopDB
GO
CREATE TRIGGER dbo.alerter
ON dbo.employees
AETER INSERT. UPDATE, DELETE
AS
EXEC master.xp_sendmail 'Hello'.
'A record was just inserted, updated or deleted in the Employees table'
GO
|
Приклад|зразок|ми спростили, щоб|аби|ясніше продемонструвати створення|створіння|завдання|задачі|у тригері|трігері|. Є декілька способів зробити результати завдання|задачі|кориснішими. Наприклад, запрограмувати завдання|задачу|так, щоб в поштовому повідомленні|сполученні|відображувалися|відображали|докладні|детальні|відомості про внесені зміни.
Управління тригерами|трігерами|
Тригери|трігери|— це потужні|могутні|об'єкти бази даних, які автоматично виконуються при модифікації таблиці або відображення|вистави|. Для управління тригерами|трігерами|призначена низка|низка|команд і інструментів баз даних. Тригери можна:
модифікувати за допомогою оператора ALTER| TRIGGER|;
перейменувати засобами|коштами|системної збереженої процедуриsp_rename|;
проглянути шляхом запиту системних таблиць або з використанням системних збережених процедур sp_helptrigger|абоsp_helptext|;
видаляти|віддаляти|за допомогою оператораDROP| TRIGGER|;
включити або вимкнути за допомогою конструкцій DISABLE| TRIGGER|іENABLE| TRIGGER|оператораALTER| TABLE.|
Зміна і перейменування тригерів
Для модифікації тексту тригер|трігер|можна видалити|віддаляти|і відтворити з|із|новим текстом. Інший спосіб, без видалення|віддалення|, полягає у використанні оператораALTER| TRIGGER|. Синтаксис цього оператора аналогічний синтаксису оператораCREATE| TRIGGER|, але|та|ALTER| TRIGGER|не видаляє|віддаляє|тригер|трігер|з|із|системних таблицьSysComments|іSysObjects|. У наступному|слідуючому|прикладі|зразку|показано, як модифікувати тригер|трігер|Alerter|так, щоб він повідомив тільки|лише|про оновлення записів в таблиціEmployees|:
ALTER TRIGGER dbo.alerter
ON dbo.employees
AFTER UPDATE
AS
EXEC master..xp_sendmail 'Barry"
'A record was just updated in the Employees table.'
GO
Зверніть увагу, що після|потім|конструкціїAFTER|вказана тільки|лише|одне подіяUPDATE|, а також зверніть увагу на зміни в тексті повідомлення|сполучення|.
Інколи|іноді|нові угоди про іменування вимагають перейменувати тригер|трігер|, це також буває необхідно при реалізації в таблиці декількох тригерів|трігерів|. Для перейменування тригера|трігера|застосовують системну збережену процедуруsp_rename|. У наступному|слідуючому|прикладі|зразку|показано, як перейменувати тригер|трігер|Alerter|вEmpAlerter|:
sp_rename @objname = alerter @newname = empalerter
Зверніть увагу, що в синтаксисі перейменування не вказаний dbo|. Системна збережена процедураsp_rename|не дозволяє передати тригер|трігер|іншому власникові. Щоб|аби|змінити|зраджувати|власника тригера|трігера|, слід використовувати оператораCREATE| TRIGGER|. Перейменувавши вкладений тригер|трігер|, обов'язково модифікуйте і тригер, який його викликає -|трігер|у ньому має бути вказане вірне ім'я вкладеного тригера|трігера|.
