
- •Крещенко л.Ф. Мова 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»
- •Система нарахування балів за видами навчальної роботи
- •Список рекомендованої літератури
Створення таблиці Authors у базі BookShopDb
У редакторі запитів уведемо наступний код мовою Transact-SQL:
USE bookshopdb
CREATE TABLE Authors
(
AuthorID SMALLINT IDENTITY(101,1) NOT NULL,
FirstName VARCHAR(30) NOT NULL DEFAULT 'unknown',
LastNane VARCHAR(3O) NOT NULL,
YearBorn CHAR(4) NOT NULL DEFAULT 'N/A',
YearDied CHAR(4) NOT NULL DEFAULT ' N/A',
Description VARCHAR (200) NOT NULL DEFAULT 'N/A'
)
Створення таблиць BookAuthors і BookCondition у базі даних BookShopDb
Уведемо на панелі редактору запитів наступний код Transact-SQL:
USE Boookshopdb
CREATE TABLE BookAuthors
(
AutorID SMALINT NOT NULL,
TitleID CHAR(8) NOT NULL
)
CREATE TABLE BookCondition
(
ConaitionID TINYINT NOT NULL,
ConditionName CHAR(10) NOT NULL,
Description VARCHAR(50) NOT NULL DEFAULT 'N/A'
)
Цей оператор створює таблиці BookAuthors і BookCondition. Зверніть увагу, що ні в жодній з таблиць не визначена властивість IDENTITY. BookAuthors - це з'єднуюча таблиця, тому її значення визначаються іншими таблицями (Authors і Books). Таблиця BookCondition складається з кінцевого числа рядків, тому не становить праці згенерувати ідентифікатор вручну.
Тема 3. Синтаксичні елементи мови Transact-sql
В Transact-SQL входить багато синтаксичних елементів, які використовуються більшістю операторів або впливають на них. До таких елементів відносяться ідентифікатори, змінні, функції, типи даних, вирази, мова керування ходом виконання та коментарі.
1.Ідентифікатори
Ім'я об'єкта бази даних називається ідентифікатором.В SQL Server будь-який об'єкт може мати ідентифікатор: сервери, бази даних і їх об'єкти (таблиці, відображення, стовпці, індекси, тригери, процедури, обмеження і правила). Для більшості об'єктів ідентифікатори необхідні, у той час як для деяких об'єктів (наприклад, для обмежень) вони не обов'язкові.
Ідентифікатор об'єкта створюється при визначенні об'єкта. Після цього на об'єкт посилаються за допомогою ідентифікатора. У прикладі оператор створює таблицю з ідентифікатором Table, що складається із двох стовпців з ідентифікаторамиKeyColіDescription:
CREATE TABLE Table (
KeyCol INT PRIMARY KEY,
Description NVARCHAR(50)
)
Існують два класи ідентифікаторів: звичайні і з обмежниками.
Звичайні ідентифікатори
У звичайних ідентифікаторах обмежники не застосовуються. У наступному операторі SELECT є присутнім два ідентифікатори: TableіKeyCol.
SELECT * FROM Table
WHERE KeyCol = 124
Ідентифікатори з обмежниками
Ідентифікатори з обмежниками включають у подвійні лапки (" "} або квадратні дужки ([ ]). Ідентифікатори, що відповідають правилам форматування ідентифікаторів, бувають як з обмежниками, так і звичайними ідентифікаторами. У наступному операторі SELECTобмежники (квадратні дужки) не обов'язкові:
SELECT * FROM [Table]
WHERE [KeyCol] = 124
В операторах Transact-SQL ідентифікатори, що не повністю відповідають правилам форматування, необхідно записувати між обмежниками. У наступному операторі SELECT ідентифікатор My Tableнеобхідно використати з обмежниками, оскільки він містить пробіл. ІдентифікаторOrderтакож варто використати з обмежниками, оскільки він збігається із зарезервованим ключовим словом.
SELECT * FROM [My Table]
WHERE [Order] = 10
Змінні
Змінна мови Transact-SQL являє собою об'єкт у пакетах Transact-SQL і у сценаріях, який може мати певне значення. Після того як змінна визначена (оголошена), один оператор Transact-SQL з пакету може встановити її значення, а інший - пізніше одержати значення цієї змінної. Наступні оператори Transact- SQL оголошують змінну з ім'ям EmpIDVar, та встановлюють її значення яке дорівнює 3, а потім використовують цю змінну в операторі SELECT:
USE Northwind
DECLARE @EmpIDVar INT
SET @EmpIDVar = 3
SELECT * FROM Employees
WHERE EmployeeID = @EmpIDVar + 1
Як правило, змінні в пакетах і сценаріях виконують наступні функції:
є лічильниками циклів;
зберігають значення, які аналізуються операторами, що управляють ходом виконання програми;
використовуються для збереження значення коду повернення збереженої процедури.
Часто змінні використовуються як лічильники в операторах WHILEіLOOP, a також у блокахIF...ELSEу пакетах або процедурах. Змінні можна застосовувати тільки у виразах, вони не повинні збігатися з іменами об'єктів і ключових слів.