Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PMO_PMS_shpory_final.docx
Скачиваний:
7
Добавлен:
17.09.2019
Размер:
457.71 Кб
Скачать
  1. Структурированный язык запросов sql. Оператор delete. Структура оператора и примеры использования. Примеры использования delete с вложенными подзапросами.

SQL (Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей. Все языки манипулирования данными (ЯМД), созданные до появления реляционных баз данных и разработанные для многих систем управления базами данных (СУБД) персональных компьютеров, были ориентированы на операции с данными, представленными в виде логических записей файлов. Это требовало от пользователей детального знания организации хранения данных и достаточных усилий для указания не только того, какие данные нужны, но и того, где они размещены и как шаг за шагом получить их. SQL (Structured Query Language - структуризованный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных. Язык SQL представляет собой совокупность операторов, инструкций и вычисляемых функций. Операторы SQL делятся на операторы определения данных (Data Definition Language, DDL): CREATE создает объект, БД (саму базу, таблицу, представление, пользователя и т. д.), ALTER изменяет объект, DROP удаляет объект.

Операторы манипуляции данными (Data Manipulation Language, DML): SELECT считывает данные, удовлетворяющие заданным условиям, INSERT добавляет новые данные, UPDATE изменяет существующие данные, DELETE удаляет данные. Операторы определения доступа к данным (Data Control Language, DCL): GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом

REVOKE отзывает ранее выданные разрешения, DENY задает запрет, имеющий приоритет над разрешением. Операторы управления транзакциями (Transaction Control Language, TCL): COMMIT применяет транзакцию, ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,

SAVEPOINT делит транзакцию на более мелкие участки.

Каким образом удалить строки из таблицы? Для этого используется оператор DELETE. Его основной синтаксис очень прост: удалять можно только целые строки, поэтому указывать имена отдельных

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

DELETE FROM Employee

Однако этот простой оператор является очень мощным. С его помощью будут удалены все строки из таблицы Employee. В большинстве случаев к этому оператору приходится добавлять оператор WHERE, кокоторый может принимать любую из форм, рассмотренных ранее при изучении оператора SELECT. Например, отдельную строку из таблицы Employee можно удалить следующим образом:

DELETE FROM Employee WHERE EmpId " 456

Язык SQL разрешает использовать в других операторах языка DML подзапросы, которые являются внутренними запросами, определяемыми оператором SELECT.

Подзапрос - очень мощное средство языка SQL. Он позволяет строить сложные иерархии запросов, многократно выполняемые в процессе построения результирующего набора или выполнения одного из операторов изменения данных (DELETE, INSERT, UPDATE).

Подзапрос позволяет решать следующие задачи:

определять набор строк, добавляемый в таблицу на одно выполнение оператора INSERT;

определять данные, включаемые в представление, создаваемое оператором CREATE VIEW ;

определять значения, модифицируемые оператором UPDATE;

указывать одно или несколько значений во фразах WHERE и HAVING оператора SELECT;

определять во фразе FROM таблицу как результат выполнения подзапроса;

применять коррелированные подзапросы.

Подзапрос называется коррелированным, если запрос, содержащийся в предикате, имеет ссылку на значение из таблицы (внешней к данному запросу), которая проверяется посредством данного предиката.

Оператор DELETE в стандарте SQL-92 имеет следующее формальное описание:

DELETE FROM table_name

[ { WHERE condition }

| { WHERE CURRENT OF cursor_name } ];

Оператор DELETE используется для удаления из таблицы строк, указанных условием во фразе WHERE (поисковое удаление, searched deletion) или WHERE CURRENT OF (позиционное удаление, positioned deletion).

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

Если оператор DELETE применяется к какому-либо представлению, то данные удаляются также из созданной на основе последнего таблицы базы данных.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]