
- •Крещенко л.Ф. Мова 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»
- •Система нарахування балів за видами навчальної роботи
- •Список рекомендованої літератури
Модифікація даних за допомогою конструкції where
Конструкція WHEREвиконує дві функції:
задає які рядки необхідно відновити (умова);
указує рядки вихідної таблиці, з яких витягаються дані для відновлення, якщо також задана конструкція FROM.
Якщо конструкція WHEREне задано, обновляються всі рядки таблиці. У наступному прикладі в операторіUPDATEвикористана конструкціяWHERE, яка обновляє тільки рядки, що відповідають наведеній в цій конструкції умові:
USE Pubs
UPDATE NewBooks
SET BookType = 'popular'
WHERE BookType = 'popular_comp'
Цей оператор змінює popular_compнаpopular. Якщо конструкціюWHEREне задано, то всі значення в стовпціBookTypeбули б замінені значеннямpopular.
Модифікація даних за допомогою конструкції from
За допомогою конструкції FROMвдається замінити дані в обновлюваній таблиці даними з однієї або декількох таблиць або відображень. Наприклад, у наступному прикладі в операторіUPDATEу конструкціюFROMвходить внутрішнє з'єднання, що з'єднує заголовки книг у таблицяхNewBooksіTitles:
USE Pubs
UPDATE NewBooks
SET Price - Titles.Price
FROM NewBooks JOIN Titles
ON NewBooks.BookTitle = Titles.Tiile
Цей оператор обновляє значення стовпця Priceу таблиціNewBooksзначеннями однойменного стовпця з таблиціTitles.
Модифікація даних за допомогою api і курсорів
ADO, OLE DB і API ODBCпідтримують відновлення поточного рядка в результуючому наборі, отриманим додатком. Крім того, при використанні серверного курсору Transact-SQL можна обновлювати поточний рядок за допомогою оператораUPDATE, у який входить конструкціяWHERECURRENT OF. Зміни стосуються тільки того рядка, на якій установлений курсор.
Модифікація даних типу ntext, text і image
SQL Server надає кілька методів для відновлення значень типу ntext, textіimage:
відносно невеликі дані задаються в операторі UPDATEтак само, як дані типуchar, nchar або binary;
оператори Transact-SQL WRITETEXTіUPDATETEXTдозволяють обновити значення типуtext, ntextабо image;
додатки ADOздатні задавати більші за обсягом дані типуtext, ntext і image за допомогою методуAppendChunk;
додатки OLE DBздатні записувати нові значення типуtext, ntext і imageза допомогою інтерфейсуISequentialStream;
додатки ODBCвикористовують для запису нових значень типуtext, ntextіimageфункціюSQLPutData;
додатки DB-Libraryзастосовують функціюDbwritetext.
SQL Server також підтримує відновлення значень типу ntext, text абоimageвроздріб. ВDB-Libraryтаку ж процедуру можна виконати засобами функціїDbudatetext. Всі інші додатки й сценарії мовою Transact-SQL, пакети, збережені процедури й тригери дозволяється використовувати для відновлення лише частини поля типуntext, textабо imageоператоромUPDATETEXT.
3. Видалення даних із бд sql Server
SQL Server підтримує кілька методів видалення даних з існуючих таблиць:
оператор DELETE;
API і курсори;
оператор TRUNCATE TABLE.
Оператори, що видаляють дані, працюють як з відображеннями, так і з таблицями (з деякими обмеженнями).
Видалення даних оператором delete
Оператор DELETEвидаляє з таблиці або відображення один або кілька рядків. У спрощеному вигляді синтаксис оператораDELETEвиглядає так:
DELETE таблиця _або_ відображення
FROM вихідна_таблиця
WHERE умова_пошуку
Таблиця_або_відображення визначає ім'я таблиці або відображення, звідки потрібно видалити рядки. Видаляються всі рядки таблиці або відображення, які відповідають умові пошуку, заданій конструкцієюWHERE. Якщо конструкціюWHEREне задано, то віддаляються всі рядки таблиці або відображення. КонструкціяFROMзадає додаткові таблиці, відображення або умови з'єднання, які можна використати в предикатах умови пошуку конструкціїWHERE, що визначає рядки, що підлягають видаленню з таблиці або відображення. Рядки не видаляються з названої в конструкціїFROMтаблиці, а тільки з таблиці, названої в конструкціїDELETE. Будь-яка таблиця, з якої вилучені всі рядки, залишається в базі даних. Дія оператораDELETEпоширюється тільки на рядки таблиці. Самі таблиці видаляються з бази даних операторомDROP TABLE. Розглянемо наступний операторDELETE:
USE Pubs
DELETE NewBooks
FROM Titles
WHERE NewBooks.BookTitle = Titles.Title
AND Titles.Royalty = 10
Цей оператор видаляє рядки з таблиці NewBooks, якщо гонорар за ці книги становить 10%. Сума гонорару залежить від значень стовпцяRoyaltyтаблиціTitles.