
- •Крещенко л.Ф. Мова 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»
- •Система нарахування балів за видами навчальної роботи
- •Список рекомендованої літератури
Узагальнення даних за допомогою оператора rollup
Оператор ROLLUPгенерує звіти з підсумками і проміжними підсумками. Створюваний його засобами результуючий набір схожий на результуючий набір оператораCUBE. Однак є й розходження:
результуючий набір, згенерований оператором CUBE, показує підсумкові значення для всіх комбінацій значень обраних стовпців;
результуючий набір, згенерований оператором ROLLUP, показує підсумкові значення для ієрархії значень в обраних стовпцях.
Наступний оператор SELECTмістить операторROLLUPу конструкціїGROUP BY:
USE Pubs
SELECT Pub_name, Au.lname, Title, SUM(qty) AS 'Sum'
FROM Authors a INNER JOIN TitleAuthor ta
ON a.Au_id = ta.Au_id INNER JOIN Titles t
ON t.Title_id = ta.Title_id INNER JOIN Publishers p
ON p.Pub_id = t.Pub_id INNER JOIN Sales s
ON s.Title_id - t.Title.id
GROUP BY Pub_name, Au_lname, Title
WITH ROLLUP
Оператор ROLLUPдозволяє створювати угруповання в результуючому наборі. Для подання всіх значень поля в згрупованих рядках використовується порожнє значення (за винятком поляSum). При використанні без оператораROLLUPоператорSELECTгенерує тільки одну групу. ОператорCUBEповертає набагато більше груп. При вказівці в конструкціїGROUP BYнаступних стовпців:Pub_name, Aujname, і TitleоператорROLLUPповертає наступні дані:
кількість екземплярів кожної книги кожного автора, проданих кожним видавництвом;
сумарна кількість екземплярів книг кожного автора, проданих кожним видавництвом;
сумарна кількість всіх книг, проданих кожним видавництвом;
сумарна кількість всіх книг всіх авторів, проданих всіма видавництвами.
На завершення наведемо декілька практичних прикладів для закріплення матеріалу лекції. Наберемо наведені нижче приклади у редакторі запитів та виконаємо їх. Після цього пропонується самостійно проаналізувати результат роботи кожної команди SELECT.
Приклади
Одержання даних за допомогою внутрішнього з'єднання
USE Northwind
SELECT o.Customerl. o.Qrderl, s.CompanyName
FROM Orders про JOIN Shippers s
ON o.ShipVia = s.Shipperl
WHERE ShipCountry = 'USA'
ORDER BY o.Customerl, s.CompanyName
Одержання даних за допомогою лівого зовнішнього з'єднання
USE Northwind
SELECT o.OrderID, o.CustomerID, c.ContactNane. c.City
FROM Orders про LEFT JOIN Customers c
ON o.CustomerID - c.CustomerID
AND o.ShipCity = c.City
ORDER BY o.OrderID
Одержання даних за допомогою правого зовнішнього з'єднання
USE Northwind
SELECT o.QrderID, o.CustomerID, c.ContactName, c.City
FROM Orders про RIGHT JOIN Customers c
ON o.CustomerID = c.CustomerID
AND o.ShipCity = c . C i t y
ORDER BY o.OrderID
Одержання даних за допомогою повного зовнішнього з'єднання
Скористайтеся тим же оператором SELECT, що й у двох попередніх прикладах, тільки змініть у операторі відповідну частину команди для утворення повного зовнішнього з’єднання.
Використання в підзапиті ключового слова IN
USE Northwind
SELECT OrderID, EmployeeID AS EmpID
FROM Orders
WHERE EmployeeID IN(
SELECT EmployeeID
FROM Employees
WHERE City = 'Seattle'
ORDER BY OrderID )
Застосування підзапита з операторами порівняння й ключовим словом ALL
USE Northwind
SELECT Orderl, UnitPrice
FROM [Order Details]
WHERE UnitPrice > ALL
SELECT UnitPrice
FROM [Order Details] JOIN Orders
ON [Order Details].OrderID = Orders.OrderID
AND Orders.EmployeeID = 5
ORDER BY UnitPrice, OrderID
Застосування підзапита із ключовим словом EXISTS
USE Northwind
SELECT OrderID, CustornerID
FROM Orders
WHERE EXISTS
(
SELECT * FROM Customers
WHERE Customers. CustomerID - Orders. CustornerID
AND City = 'London'
)
ORDER BY OrderID
Створення зведених даних за допомогою оператора ROLLUP
USE Northwind
SELECT ProductID. UnitPrice, SUM(Quantity) AS 'Sum'
FROM [Order Details]
GROUP BY ProductID, UnitPrice
WITH ROLLUP
ORDER BY ProductID