Операції SELECT, DELETE, INSERT і UPDATE можуть оперувати не тільки базовими таблицями, але й представленнями. Але, якщо з базових таблиць можна видаляти будь-які рядки, поновлювати значення будь-яких їхніх стовпчиків і вводити у такі таблиці нові рядки, то цього не можна сказати про представлення, не всі з яких можуть поновлюватися.
Представлення, отримані з однієї базової таблиці (наприклад, шляхом вилучення деяких її рядків і (або) стовпчиків), можна поновлювати.
Наприклад можна давати такі команди:
UPDATE cust_zak SET adres=’Київ’ WHERE adres=’Полтава’
UPDATE cust_zak SET nom_prod=5 WHERE adres=’Полтава’
Але не можна виконати таку команду:
UPDATE cust_zak SET adres=’Київ’, nom_prod=5 WHERE adres=’Полтава’
Модифікації, які діють на дві і більше таблиці - недопустимі. Якщо ж це потрібно, то використовується кілька команд модифікації, кожна з яких працює зі своїм об`єктом.
Оскільки при визначенні представлення може бути використаний любий допустимий підзапит, то виборка даних може здійснюватися як з базових таблиць, так і з представлень.
По створеним представленням можна робити запити.
Наприклад, одержати всю необхідну інформацію можна за допомогою єдиного запиту:
SELECT *
FROM cust_zak
Одна з основних задач, яку дозволяють вирішувати представлення, - забезпечення незалежності програм користувача від зміни логічної структури бази даних при її розширенні і (або) зміні розміщення стовпчиків, що виникає, наприклад, при розщепленні таблиць. В останньому випадку можна створити представлення-з`єднання з ім'ям і структурою розщепленої таблиці, яке дозволить зберегти програми, що існували до зміни структури бази даних.
Крім того, представлення дають можливість різним користувачам по-різному бачити одні й ті ж дані, можливо, навіть в один і той же час. Це особливо цінно при роботі різних категорій користувачів з єдиною інтегрованою базою даних. Користувачам надають тільки дані, що їх цікавлять, в найбільш зручній для них формі (вікно в таблицю або в любе з`єднання будь-яких таблиць).
Нарешті, від певних користувачів можуть бути приховані деякі дані, невидимі через запропоноване їм представлення. Таким чином, примус користувача здійснювати доступ до бази даних через представлення є простим, але ефективним механізмом для управління санкціонуванням доступу.
Курсори
Курсори дозволяють проводити операції з записами в наборі, створеному з допомогою команди SELECT. Курсор SQL -це ті рядки, які задовольняють запит.
Курсор - це засіб мови SQL, який дозволяє отримати послідовний доступ до рядків віртуальної таблиці, отриманої як результат SQL-запиту. Для роботи з курсором необхідно спочатку оголосити курсор, тобто визначити множину рядків, які пов'язуються з курсором, а потім (в циклі ) звертатися до цих рядків. Слід зауважити, що різні сервери реалізують різни варіанти оголошення та використання курсорів.
Послідовність роботи з курсором така:
· опис курсору;
· відкриття курсору;
· зчитування рядка даних;
· закриття курсору.
У FoxPro робота з курсорами відрізняється від роботи з курсорами у стандарті SQL. Створення курсорів описано у розділі Select…into….