Ознайомлення із мовою Transact-SQL. Використання транзакцій та DML

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт
Предмет:
Бази даних
Група:
ПІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут КНІТ Кафедра ПЗ ЗВІТ До лабораторної роботи № 2 На тему: “ Ознайомлення із мовою Transact-SQL. Використання транзакцій та DML.” З дисципліни : "Бази даних" Лектор: Доцент каф. ПЗ Павич Н.Я. Львів – 2009 Тема роботи: Ознайомлення із мовою Transact-SQL. Використання транзакцій та DML. Мета роботи: Навчитися використовувати T-SQL, DML та транзакції для зміни даних та управління запитами в SQL Server 2008. Навчитися виконувати вставку, оновлення та видалення записів в таблицях бази даних. Теоретичні відомості Transact-SQL (T-SQL) - процедурне розширення мови SQL компаній Microsoft для Microsoft SQL Server. SQL був розширений такими додатковими можливостями, як: керуючі оператори локальні змінні різні додаткові функції (для обробки рядків, дат, математичні та ін) підтримка аутентифікації Microsoft Windows. Основні інструкції Transact-SQL: 1) INSERT - додає новий рядок до таблиці. INSERT INTO <table_name> VALUES (<зн.стовп1>,...,<зн.стовпN>); table _name - ім'я таблиці, що приймає дані. VALUES - введення списку зі значеннями даних для вставки. 2) DELETE - видаляє рядки з таблиць. DELETE FROM <table_name> table - ім'я таблиці, з якої видаляються рядки. 3) SELECT - отримує рядки з бази даних і дозволяє робити вибірку одного чи кількох рядків або стовпців з однієї або декількох таблиць. 4) UPDATE - змінює існуючі дані в таблиці. UPDATE <table_name> SET <ім’я стовпця>=<значення>; table_name - ім'я таблиці, в якій повинні оновлюватися рядки. SET - визначає список оновлюваних імен стовпців або змінних. 5) BEGIN TRANSACTION - зазначає початкову точку явної локальної транзакції. Інструкція BEGIN TRANSACTION збільшує значення функції @@TRANCOUNT на 1.  BEGIN (TRAN | TRANSACTION) [(Transaction_name)] transaction_name - назва, присвоєна транзакції. 6) COMMIT TRANSACTION - зазначає успішне завершення явної або неявної транзакції. Якщо значення параметра @@TRANCOUNT дорівнює 1, то інструкція COMMIT TRANSACTION робить всі зміни, виконані з початку транзакції, звільняє ресурси, утримувані транзакцією, і зменшує значення параметра @@TRANCOUNT до 0. Якщо значення параметра @@TRANCOUNT більше 1, інструкція COMMIT TRANSACTION зменшує значення параметра @@TRANCOUNT на 1 і залишає транзакцію активною.  COMMIT (TRAN | TRANSACTION) [transaction_name]]  transaction_name - встановлює ім'я транзакції, присвоєне попередньо інструкцією BEGIN TRANSACTION. 7) ROLLBACK TRANSACTION - забезпечує відкат явних або неявних транзакцій до початку або до точки збереження транзакції.  ROLLBACK (TRAN | TRANSACTION) [Transaction_name | Savepoint_name]  transaction_name - ім'я, призначене транзакції в інструкції BEGIN TRANSACTION. savepoint_name - параметр savepoint_name з інструкції SAVE TRANSACTION. 8) CASE - оцінка списку умов і повернення одного з декількох можливих виразів результатів. Індивідуальне завдання Створити базу даних із архітектурою таблиць згідно варіанту. Всі новостворені об’єкти бази даних помістити у наперід створену схему бази даних. Внести відповідні дані у таблиці. Використовуючи DML виконати індивідуальне завдання згідно варіанту для відповідної навчальної бази даних. Використовуючи DML та транзакції виконати індивідуальне завдання згідно варіанту у власній базі даних. Продемонструвати використання інструкцій для роботи із транзакціями та обробки помилок використовуючи вірний та хибний запит. Вивести відповідні повідомлення про статус виконання запиту. Варіант 9. Внесіть зміни в таблиці Classes так, щоб калібри гармат вимірювалися в сантиметрах (1 дюйм = 2,5 см), а водотоннажність в метричних тоннах (1 метрична тонна = 1,1 тонни). Водотоннажність обчислити з точністю до цілих. Результати роботи 1. Створення нової бази даних lab2_DB: CREATE DATABASE lab2_DB GO 2. Створення таблиць бази даних lab2_DB: а) створення таблиці Classes:  USE lab2_DB go BEGIN TRANSACTION GO CREATE TABLE Classes ( class varchar(50) PRIMARY KEY, type varchar(2) NOT NULL, country varchar(20) NOT NULL, numGuns tinyint NULL, bore real NULL, displacement int NULL ); GO COMMIT б) створення таблиці Ships:  USE lab2_DB GO BEGIN TRANSACTION GO CREATE TABLE Ships ( name varchar(50) PRIMARY KEY, class varchar(50) NOT NULL, launched smallint NULL ); GO COMMIT в) створення таблиці Battles:  USE lab2_DB GO BEGIN TRANSACTION GO CREATE TABLE Battles ( name varchar(20) PRIMARY KEY, [date] datetime NOT NULL ); GO COMMIT г) створення таблиці Outcomes:  USE lab2_DB GO BEGIN TRANSACTION GO CREATE TABLE Outcomes ( ship varchar(50) PRIMARY KEY, battle varchar(20) unique not null, result varchar(10) not NULL ); GO COMMIT TRANSACTION 3. Заповнення таблиці Classes даними: USE lab2_DB GO INSERT INTO Classes VALUES ('class1', 'bb', 'Ukraine', 10, 32.5, 107), ('class2', 'bc', 'Poland', 23, 31.6, 245), ('class3', 'bc', 'Greece', 21, 67.6, 156), ('class4', 'bb', 'Italy', 45, 34.7, 168), ('class5', 'bc', 'Ukraine', 34, 19.6, 189)  4. Виконання оновлення вмісту БД за допомогою інструкції UPDATE (зміна одиниць вимірювання калібру гармат з дюймів в сантиметри та водотоннажності суден з тон в метричні тони): UPDATE Classes set bore = bore * 2.5, displacement *= 1.1 Результат виконання інструкції DML:  5. Виконання оновлення вмісту БД за допомогою інструкції UPDATE з використанням транзакції: а) зі здійсненням відкату транзакції: BEGIN TRANSACTION UPDATE Classes set bore = bore * 2.5, displacement *= 1.1 ROLLBACK TRANSACTION Результат виконання транзакції (значення bore і displacement не змінилися):   б) з виконанням фіксації транзакції: BEGIN TRANSACTION UPDATE Classes set bore = bore * 2.5, displacement *= 1.1 COMMIT TRANSACTION Результат виконання транзакції (зміна значення bore і displacement):   6. Використання інструкції TRY…CATCH для обробки помилок: USE lab2_DB; GO CREATE TABLE SomeTable (some_id int PRIMARY KEY, some_val VARCHAR(10)); GO DROP TABLE SomeTable BEGIN TRANSACTION BEGIN TRY DROP TABLE SomeTable END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage; IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; END CATCH; IF @@TRANCOUNT > 0 COMMIT TRANSACTION; GO а) у разі успішного виконання транзакції пов’язаної з видаленням щойно створеної таблиці жодних повідомлень про помилки не виводиться:  б) у разі спроби повторного видалення вже видаленої таблиці блок CATCH перехоплює помилку і виводить про неї повну інформацію:  Висновок На цій лабораторній роботі я навчитися використовувати T-SQL, DML та транзакції для зміни даних та управління запитами в SQL Server 2008. Зокрема створив транзакцію для виконання оновлення даних таблиці Classes, виконавши в одному випадку фіксацію (COMMIT) транзакції, а в другому – її відкат (ROLLBACK). Також я навчився працювати з блоками обробки помилок TRY…CATCH, використавши їх для відслідковування виникнення помилок при видаленні таблиці БД.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!