Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Видалення даних





 

Видалення рядків з таблиці можна здійснити командою модифікації DELETE. Варто враховувати, що вона може видаляти тільки цілі записи таблиці, а не індивідуальні значення того чи іншого полючи. З цієї причини для даного оператора параметр полючи є недоступним. Наприклад, видалення усього вмісту таблиці STUDENTS, можна скористатися наступним:

DELETE FROM STUDENTS;

У процесі роботи частіше необхідно видаляти не всі дані, а тільки деякі визначені рядки з таблиці. Для того щоб визначити, які рядки будуть вилучені, використовують предикат, аналогічно тому, як це робиться для запитів. Наприклад, щоб видалити інформацію про студента Нагорний, моя використовувати наступну команду:

DELETE FROM STUDENTS WHERE SNUM = 3416;

Тут як предикат використаний номер студентського квитка: це поле фактично є первинним ключем таблиці, що дає гарантію видалення тільки одного запису. Використання полючи SFAM, узагалі говорячи, приводить до видалення декількох записів, тому що в таблиці могла зберігатися формація про однофамільців.

У команді DELETE допускається використовувати предикат, що вибирає целую групу рядків. Наприклад, що випливає команда видаляє з таблиці USP Всі дані, що відносяться до оцінок, лученным 10/06/1999:

DELETE FROM USP WHERE UDATE = 10/06/1999;

Допускається в предикаті використовувати вкладений запит. Найчастіше це необхідно, коли критерій, по якому вибираються дані для видалення, базується на іншій таблиці. Наприклад, якщо виникає необхідність у видаленні інформації про студентів з таблиці STUDENTS, причому для таких, у яких маються трійки по кожному з навчальних предметів, те потрібно виконати наступне:

DELETE FROM STUDENTS WHERE SNUM=(SELECT SNUM FROM USP

WHERE OCENKA= 3);

У даному випадку подзапрос вибере всіх студентів, що мають трійки, з таблиці успішності, і в предикат основної команди поверне номера їхніх студентських квитків.

Допускається в предикаті команди DELETE використовувати і подзапросы, що дає можливість установити досить складні критерії того, які рядки будуть віддалятися. Крім того, дуже ефективно виконувати спочатку вторинні дії (перевірки і т.п.), після чого виконувати саме видалення. Хоча не можна посилатися на таблицю, з якої будуть віддалятися запису, у пропозиції FROM подзапроса, у предикаті допускається посилання на поточну рядок цієї таблиці, тобто можна використовувати співвіднесені подзапросы. Наприклад:

DELETE FROM STUDENTS WHERE EXISTS (SELECT * FROM USP

WHERE OCENKA = 3 AND STUDENTS.SNUM = USP.SNUM);

Частина предиката внутрішнього запиту посилається до таблиці STUDENTS. Це означає, що весь подзапрос буде виконуватися окремо для кожного рядка даної таблиці.

 







Date: 2015-12-11; view: 332; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию