Оператор удаления строк DELETE 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оператор удаления строк DELETE



Оператор DELETE используется для удаления существующих строк таблиц. Оператор DELETE имеет следующий синтаксис:

 

DELETE FROM имя_таблицы

[WHERE условие_фильтрации_строк ];

Параметр WHERE используется для отбора тех строк, которые необходимо удалить. Если параметр WHERE не будет указан, то будут удалены все строки указанной таблицы.

Удаление единственной записи

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

-- удаление из таблицы MANAGERS информации о менеджере с номером 1

DELETE FROM Managers WHERE Man_id = 1;

 

Удаление множества записей

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

-- удаление из таблицы MANAGERS информации о менеджерах, проработавших меньше недели

DELETE FROM Managers

WHERE Hire_Date >= sysdate - 7;

 

Удаление с вложенным подзапросом

Причины использования подзапросов были описаны ранее. Для таких случаев синтаксис оператора DELETE допускает использование подзапросов в параметре WHERE для формирования набора строк, которые предполагается удалить. Например:

-- удаление информации о тех менеджерах, чей размер комиссионных не превышает средний уровень

DELETE FROM MANAGES

WHERE Procent < (SELECT AVG(Procent) FROM Managers);

Поскольку синтаксис оператора DELETE не допускает одновременное указание нескольких таблиц после ключевого слова DELETE, подзапросы в параметре WHERE также используются в тех случаях, когда необходимо составить условие фильтрации на основе данных другой таблицы или таблиц. Например:

-- удаление информации о тех менеджерах, которые не продали ни одного товара за последнюю неделю

DELETE FROM Managers

WHERE Man_id NOT IN

(SELECT DISTINCT Man_id FROM Outgoing

WHERE Out_date >= sysdate - 7);

 

3. Подмножество языка DDL: операторы CREATE, ALTER, DROP. Представления, их значение; обновляемые представления.

Подмножество языка DDL

Язык определения данных (DDL – Data Definition Language) предоставляет пользователям средства указания типа данных и их структуры, а также средства задания ограничений для информации, хранимой в базе данных.

Оператор CREATE

Создание таблицы

Оператор CREATE служит для создания любого типа объектов, из которых состоит база данных, в том числе таблиц.

Синтаксис команды создания таблицы:

CREATE TABLE имя_таблицы (

поле1 тип1 [ ограничения ],

[ поле2 тип2 [ ограничения ],

…]);

 

Возможные ограничения в таблицах:

· NOT NULL – значение атрибута должно быть определено (опция NOT NULL);

· UNIQUE – значения атрибутов являются уникальными (уникальный ключ);

· PRIMARY KEY – атрибут является первичным ключом (первичный ключ);

· CHECK – определяет условие, которому должны удовлетворять значения атрибута (домен);

· DEFAULT – присвоение значений «по умолчанию» для атрибутов.

Используя приведенный выше синтаксис, вместе с созданием таблицы можно вместе с атрибутами таблицы сразу же задать и ограничения декларативной и ссылочной целостности, но только в том случае, если они касаются только одного конкретного атрибута. Если же первичный, уникальный или вторичный ключ должны быть составными, для их создания нужно применять команду ALTER TABLE.

Например, для создания таблицы Dealers из схемы, приведенной в разделе 3.3, достаточно выполнить следующую команду:

 

CREATE TABLE Dealers1(

D_id NUMBER,

Name VARCHAR2(30),

Procent NUMBER(4,2),

Comments VARCHAR2(50) DEFAULT ‘no comments’);

Создание копии таблицы

Иногда необходимо создать таблицу в точности или частично по структуре и содержанию копирующую какую-либо из существующих таблиц. В этом случае используется следующий синтаксис:

 

CREATE TABLE имя_таблицы AS оператор SELECT;

Например, для того чтобы создать копию таблицы Dealers можно выполнить следующую команду:

 

CREATE TABLE Dealers_Copy AS SELECT * FROM Dealers;

Оператор ALTER

Оператор ALTER служит для изменения структуры любых объектов, из которых состоит база данных. В зависимости от типа объекта, изменяются и параметры команды ALTER. Далее рассмотрены примеры применения команды ALTER для изменения структуры объектов TABLE.

 

Добавление атрибута таблицы

Для добавления атрибута к таблице применяется следующий синтаксис:

 

ALTER TABLE имя_таблицы ADD поле тип [ ограничения ];

 

Например, для добавления к таблице Dealers целого поля Age можно выполнить следующую команду:

 

ALTER TABLE Dealers ADD Age NUMBER(2);

 

Удаление атрибута таблицы

Для удаления атрибута таблицы применяется следующий синтаксис:

 

ALTER TABLE имя_таблицы DROP COLUMN поле;

 

Например, для удаления поля Age из таблицы Dealers можно выполнить следующую команду (При удалении атрибутов таблиц СУБД проверяет наличие внешних ключей, ссылающихся на удаляемые атрибуты. При наличии внешних ключей, ссылающихся на удаляемые атрибуты, удаление будет прервано сообщением об ошибке.):

ALTER TABLE Dealers DROP COLUMN Age;

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 204; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.192.3 (0.01 с.)