
- •Крещенко л.Ф. Мова 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»
- •Система нарахування балів за видами навчальної роботи
- •Список рекомендованої літератури
Загальні відомості про обмеження, що забезпечують цілісність
Обмеження дозволяють визначати способи, за допомогою яких SQL Server 2005 буде автоматично забезпечувати цілісність бази даних. Обмеження визначають правила, що мають відношення до припустимих значень полів, і є стандартним механізмом, що забезпечує цілісність.
Краще застосовувати обмеження, ніж тригери, правила або умовчання. Оптимізатор запитів також використовує визначення обмежень, щоб створювати високопродуктивні плани виконання запитів. Обмеження можливі як для стовпців, так і для таблиць:
обмеження для стовпця задається як правила визначення стовпця і застосовується тільки до цього стовпця;
обмеження для таблиці оголошується незалежно від визначення стовпців і застосовується до декількох стовпців таблиці.
Обмеження для таблиць варто використовувати в тих випадках, коли обмеження діє для декількох стовпців. Наприклад, якщо первинний ключ таблиці складається із двох і більше стовпців, варто використовувати обмеження для таблиці, у яке входять всі стовпці первинного ключа.
Визначення можливості зберігання порожніх значень (null)
Можливість зберігання в стовпці порожніх значень визначає, чи можуть відповідні поля таблиці зберігати порожні значення. Порожнє значення (NULL) показує, що в осередок не були уведені дані. Звичайно порожнє значення свідчить про те, що значення невідомо або не визначене. Наприклад, порожнє значення в стовпці Price таблиці Titles з бази даних Pubs означає не відсутність ціни на книгу, а те, що ціна невідома або поки не встановлена.
У цілому, варто уникати можливості зберігання порожніх значень, оскільки вони ускладнюють обробку запитів і відображень, крім того, їх не можна використати в стовпчиках с деякими параметрами, наприклад з обмеженням PRIMARY KEY. Операція порівняння двох порожніх значень, а також порожнього значення з будь-яким іншим значенням повертає невідоме значення, оскільки значення будь-якого NULL невідомо. Порожні значення не можна застосовувати як ідентифікатори, що дозволяють відрізнити один рядок таблиці від іншого. Крім того, варто виключати порожні значення при обчисленнях, оскільки деякі обчислення (наприклад, розрахунок середнього) можуть бути неточні, якщо в них використовується стовпець, що містить NULL. Коли потрібно створити стовпець, значення якого невідомі, найчастіше можна визначити для нього значення за замовчуванням. Наприклад, стовпець Phone таблиці Authors з бази даних Pubs не допускає порожніх значень. У цьому стовпці визначене значення за замовчуванням UNKNOWN. Якщо в рядку з відомостями про автора номер телефону не зазначений, значення в стовпці Phone дорівнює UNKNOWN.
Наступний програмний код створює за допомогою оператора CREATE TABLE таблицю Employee. Стовпці Emp_ID і LastName не допускають порожніх значень, а стовпець FirstName - допускає:
CREATE TABLE Employees (
Emp_ID char(4) NOT NULL,
FirstName varchar(30) NULL,
LastNarne varchar(30) NOT NULL
)
====================
Визначення значень за замовчуванням (default)
Всі поля запису повинні бути заповнені (навіть із використанням порожніх значень). Іноді потрібно завантажити в таблицю рядок, але значення якого-небудь поля не відомо (або не існує). Якщо поле допускає порожні значення, можна завантажити рядок з порожнім значенням. Оскільки поля, що допускають порожні значення, небажані, краще визначити для поля значення за замовчуванням (визначити обмеження DEFAULT). Наприклад, як значення за замовчуванням, що використовується, якщо значення не зазначене, для числових полів звичайно задають нуль, а для символьних – ‘N/A’サ
Примітка. Визначення DEFAULT в операторі CREATE TABLE розглядається як обмеження, хоча насправді воно не накладає ніяких обмежень. Визначення DEFAULT обговорюється тут, що дозволить продемонструвати альтернативу полям, що допускають порожні значення.
При завантаженні в таблицю рядка з невідомим значенням поля, для якого визначене значення за замовчуванням, ви неявно даєте SQL Server вказівку завантажити в це поле значення за замовчуванням. Якщо поле не допускає порожніх значень і для нього не визначене значення за замовчуванням, необхідно явно задати його значення. У противному випадку SQL Server поверне помилку з повідомленням, що це поле не допускає порожніх значень.
Є два способи визначення значення за замовчуванням:
визначити його під час створення самої таблиці (як частина визначення таблиці);
додати це визначення до існуючої таблиці (у будь-якого стовпця таблиці воно може бути тільки одне).
У наступному прикладі за допомогою оператора CREATE TABLE створюється таблиця Employees. Жоден із трьох її стовпців не допускає порожніх значень. Однак насправді стовпець FirstName дозволяє ввести невідоме ім'я, оскільки в його визначенні втримується визначення значення за замовчуванням. Для його визначення в операторі CREATE TABLE використається ключове слово DEFAULT.
CREATE TABLE Employees
(
Emp_ID char(4) NOT NULL,
FirstName varchar(30) NOT NULL DEFAULT 'unknown'
LastName varchar(SO) NOT NULL
)
Існуюче визначення значення за замовчуванням можна модифікувати або видалити. При модифікації визначення значення за замовчуванням за допомогою Transact SQL необхідно спочатку видалити існуюче визначення DEFAULT а потім створити нове визначення з нуля. Неможливо створити визначення DEFAULT у наступних стовпцях:
с типом даних timestamp;
із властивостями IDENTITY або ROWGUIDCOL;
з існуючим визначенням або об'єктом за замовчуванням.