Удаление строки из таблицы sql

Удаление строки из таблицы sql

Определенные строки удаляются из таблицы, если Вы указываете предложение WHERE :

Все строки в таблице удаляются, если Вы опускаете предложение WHERE :

Можно удалить конкретные строки, определяя предложение WHERE в операторе DELETE . Первый пример на рисунке удаляет Бухгалтерский отдел из таблицы DEPARTMENTS . Можно проверить работу удаления, выводя на экран удаленные строки при использовании оператора SELECT.

SELECT *
FROM departments
WHERE department_name = ‘Finance’;
0 rows selected

Однако, если Вы опускаете предложение WHERE , все строки в таблице удаляются. Второй пример на рисунке удаляет все строки из таблицы COPY_EMP , потому что предложение WHERE не было определено.

Удалите строки, идентифицированные в предложении WHERE .

DELETE FROM employees WHERE employee_ >
1 rows deleted
DELETE FROM departments WHERE department_id IN (30, 40);
2 rows deleted

Удаление Строк, основываясь на Другой Таблице

Используйте подзапросы в операторе DELETE , чтобы удалить строки из таблицы, основываясь на значениях из другой таблицы:

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

Подзапрос ищет в таблице DEPARTMENTS номер отдела, основываясь на имени отдела, содержащем строку Public . Подзапрос затем передает номер отдела к основному запросу, который удаляет строки данных из таблицы EMPLOYEES , основываясь на этом номере отдела.

Оператор SQL DELETE и удаление данных с условием

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

Если не указывать условие, из таблицы будут удалены все строки. Кроме того, следует помнить, что могут быть удалены лишь строки с первичными ключами, на которые не ссылаются внешние ключи в других таблицах (более подробно об ограничениях удаления — в уроке Реляционная модель данных).

Читайте также:  Второе поколение эвм размеры

Пример 1. Есть база портала объявлений. В ней есть таблица Ads, содержащая данные о объявлениях, поданных за неделю (более подробно — в уроке об агрегатных функциях SQL, пример 7). Таблица выглядит так:

Id Category Part Units Money
1 Транспорт Автомашины 110 17600
2 Недвижимость Квартиры 89 18690
3 Недвижимость Дачи 57 11970
4 Транспорт Мотоциклы 131 20960
5 Стройматериалы Доски 68 7140
6 Электротехника Телевизоры 127 8255
7 Электротехника Холодильники 137 8905
8 Стройматериалы Регипс 112 11760
9 Досуг Книги 96 6240
10 Недвижимость Дома 47 9870
11 Досуг Музыка 117 7605
12 Досуг Игры 41 2665

Требуется удалить из таблицы строку, имеющую идентификатор 4. Для этого пишем следующий запрос:

Пример 2. Можно удалить и несколько строк, если в условии применить оператор сравнения "больше" или "меньше":

В результате в таблице останутся лишь следующие строки:

Id Category Part Units Money
5 Стройматериалы Доски 68 7140
6 Электротехника Телевизоры 127 8255
7 Электротехника Холодильники 137 8905
8 Стройматериалы Регипс 112 11760
9 Досуг Книги 96 6240
10 Недвижимость Дома 47 9870
11 Досуг Музыка 117 7605
12 Досуг Игры 41 2665

Пример 3. Аналогично можно удалять строки с заданными значениями любого столбца. Удалим, например, строки об объявлениях, за которые выручено менее 10000 денежных единиц:

Пример 4. Чтобы удалить все данные из таблицы ADS, достаточно написать следующий запрос:

Если после выполнения этого запроса обратиться к таблице ADS при помощи оператора SELECT, применяемого для получения выборки данных, то будет выведено сообщение о том, что эта таблица не содержит данных.

Оператору DELETE без условий и ограничений аналогичен оператор TRUNCATE TABLE. Он также удаляет из таблицы все строки, но выполняется намного быстрее.

Читайте также:  Установить параметры динамического списка 1с программно

Пример 5. Запрос на удаление всех данных из таблицы ADS при помощи оператора TRUNCATE TABLE будет следующим:

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

Если предложение WHERE отсутствует, удаляются все строки из таблицы или представления (представление должно быть обновляемым). Более быстро эту операцию (удаление всех строк из таблицы) можно в Transact-SQL (T-SQL) — процедурное расширение языка SQL, используемое для программирования на стороне сервера в Microsoft SQL Server и Sybase ASE. Transact-SQL также выполнить с помощью команды

Однако есть ряд особенностей в реализации команды TRUNCATE TABLE , которые следует иметь в виду:

  • не журнализируется удаление отдельных строк таблицы; в журнал записывается только освобождение страниц, которые были заняты данными таблицы;
  • не отрабатывают триггеры, в частности, триггер на удаление;
  • команда неприменима, если на данную таблицу имеется ссылка по внешнему ключу, и даже если внешний ключ имеет опцию каскадного удаления.
  • значение счетчика ( IDENTITY ) сбрасывается в начальное значение.

Требуется удалить из таблицы Laptop все портативные компьютеры с размером экрана менее 12 дюймов.

Все блокноты можно удалить с помощью оператора

Ссылка на основную публикацию
Adblock detector