Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник Мова SQL кредитно-модульний.doc
Скачиваний:
35
Добавлен:
01.05.2015
Размер:
1.25 Mб
Скачать

Видалення даних за допомогою api і курсорів

ADO, OLE DB і API ODBCпідтримують видалення поточного рядка в результуючому наборі, отриманим додатком. Крім того, сценарії Transact-SQL, збережені процедури і тригери можуть використовувати для видалення рядка, на якій у цей час встановлений курсор, конструкціюWHERE CURRENT OFв операторіDELETE.

Видалення даних за допомогою оператора truncate table

Оператор TRUNCATE TABLE- швидкий метод видалення з таблиці всіх рядків. Цей метод практично завжди працює швидше оператораDELETE, у якого не задані умови, оскількиDELETEпротоколює видалення кожного рядка, aTRUNCATE TABLE- лише звільнення цілих сторінок даних. ОператорTRUNCATE TABLEнегайно звільняє все місце, зайняте даними і індексами таблиці. Наступний операторTRUNCATE TABLEвидаляє всі рядки з таблиціNewBooksу базі данихPubs:

USE Pubs

TRUNCATE TABLE NewBooks

Як і у випадку оператора DELETE, після застосування оператораTRUNCATE TABLE визначення таблиці (з її індексами й асоційованими об'єктами) залишається в базі даних. Для видалення визначення таблиці варто використати операторDROP TABLE.

Практичні приклади модифікації даних у бд sql Server

Нижче ми створимо таблицю в базі даних BookShopDBі заповнимо її даними. Далі модифікуємо додані в таблицю дані, а потім видалимо їх. Закінчивши цю операцію, ви видалите таблицю з бази даних.

Створення таблиці в базі даних BookShopDB

USE BookShopDB

CREATE TABLE Test1

(

RowID INT IDENTITY(1,1) NOT NULL,

Title VARCHAR(50) NOT NULL,

Type CHAR(12) NOT NULL DEFAULT ('Unknown'),

City VARCHAR(50) NULL,

Cost MONEY NULL

)

Цей оператор створює таблицю за назвою Test1, що складається з п'яти стовпців. Виконаємо оператор Transact-SQL.

Додавання до таблиці Test1 даних за допомогою оператора INSERT... VALUES

INSERT INTO Testl (Title, Type, Cost)

VALUES ('Test Title', 'business', 27,00)

Цей оператор вставляє рядок у таблицю Test1. У рядку вміщуються значення полівTitle, Type і Cost. Виконаємо оператор Transact-SQL.

Напишемо оператор SELECT, що дозволить переглянути всі дані з таблиціTest1. Який оператор варто використати для цього? Виконаємо операторSELECT. Звернемо увагу, що в таблиці є тільки один рядок - той, який ми додали за допомогою оператораINSERT. SQL Server автоматично згенерував значення поляRowID. Значення поляCity- порожнє, оскільки воно не було визначено.

Додавання даних у таблицю Testl за допомогою оператора INSERT... SELECT

INSERT INTO Test1 (Title, Type, Cost)

SELECT Title, Type, Price

FROM Pubs.dbo.Titles

Цей оператор бере дані з таблиці Titlesу базі данихPubsі вставляє їх у таблицюTest1. Виконаємо оператор Transact-SQL. Скористаймося операторомSELECTдля перегляду дані таблиціTest1. Зверніть увагу, що значення поляRowIDзгенеровані автоматично, а в полеCityкожного рядка вміщується порожнє значення.

Модифікація даних за допомогою оператора UPDATE

UPDATE Test1

SET Cost = Cost * 2

WHERE Type = 'business'

Цей оператор у два рази збільшує значення поля Costу порівнянні з вихідним значенням для книг типуbusiness. Виконаємо оператор Transact-SQL. Скористаймося операторомSELECT для перегляду дані таблиціTest1. Зверніть увагу на подвоєне значення поляCostдля кожної книги типуbusiness.

Видалення даних з таблиці Test1 за допомогою оператора DELETE

DELETE Test1

WHERE Title = 'Test Title'

Цей оператор видаляє всі рядки з таблиці, у стовпці Titleякої зазначене значенняTest Title. Виконаємо оператор Transact-SQL. Скористаймося операторомSELECTдля перегляду дані таблиціTest1. Зверніть увагу, що рядокTest Titleвилучений з таблиці.

Уведемо у вікні запитів наступний код на Transact-SQL:

DELETE Test1

Цей оператор видаляє всі рядки таблиці Test1. Виконаємо оператор Transact-SQL. Скористайтеся операторомSELECTдля перегляду даних таблиціTest1. Зверніть увагу на відсутність даних у таблиціTest1.

Видалення з бази дані таблиці Test1 за допомогою оператора DROP TABLE

DROP TABLE Test1

Цей оператор видаляє таблицю Test1з бази данихBookShopDB. Виконаємо оператор Transact-SQL. Якими засобами можна перевірити, що таблицюTest1вилучено з бази даних?