Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен БД.docx
Скачиваний:
7
Добавлен:
20.04.2019
Размер:
240.87 Кб
Скачать

Оператор удаления строк 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);

  1. Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления. Оператор 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;

Изменение типа атрибута, размера типа и наличия опции NOT NULL

Для изменения типа данных атрибута, размера типа данных или наличия опции NOT NULL используется следующие синтаксис:

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

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

ALTER TABLE Dealers MODIFY D_id NUMBER(8) NOT NULL;

При изменении типов данных и размеров типов данных атрибутов следует соблюдать осторожность. Дело в том, что при «сужении» области допустимых значений, который может принимать атрибут, могут быть утеряны («обрезаны») данные, выходящие за пределы новой области допустимых значений.