Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Удаление данных из базы (оператор DELETE)




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

Этот оператор имеет следующий формат:

'''DELETE FROM TableName

:[WHERE searchConditionJ

Как и в случае операторов INSERT и UPDATE, параметр TableName может представлять собой либо имя таблицы базы данных, либо имя обновляемого представления (см. раздел 6.4). Параметр searchCondition является необязательным — если он опущен, из таблицы будут удалены все существующие в ней строки. Однако сама по себе таблица удалена не будет. Если необходимо удалить не только содержимое таблицы, но и ее определение, следует использовать оператор DROP TABLE (см. раздел 6.3.3). Если конструкция WHSRE присутствует, из таблицы будут удалены только те строки, которые удовлетворяют условию отбора, заданному параметром searchCondition,

Пример 5.41. Удаление определенных строк таблицы (оператор DELETE)

Удалить все записи об осмотрах сдаваемого в аренду объекта с учетным номером PG4.

DELETE FROM Viewing

WHERE propertyNo = 'PG4';

Конструкция WHERE позволяет найти как предназначенные для удаления только те строки таблицы,, которые относятся к сдаваемому в аренду объекту с номером ' PG4 ', и применить к ним операцию удаления.

Пример 5.42. Удаление всех строк таблицы (оператор DELETE) Удалить все строки из таблицы viewing.

DELETE FROM Viewing/

Поскольку в данном операторе конструкция WHERE не указана, будут удалены все строки таблицы. В результате в базе данных сохранится лишь описание таблицы Viewing, что в дальнейшем позволит ввести в нее новую информацию.

• SQL является непроцедурным языком, построенным на использовании обычных английских слов (таких как SELECT, INSERT, DELETE). Он может применяться как профессионалами, так и рядовыми пользователями. Этот язык формально и фактически стал стандартным языком определения и манипулирования реляционными базами данных.

• Оператор SELECT используется для создания запроса и является самым важным из всех существующих операторов SQL. Он объединяет в себе три основные операции реляционной алгебры: выборку, проекцию и соединение. При выполнении любого оператора SELECT создается результирующая таблица, содержащая один или несколько столбцов и нуль или больше строк.

• В списке выборки SELECT указываются столбцы и/или вычисляемые поля, которые должны присутствовать в результирующей таблице. В конструкции FROM должны быть перечислены все таблицы и представления, доступ к которым необходим для извлечения данных из столбцов, имена которых присутствуют в списке выборки SELECT.

• Конструкция WHERE используется для отбора строк данных, которые должны быть помещены в результирующую таблицу запроса. Отбор осуществляется посредством проверки заданных условий поиска для каждой из строк указанных таблиц. Конструкция ORDER BY позволяет упорядочить строки результирующей таблицы по значению одного или нескольких столбцов. Для каждого столбца может использоваться сортировка в порядке возрастания или убывания значений. Если конструкция ORDER BY присутствует в операторе SELECT, то она должна быть в нем последней.

• В языке SQL определено пять агрегирующих функций (COUNT, SUM, AVG, MIN и MAX), каждая из которых как параметр использует значения всех элементов указанного столбца и возвращает в качестве результата единственное значение. В одной конструкции SELECT не допускается смешивать и агрегирующие функции, и имена столбцов, за исключением случая использования конструкции GROUP BY.

• Конструкция GROUP BY позволяет включать в результирующую таблицу запроса итоговую информацию. Строки, которые имеют одно и то же значение в одном или нескольких столбцах, могут объединяться и рассматриваться как исходная информация для агрегирующих функций. В этом случае агрегирующая функция воспринимает каждую из групп как параметр и вычисляет единственное значение для каждой группы, возвращаемое как результат.

Применительно к группам конструкция HAVING выполняет те же функции, что и конструкция WHERE по отношению к строкам. С ее помощью можно выполнить отбор групп, которые будут помещены в результирующую таблицу запроса. Однако, в отличие от конструкции WHERE, в конструкции HAVING могут использоваться агрегирующие функции.

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

Предусмотрены три типа подзапросов: скалярный, строковый и табличный.

Скалярный подзапрос возвращает значение из одного столбца и одной строки; по сути, это — единственное значение. В принципе скалярный подзапрос может применяться во всех случаях, когда требуется единственное значение.

Строковый подзапрос возвращает данные из нескольких столбцов, но опять таки в виде одной строки. Строковый подзапрос может использоваться во всех случаях, когда требуется получить одну строку, чаще всего в предикатах. Табличный подзапрос возвращает один или несколько столбцов и несколько строк. Табличный подзапрос может использоваться везде, где требуется таблица, например в качестве операнда для предиката IN.

Если столбцы результирующей таблицы выбираются из нескольких исходных таблиц, для последних должт быть выполнена операция соединения. Имена соединяемых таблиц указываются в конструкции FROM, а столбцы, по которым осуществляется соединение, обычно определяются в конструкции WHERE. Стандарт ISO допускает использование внешних соединений. Кроме того, он позволяет применять операции над множествами (объединение, пересечение и разность), определяемые с помощью ключевых слов UNION, INTERSECT и EXCEPT.

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

(ОПРОСЫ

5.1. Назовите два главных компонента языка SQL. Какие функции они выполняют?

5.2. Каковы достоинства и недостатки языка SQL?

5.3. Объясните назначение каждой из конструкций, которые могут присутствовать в операторе SELECT. Какие ограничения накладываются на эти конструкции?

5.4. Какие ограничения накладываются на использование агрегирующих функций в теле оператора SELECT? Как агрегирующими функциями обрабатываются значения NULL?

5.5. Объясните принципы работы конструкции GROUP BY. В чем состоит различие между конструкциями WHERE и HAVING?

5.6. Каковы различия между подзапросом и соединением? При каких обстоятельствах использование подзапросов становится невозможным?

В упражнениях 5.7-5.28 применяется схема Hotel, которая определена в упражнениях главы 3.

Простые запросы

5.7. Выберите из базы данных сведения обо всех отелях.

5.8. Выберите из базы данных сведения обо всех отелях, расположенных в Лондоне.

5.9. Составьте перечень имен и адресов всех постояльцев, зарегистрированных в отелях Лондона, упорядочив информацию по именам постояльцев в алфавитном порядке.

5.10. Составьте список всех двухкомнатных или семейных номеров отелей с ценой менее 40 фунтов стерлингов в сутки, упорядочив данные в порядке увеличения стоимости номера.

5.11. Выберите все записи регистрации постояльцев, в которых не было заполнено поле dateTo.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...