SQL DELETE — удаление данных из таблицы базы данных
Оглавление Связанные темыОператор SQL DELETE предназначен для удаления данных из таблицы. Он имеет следующий синтаксис:
DELETE FROM ИМЯ_ТАБЛИЦЫ WHERE УСЛОВИЕ
Если не указывать условие, из таблицы будут удалены все строки. Кроме того, следует помнить, что могут быть удалены лишь строки с первичными ключами, на которые не ссылаются внешние ключи в других таблицах (более подробно об ограничениях удаления — в уроке Реляционная модель данных).
Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке.
А скрипт для создания базы данных «Портал объявлений 1», её таблицы и заполения таблицы данных — в файле по этой ссылке
Пример 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. Для этого пишем следующий запрос (на MS SQL Server — с предваряющей конструкцией USE adportal1;):
DELETE FROM ADS WHERE Id=4
Пример 2. Можно удалить и несколько строк, если в условии применить оператор сравнения «больше» или «меньше» (на MS SQL Server — с предваряющей конструкцией USE adportal1;):
DELETE FROM ADS WHERE Id>4
В результате в таблице останутся лишь следующие строки:
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 денежных единиц (запрос на MS SQL Server — с предваряющей конструкцией USE adportal1;):
DELETE FROM ADS WHERE MoneyВ результате в таблице останутся лишь следующие строки:
Id | Category | Part | Units | Money |
1 | Транспорт | Автомашины | 110 | 17600 |
2 | Недвижимость | Квартиры | 89 | 18690 |
3 | Недвижимость | Дачи | 57 | 11970 |
4 | Транспорт | Мотоциклы | 131 | 20960 |
8 | Стройматериалы | Регипс | 112 | 11760 |
Для удаления всех строк из таблицы применяется оператор SQL DELETE без условий, заданных в секции WHERE и без любых других ограничей и условий, например, диапазона удаляемых строк. Таким образом, для удаления всех строк синтаксис оператора DELETE будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):
DELETE FROM ИМЯ_ТАБЛИЦЫ
Пример 4. Чтобы удалить все данные из таблицы ADS, достаточно написать следующий запрос:
DELETE FROM ADS
Если после выполнения этого запроса обратиться к таблице ADS при помощи оператора SELECT, применяемого для получения выборки данных, то будет выведено сообщение о том, что эта таблица не содержит данных.
Оператору DELETE без условий и ограничений аналогичен оператор TRUNCATE TABLE. Он также удаляет из таблицы все строки, но выполняется намного быстрее.
Пример 5. Запрос на удаление всех данных из таблицы ADS при помощи оператора TRUNCATE TABLE будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):
TRUNCATE TABLE ADS
Примеры запросов к базе данных «Портал объявлений-1» есть также в уроках об операторах INSERT, UPDATE, HAVING и UNION.
Поделиться с друзьями
Команда DELETE — Язык запросов SQL
Команда DELETE
Команда DELETE удаляет строки из таблицы или представления основной таблицы базы данных, например, в MySQL, Oracle.
Команда DELETE. Синтаксис команды DELETE
Синтаксис команды DELETE
Команда DELETE. Основные ключевые слова и параметры команды DELETE
- schema — идентификатор полномочий, обычно совпадающий с именем некоторого пользователя
- table view — имя таблицы, из которой удаляются строки; если определяется представление, сервер удаляет строки из основной таблицы представления
- subquery — подзапрос, с помощью которого выбираются строки для удаления; сервер выполняет подзапрос и использует строки его результата как таблицу фразы FROM
- WHERE — удаляет только строки, которые удовлетворяют условию; условие может ссылаться на таблицу и содержать подзапрос.
При выдаче утверждения DELETE включается любой DELETE-триггер, определенный на таблице.
Команда DELETE Пример №1
Удаление всех строк из таблицы:
DELETE FROM temp_assign;
В данном примере команда DELETE удаляет все строки без исключения.
Команда DELETE Пример №2.
Удаляет из таблицы всех продавцов, у которых комиссионные меньше 100 у.е. в месяц:
DELETE FROM emp WHERE JOB = ‘SALESMAN’ AND COMM < 100;
В данном примере команда DELETE удаляет все строки, которые попадают под условие JOB = ‘SALESMAN’ AND COMM < 100;
Команда DELETE Пример №3
Предыдущий пример можно записать по-другому:
DELETE FROM (select * from emp) WHERE job = ‘SALESMAN’ AND comm < 100;
Для удаления всех записей в MySQL можно использовать следующую команду DELETE:
DELETE * FROM table_nam;
База Данных MySQL Инструкция DELETE удаления
Инструкция SQL DELETE
Инструкция DELETE используется для удаления существующих записей в таблице.
DELETE Синтаксис
DELETE FROM table_name
WHERE condition;
Примечание: Будьте внимательны при удалении записей в таблице! Обратите внимание на предложение WHERE в инструкции DELETE. Предложение WHERE указывает, какие записи должны быть удалены. Если опустить предложение WHERE, все записи в таблице будут удалены!
Демонстрационная база данных
Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Пример удаления SQL
Следующая инструкция SQL удаляет клиента «альфредс футтеркисте» из таблицы «клиенты»:
Пример
DELETE FROM Customers
WHERE CustomerName=’Alfreds Futterkiste’;
Таблица «Customers» теперь будет выглядеть так:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Удалить все записи
Можно удалить все строки в таблице без удаления таблицы. Это означает, что структура таблицы, атрибуты и индексы будут нетронутыми:
Или:
DELETE * FROM table_name;
SQL — запрос DELETE
Запрос DELETE используется для удаления существующих записей из таблицы.Вы можете использовать запрос WHERE с DELETE, чтобы удалить выбранные строки, в противном случае все записи будут удалены.
Синтаксис:
Базовый синтаксис DELETE запроса с WHERE выглядит следующим образом:
DELETE FROM table_name WHERE [condition];
Вы можете объединить N число условий с помощью операторов AND или OR.
Пример:
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
Ниже приведен пример, который бы удалил из таблицы CUSTOMERS строку, идентификатор равной 6:
SQL> DELETE FROM CUSTOMERS WHERE ID = 6;
Теперь таблица CUSTOMERS будет иметь следующие записи:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
Если вы хотите УДАЛИТЬ все записи из таблицы CUSTOMERS, вам не нужно использовать WHERE и запрос DELETE будет выглядеть следующим образом:
SQL> DELETE FROM CUSTOMERS;
Теперь таблица КЛИЕНТОВ не будет иметь никаких записей.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Оператор DELETE (Microsoft Access SQL)
- Статья
- Чтение занимает 2 мин
Оцените свои впечатления
Да Нет
Хотите оставить дополнительный отзыв?
Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.
Отправить
Спасибо!
В этой статье
Область применения: Access 2013, Office 2013
Создает запрос на удаление, который удаляет записи из одной или нескольких таблиц, указанных в предложении FROM, отвечающих предложению WHERE.
Синтаксис
DELETE [table.*] FROM table WHERE criteria
Оператор DELETE состоит из следующих частей:
Часть | Описание |
---|---|
table | Необязательное имя таблицы, из которой удаляются записи. |
table | Имя таблицы, из которой удаляются записи. |
criteria | Выражение, определяющее, какие записи нужно удалить. |
Комментарии
DELETE особенно полезен, если вы хотите удалить большое количество записей.
Чтобы удалить всю таблицу из базы данных, можно использовать метод Execute с оператором DROP. Однако, если удалить таблицу, может потеряться структура. С другой стороны при использовании DELETE удаляются только данные; а структура таблицы и все ее свойства, такие как атрибуты поля и индексы, остаются нетронутыми.
Вы можете использовать DELETE, чтобы удалить записи из таблиц, которые находятся в связи «один ко многим» с другими таблицами. Операции каскадного удаления вызывают удаление записей в таблицах, расположенных на стороне многих связей, при удалении соответствующей записи на стороне одной связи при запросе. Например, в связи между таблицами Клиенты и Заказы, таблица Клиенты находится на стороне одной связи, а таблица Заказы находится на стороне многих связей. Удаление записи из результатов клиентов в соответствующих записях заказов, удаляемых в случае, если указан параметр каскадного удаления.
Запрос на удаление удаляет записи целиком, а не только данные в определенных полях. Если вы хотите удалить значения в определенном поле, создайте обновленный запрос, который изменяет значение на Null.
Важно!
- Удаление записи, выполненное с помощью запроса на удаление, нельзя отменить. Чтобы узнать, какие записи будут удалены, сначала изучите результаты запроса на выборку, который использует те же критерии, и только после этого запустите запрос на удаление.
- Сохраняйте резервные копии ваших данных в любое время. Если вы удалили не те записи, вы сможете восстановить их из резервных копий.
Пример
В этом примере будут удалены все записи для сотрудников, чья должность — стажер. Если оператор FROM содержит только одну таблицу, нет необходимости перечислять имя таблицы в операторе DELETE.
Sub DeleteX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Delete employee records where title is Trainee.
dbs.Execute "DELETE * FROM " _
& "Employees WHERE Title = 'Trainee';"
dbs.Close
End Sub
SQL Инструкция DELETE
SQL DELETE
Инструкция DELETE используется для удаления существующих записей в таблице.
Синтаксис DELETE
DELETE FROM table_name WHERE condition;
Примечание: Будьте осторожны при удалении записей в таблице! Обратите внимание на предложение WHERE в инструкции DELETE. Предложение WHERE указывает, какие записи должны быть удалены. Если вы опустите предложение WHERE, то все записи в таблице будут удалены!
Демо база данных
Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Пример SQL DELETE
Следующая инструкция SQL удаляет клиента «Alfreds Futterkiste» из таблицы «Customers»:
Таблица «Customers» теперь будет выглядеть так:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Удалить все записи
Можно удалить все строки в таблице, не удаляя саму таблицу. Это означает, что структура таблицы, атрибуты и индексы останутся нетронутыми:
Следующая инструкция SQL удаляет все строки в таблице «Customers», не удаляя таблицу:
Оператор delete sql или запрос на удаление данных из таблиц
На уроке будет рассмотрен оператор Delete SQL, служащий для удаления записей таблиц, а также оператор Update sql, предназначенный для обновления данных. Будут разобраны конкретные примеры запросов
Запросы sql на удаление
Оператор Delete («удалить» — пер. с английского) удаляет записи из таблицы БД.
Синтаксис:
DELETE FROM <таблица> [WHERE <условие>];DELETE FROM <таблица> [WHERE <условие>];
Пример: БД Институт. Запрос на удаление урока за определенную дату (за 02.10.2016)
✍ Решение:
Исходные данные:DELETE FROM lessons WHERE lessons.date ='2016-10-02' |
Delete from lessons where lessons.date =’2016-10-02′
Результат:
sql delete 1. БД Институт. Выполните запрос на удаление курса с названием «Математика» (таблица courses
)
Важно: Если предложение WHERE
в запросе отсутствует, то удаляются все строки из таблицы
product
, для которых нет соответствующих строк в таблице pc
.✍ Решение:
DELETE FROM `product` WHERE `Тип`="Компьютер" AND `Номер` NOT IN (SELECT `Номер` FROM pc) |
DELETE FROM `product` WHERE `Тип`=»Компьютер» and `Номер` NOT IN (select `Номер` from pc)
Оператор Update sql
Запрос предназначен для обновления (изменения) существующих данных. Update
в переводе с английского языка — обновить.
Пример: БД Институт. Увеличить зарплату всех учителей в 2 раза, а премию — в 10 раз
✍ Решение:
UPDATE teachers SET zarplata = zarplata * 2, premia = premia * 10 |
UPDATE teachers SET zarplata = zarplata * 2, premia = premia * 10
Исходные данные:
Результат:
sql update 1. БД Институт. Увеличить в полтора раза зарплату у учителей, фамилия которых начинается на букву И
.
Память
у компьютеров, память которых менее 1024, установить его в 1024.Важно: При отсутствии предложения WHERE
будут обновлены все строки таблицы
Заявление SQL DELETE
Оператор SQL DELETE
Оператор DELETE
используется для удаления существующих записей в таблице.
УДАЛИТЬ Синтаксис
УДАЛИТЬ ИЗ имя_таблицы ГДЕ условие ;
Примечание: Будьте осторожны при удалении записей в таблице! Обратите внимание на Предложение WHERE
в УДАЛИТЬ
выписку.
Предложение WHERE
определяет, какие записи следует удалить.Если
если опустить предложение WHERE
, все записи в таблице будут удалены!
Демо-база данных
Ниже представлен выбор из таблицы «Клиенты» в примере Northwind. база данных:
Идентификатор клиента | Имя клиента | ContactName | Адрес | Город | Почтовый индекс | Страна |
---|---|---|---|---|---|---|
1 | Альфредс Футтеркисте | Мария Андерс | Обере, ул.57 | Берлин | 12209 | Германия |
2 | Ana Trujillo Emparedados y helados | Ана Трухильо | Avda. de la Constitución 2222 | México D.F. | 05021 | Мексика |
3 | Антонио Морено Такерия | Антонио Морено | Матадерос 2312 | México D.F. | 05023 | Мексика |
4 | Вокруг Рога | Томас Харди | 120 Ганновер пл. | Лондон | WA1 1DP | Великобритания |
5 | Berglunds snabbköp | Кристина Берглунд | Berguvsvägen 8 | Лулео | С-958 22 | Швеция |
Пример SQL DELETE
Следующий оператор SQL удаляет клиента «Alfreds Futterkiste» из Таблица «Покупатели»:
Пример
УДАЛИТЬ ОТ клиентов ГДЕ CustomerName = ‘Альфред Футтеркисте’;
Попробуй сам »Таблица «Клиенты» теперь будет выглядеть так:
Идентификатор клиента | Имя клиента | ContactName | Адрес | Город | Почтовый индекс | Страна |
---|---|---|---|---|---|---|
2 | Ana Trujillo Emparedados y helados | Ана Трухильо | Avda.de la Constitución 2222 | México D.F. | 05021 | Мексика |
3 | Антонио Морено Такерия | Антонио Морено | Матадерос 2312 | México D.F. | 05023 | Мексика |
4 | Вокруг Рога | Томас Харди | 120 Ганновер пл. | Лондон | WA1 1DP | Великобритания |
5 | Berglunds snabbköp | Кристина Берглунд | Berguvsvägen 8 | Лулео | С-958 22 | Швеция |
Удалить все записи
Можно удалить все строки в таблице, не удаляя таблицу.Этот означает, что структура таблицы, атрибуты и индексы останутся без изменений:
Следующий оператор SQL удаляет все строки в таблице «Клиенты», без удаления таблицы:
SQL Server DELETE — удаление одной или нескольких строк из таблицы
Сводка : в этом руководстве вы узнаете, как использовать оператор SQL Server DELETE
для удаления одной или нескольких строк из таблицы.
Введение в SQL Server
Оператор DELETE
Чтобы полностью удалить одну или несколько строк из таблицы, используйте оператор DELETE
.Следующее иллюстрирует его синтаксис:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE [TOP (выражение) [PERCENT]] FROM table_name [WHERE search_condition];
Сначала вы указываете имя таблицы, из которой должны быть удалены строки, в предложении FROM
.
Например, следующий оператор удалит все строки из target_table
:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE FROM target_table;
Во-вторых, чтобы указать количество или процент случайных строк, которые будут удалены, вы используете предложение TOP
.
Например, следующий оператор DELETE
удаляет 10 случайных строк из target_table
:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE TOP 10 FROM target_table;
Поскольку таблица хранит свои строки в неопределенном порядке, мы не знаем, какие строки будут удалены, но мы точно знаем, что количество строк будет удалено равно 10.
Точно так же вы можете удалить 10 процентов случайных строк, используя следующий оператор DELETE
:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE TOP 10 PERCENT FROM target_table;
В-третьих, практически говоря, вы редко удаляете все строки из таблицы, а только одну или несколько строк.В этом случае вам необходимо указать search_condition
в предложении WHERE
, чтобы ограничить количество удаляемых строк.
Строки, из-за которых search_condition
оценивается как истинное, будут удалены.
Предложение WHERE
является необязательным. Если вы его пропустите, оператор DELETE
удалит все строки из таблицы.
SQL Server
DELETE
примеры операторовДавайте создадим новую таблицу для демонстрации.
Следующий оператор создает таблицу с именем production.product_history
с данными, скопированными из таблицы production.products
:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT * INTO production.product_history ОТ production.products;
Следующий запрос возвращает все строки из таблицы product_history
:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT * FROM production.product_history;
Как ясно видно из выходных данных, всего у нас 321 строка.
1) Удалить количество случайных строк, пример
Следующий оператор DELETE
удаляет 21 случайную строку из таблицы product_history
:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE TOP (21) ИЗ production.product_history;
Вот сообщение, выданное SQL Server:
Язык кода: SQL (язык структурированных запросов) (sql)
(затронута 21 строка)
Это означает, что 21 строка была удалена.
2) Удалить процент случайных строк, пример
Следующий оператор DELETE
удаляет 5 процентов случайных строк из таблицы product_history
:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE TOP (5) PERCENT ИЗ production.product_history;
SQL Server выдал следующее сообщение, указывающее, что 15 строк (300 x 5% = 15) были удалены.
Язык кода: SQL (язык структурированных запросов) (sql)
(затронуто 15 рядов)
3) Удаление некоторых строк с примером условия
Следующий оператор DELETE
удаляет все продукты с модельным годом 2017:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE ОТ производство.product_history ГДЕ model_year = 2017;
Вот выходное сообщение:
Язык кода: SQL (язык структурированных запросов) (sql)
(затронуто 75 строк)
4) Удалить все строки из примера таблицы
Следующий оператор DELETE
удаляет все строки из таблицы product_history
:
Язык кода: SQL (язык структурированных запросов) (sql)
DELETE ОТ ПРОИЗВОДСТВА.product_history;
Обратите внимание, что если вы хотите удалить все строки из большой таблицы, вы должны использовать оператор TRUNCATE TABLE
, который работает быстрее и эффективнее.
В этом руководстве вы узнали, как использовать оператор SQL Server DELETE
для удаления одной или нескольких строк из таблицы.
SQL | Оператор DELETE — GeeksforGeeks
Оператор DELETE в SQL используется для удаления существующих записей из таблицы.Мы можем удалить одну запись или несколько записей в зависимости от условия, которое мы указываем в предложении WHERE.
Базовый синтаксис:
Вниманию читателя! Не прекращайте учиться сейчас. Изучите SQL для собеседований с помощью курса SQL от GeeksforGeeks.
УДАЛИТЬ ИЗ имя_таблицы ГДЕ некоторое_условие; table_name : имя таблицы some_condition : условие выбора конкретной записи.
Примечание: Мы можем удалять как отдельные, так и несколько записей в зависимости от условия, указанного в предложении WHERE.Если мы опустим предложение WHERE, все записи будут удалены, а таблица будет пустой.
Образец таблицы:
Примеры запросов:
- Удаление отдельной записи : Удалите строки, в которых ИМЯ = «Ram». Это удалит только первую строку.
УДАЛИТЬ ОТ ученика, ГДЕ ИМЯ = «Баран»;
Вывод:
Приведенный выше запрос удалит только первую строку, и таблица Студент теперь будет выглядеть так:ROLL_NO ИМЯ АДРЕС ТЕЛЕФОН Возраст 2 RAMESH GURGAON XXXXXXXXXX 18 3 СУДЖИТ ROHTAK XXXXXXXXXX Дели XXXXXXXXXX 18 3 СУДЖИТ ROHTAK XXXXXXXXXX 20 2 RAMESH GURGAON XXXXXXX5 несколько записей : удалить строки из таблицы e Учащийся 20 лет.Это удалит 2 строки (третья строка и пятая строка). УДАЛИТЬ ОТ ученика ГДЕ Возраст = 20;
Вывод:
Приведенный выше запрос удалит две строки (третья строка и пятая строка), и таблица Student теперь будет выглядеть так:ROLL_NO NAME ADDRESS ТЕЛЕФОН Возраст 1 Оперативная память Дели XXXXXXXXX 18 42 RAMESH GURGAON XXXXXX52 SURESH Delhi XXXXXXXXXX 18 2 RAMESH GURGAON XXXXXXXXXX 18 - Удалить все записи это, как показано ниже,
query1: «УДАЛИТЬ ОТ ученика»; query2: «УДАЛИТЬ * ОТ ученика»;
Вывод:
Все записи в таблице будут удалены, не останется записей для отображения.Стол Студент станет пустым!SQL Quiz
Эта статья предоставлена Harsh Agarwal . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью, используя write.geeksforgeeks.org, или отправить свою статью по адресу [email protected]. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.
SQL DELETE — удаление данных в таблице или нескольких таблицах
Сводка : в этом руководстве вы узнаете, как использовать оператор SQL DELETE для удаления одной или нескольких строк в таблице.
Оператор
DELETE
навсегда удаляет одну или несколько строк в таблице. Синтаксис оператораDELETE
следующий:DELETE FROM table ГДЕ состояние;
Чтобы удалить одну или несколько строк в таблице:
- Сначала вы указываете имя таблицы, из которой вы хотите удалить данные, в предложении
DELETE FROM
. - Во-вторых, вы помещаете условие в предложение WHERE, чтобы указать, какие строки следует удалить. Если вы опустите предложение
WHERE
, оператор удалит все строки в таблице.
Если вы хотите удалить все строки в большой таблице, вы должны использовать оператор TRUNCATE TABLE, который более эффективен, чем оператор
DELETE
.Примеры SQL DELETE
Давайте рассмотрим несколько примеров использования оператора DELETE.
SQL DELETE — удаление одной строки в таблице
Следующий оператор удаляет сотрудника с идентификатором 3 из таблицы
сотрудников
:УДАЛИТЬ ИЗ сотрудников ГДЕ employeeID = 3;
SQL DELETE — удаление всех строк в таблице
Чтобы удалить все строки в таблице
employee
, вы просто выполните следующий запрос: (не рекомендуется и сделайте резервную копию перед этим)DELETE ОТ сотрудников;
SQL DELETE — удаление связанных строк в нескольких таблицах
Это становится более сложным, когда вы хотите удалить строку в таблице, которая связана с другими строками в другой таблице.
Например, каждый сотрудник работает на одной или нескольких территориях, и на каждой территории есть несколько сотрудников. Таблица
территорий сотрудников
используется для хранения отношений между сотрудниками и территориями.При удалении строки в таблице
сотрудников
необходимо также удалить связанные строки в таблицетерриторий сотрудников
. Для этого необходимо выполнить два оператораDELETE
следующим образом:DELETE FROM сотрудников ГДЕ employeeID = 3;
УДАЛИТЬ С территории сотрудников WHERE employeeID = 3
Большинство систем управления базами данных позволяют создавать ограничение внешнего ключа, чтобы при удалении строки в таблице соответствующие строки связанной таблицы также удалялись автоматически.Это гарантирует целостность данных. В этом случае вам просто нужно выполнить первый оператор
DELETE
только для удаления строк в двух таблицах.В случае, если система управления базой данных не поддерживает ограничение внешнего ключа, вы должны выполнить оба оператора
DELETE
в одной транзакции, чтобы убедиться, что операторы выполняются в режиме «все или ничего».В этом руководстве мы показали вам, как использовать оператор SQL
DELETE
для удаления одной или нескольких строк в таблице.Как удалить записи с помощью Delete в SQL
Управление данными может быть сложной задачей, учитывая огромные объемы данных, с которыми приходится иметь дело. Любой, кто управляет данными, знает, что иногда нам нужно удалить некоторые данные из нашей базы данных из-за изменений в реальном мире. Например, когда магазин прекращает продажу товара, его запись удаляется из базы данных инвентаризации. Это делается с помощью команды SQL Delete. Эта команда является важной и неотъемлемой частью этого языка запросов.
Что такое удаление в SQL?
Команда «Удалить» в SQL является частью языка обработки данных, подъязыка SQL, который позволяет изменять данные в базах данных. Эта команда используется для удаления существующих записей из таблицы. Используя это, вы можете удалить определенные записи на основе условия или все записи из таблицы.
ПРИМЕЧАНИЕ: Крайне важно быть полностью уверенным в использовании этой команды, поскольку она удаляет данные безвозвратно.
Чтобы начать использовать команду «Удалить», нам необходимо знать ее синтаксис.
Программа аспирантуры по бизнес-анализу
В партнерстве с Университетом ПердьюСинтаксис для использования команды удаления SQL
УДАЛИТЬ ИЗ имя_таблицы
ГДЕ [условие];
- Таблица, из которой мы хотим удалить строки, указывается в параметре table_name оператора DELETE FROM.
- Существует необязательное предложение WHERE, в котором мы можем указать условие, согласно которому строки должны быть удалены.
ПРИМЕЧАНИЕ. Следует проявлять особую осторожность с предложением WHERE, поскольку без него все строки из таблицы будут удалены.
В предложении WHERE можно указать несколько условий с помощью операторов AND и OR.
Давайте применим концепции, изложенные выше, к строкам таблицы.
Удаление определенных строк на основе одного условия
Возьмем образец таблицы «Employee_details»;
- Из приведенной выше таблицы, чтобы удалить запись сотрудника с «EmployeeID», равным единице, мы воспользуемся следующим запросом:
- Чтобы проверить результат запроса в таблице выше, мы воспользуемся командой «SELECT *»:
Как мы видим, одна запись была удалена на основании условия, указанного в предложении WHERE.
- Из приведенной выше таблицы нам нужно удалить запись сотрудника с именем «Арун»:
Как мы видим, «Имя» имеет тип данных символьной строки, поэтому указанное значение должно быть заключено в одиночные кавычки, без которых система вернет синтаксическую ошибку.
Результатом вышеуказанного запроса будет следующее:
- Мы также можем удалить несколько строк с помощью одного запроса.
Из приведенной выше таблицы нам нужно удалить все записи сотрудников с окладом менее 60000:
Это приведет к следующему:
Как видим, удалены четыре строки.
С помощью одного запроса к столбцам можно применить несколько условий. Посмотрим, как это делается.
Удаление определенных строк на основе нескольких условий
Мы можем использовать операторы AND и OR для объединения нескольких условий в предложении WHERE команды DELETE.
- При использовании оператора OR все строки, удовлетворяющие любому из указанных условий, удаляются.
Из нашего образца таблицы «Employee_details», чтобы удалить все записи сотрудников, в которых имя сотрудника — «Аджай» или город — «Ченнаи»:
Это приведет к следующему:
Как мы видим, обе строки, удовлетворяющие любому из условий, были удалены.
- При использовании оператора AND удаляются только строки, удовлетворяющие обоим указанным условиям.
Из приведенной выше таблицы нам нужно удалить все записи для сотрудников, которые принадлежат «Бангалору» и имеют зарплату менее 50000:
Это приведет к следующему:
Как мы видим, была удалена только одна запись, удовлетворяющая обоим условиям.
Давайте посмотрим, что произойдет, если мы не будем использовать предложение WHERE.
Магистерская программа для бизнес-аналитиков
Получите знания в области инструментов бизнес-аналитикиПросмотрите программуУдаление всех записей из таблицы
Крайне важно быть предельно осторожным при использовании команды DELETE для таблицы, поскольку данные удаляются безвозвратно.
- Без предложения WHERE все записи таблицы удаляются. Если не сделать это намеренно, это может вызвать множество проблем.
Чтобы удалить все записи из нашей таблицы «Employee_details», воспользуемся следующим запросом:
Чтобы проверить, все ли записи удалены, воспользуемся командой SELECT:
Как мы видим, команда SELECT возвращает пустой набор, поскольку все записи из таблицы «Employee_details» были удалены.
- Мы также можем использовать команду TRUNCATE для удаления всех записей из таблицы.
Это часть языка определения данных, подъязыка SQL, который позволяет создавать и изменять объекты базы данных. Синтаксис этой команды:
Как мы видим, здесь нет предложения WHERE, поэтому эта команда используется только тогда, когда нам нужно очистить содержимое таблицы.
Чтобы удалить все записи из таблицы «Employee_details»:
Чтобы проверить, все ли записи удалены:
Как мы видим, записи были удалены, и таблица возвращает пустой набор.
Получите знания о новейших инструментах и методах бизнес-аналитики с помощью магистерской программы Business Analyst. Запишитесь сейчас!
Следующие шаги
Удаление записей из таблиц и баз данных — огромная часть управления данными. Иногда мы вставляем неправильные данные или данные в таблице устаревают и требуют модификации, все это требует помощи Delete в SQL.
Ознакомьтесь с нашими руководствами, чтобы узнать, как удалять повторяющиеся строки в таблицах и многих операторах SQL.
Теперь, когда вы знаете, как удалять существующие записи, пора вам начать изучать другие команды SQL, чтобы вы могли начать манипулировать и запрашивать данные и продвигаться вперед в своем пути, чтобы стать экспертом в SQL. Если вам понравилась эта статья, вы должны ознакомиться с нашей магистерской программой для бизнес-аналитиков, поскольку она также охватывает А-Я SQL.
У вас есть к нам вопросы? Упомяните их в разделе комментариев нашей статьи «Удаление в SQL», и наши специалисты ответят на них за вас.
Оператор удаления строки SQL — Как удалить данные из таблицы с примерами запросов
Я не сомневаюсь в том, насколько мне нравится работать с SQL как в моих профессиональных, так и в личных проектах.
Его прямолинейность и простота апеллируют к моему желанию иметь четко определенные границы с точки зрения того, что язык будет и не позволит мне «уйти с рук» в отношении синтаксиса.
SQL имеет четкую и лаконичную структуру операций, при которой вводимые пользователем данные определяют возвращаемые данные.Отсюда мой комментарий о четко определенных границах синтаксиса.
Хотя я отмечаю его отказоустойчивость (SQL был создан в 1974 году с первоначальной версией 1986 года) в сообществе разработчиков, я также знаю, что при работе с данными может казаться, что даже основы могут вызывать стресс и пугать.
Я здесь, чтобы (надеюсь) пролить свет на один из основных принципов работы с данными: удаление всей строки данных.
Хотя мы не собираемся подробно описывать процесс создания таблицы в SQL или заполнения этой таблицы данными / обновления этих данных, я связал эти другие статьи на случай, если вы хотите узнать больше или просто нуждаетесь в освежить.
Хорошо, теперь самое интересное — приступим к удалению данных из таблицы!
Обзор строки удаления SQL
Вот таблица с метким названием Cute_Doggos , которую мы будем использовать в качестве примера для начала удаления данных из:
Имя Цвет Порода Возраст Вес Высота Fav_Food Игрушка Fav_Toy Дизлайки Аллергия ромашка красный Такса стандартная 1 год 14 6 Кусок со вкусом лосося скрипучий мяч птицы летают над двором кошки, бани, чистота Уинстон черный / коричневый ротвейлер 3 года 41 17 буквально все, что угодно буксир не вставать с дивана слушает, ведет себя, не слюнявит на всем Сэмми светлый мед золотистый ретривер 9 лет 46 19 Кусочки со вкусом говядины ее кровать безрадостных щенков неизвестно пенелопа серый и белый хаски 9 месяцев 16 12 старые туфли снаружи питомник неизвестно Как вы уже догадались, это фиктивные данные из таблицы, которую я придумал на пустом месте 🙂 Однако я надеюсь, что она достаточно хорошо иллюстрирует данные для наших целей.
Как и в большинстве случаев технического характера, не помешает также проверить официальную документацию. Если вы хотите это сделать, у Microsoft есть отличная подробная информация об операторе SQL Delete.
В основе статьи — удаление данных. Действие так же просто, как само имя, и вот его базовый синтаксис:
УДАЛИТЬ ИЗ имя_таблицы
*** С помощью этого синтаксиса вы удалите все строки данных во всей таблице. ***
Итак, для В приведенной выше таблице в качестве примера запрос будет выглядеть следующим образом:
DELETE FROM Cute_Doggos
Это может быть ваша предполагаемая цель, и чем дольше вы пишете SQL, тем больше случаев вы найдете для использования оператора удаления в этом качестве.
Я использовал этот оператор много раз, чтобы очистить таблицу после того, как она была заполнена тестовыми данными. Такой подход позволяет нам сохранять имена столбцов, типы данных, индексы и общую структуру таблицы в такт, не удаляя саму таблицу.
В качестве примечания: если ваша предполагаемая цель — удалить все строки в таблице, более быстрым подходом будет использование оператора TRUNCATE TABLE, поскольку он использует гораздо меньше системных ресурсов.
Пример запросов на удаление
В подавляющем большинстве случаев, когда вы используете функцию удаления, вы захотите, чтобы ваш подход был более целенаправленным.Для этого мы добавим условие, и синтаксис будет выглядеть так:
УДАЛИТЬ ИЗ name_of_table WHERE conditions_exist
Используя нашу таблицу собак выше, наш запрос будет выглядеть так:
DELETE FROM Cute_Doggos WHERE dbo.Cute_Doggos.Height> 18
Это приведет к удалению всех записей из нашей таблицы, которые соответствуют нашему условию, когда высота больше 18 . А если вы используете Microsoft SQL Server Manager, вы получите следующий оператор возврата:
(затронута 1 строка)
Если вы хотите увидеть строки данных, которые были удалены (для целей ведения журнала) , визуальные указания для пользователей и т. д.), мы можем использовать оператор OUTPUT , чтобы сделать именно это.
Теперь наша таблица будет выглядеть так:
Имя Цвет Порода Возраст Вес Высота Fav_Food Игрушка Fav_Toy Дизлайки Аллергия ромашка красный Такса стандартная 1 год 14 6 Кусок со вкусом лосося скрипучий мяч птицы летают над двором кошки, бани, чистота Уинстон черный / коричневый ротвейлер 3 года 41 17 буквально все, что угодно буксир не вставать с дивана слушает, ведет себя, не слюнявит на всем пенелопа серый и белый хаски 9 месяцев 16 12 старые туфли снаружи питомник неизвестно Условия, которые мы устанавливаем, полностью наш выбор, и если они слишком узкие для ваших нужд, есть другие варианты.
Допустим, вас не интересуют конкретные удаляемые записи, а только то, что вам нужно удалить определенное количество записей в таблице.
DELETE TOP 2 FROM Cute_Doggos
Вы могли подумать, что этот запрос удалит самые первые две записи в вашей таблице — и вы не так уж и далеко. Единственная проблема заключается в том, что поскольку SQL хранит записи в случайном порядке, этот синтаксис удалит из таблицы 2 RANDOM записей.
Если вы хотите удалить процент записей, SQL также может это сделать:
УДАЛИТЬ 25 ПРОЦЕНТОВ ВЕРХНИХ ИЗ Cute_Doggos
Опять же, этот запрос удалит RANDOM записей.В нашем примере, поскольку у нас есть 4 записи, этот запрос удалит 1 случайную запись (4 * 0,25 = 1).
В качестве последнего примечания, при использовании ключевого слова TOP мы не можем использовать предложение ORDER BY из-за случайности хранения записей.
Завершение
Теперь, когда вы увидели оператор DELETE в действии, вы готовы выйти на улицу и извлечь все данные из всех таблиц! Может быть, не делайте этого, так как это продлится долгие выходные восстановления из резервных копий 🙂
В любом случае, теперь вы готовы начать использовать его с пользой.
Если вы нашли эту статью полезной, загляните в мой блог (в настоящее время я перестраиваю его в Gatsby / WordPress, так что ждите статьи об этом), где я часто публикую статьи о веб-разработке, жизни и обучении.
Пока вы там, почему бы не подписаться на мою рассылку новостей? Вы можете сделать это в правом верхнем углу главной страницы блога. Мне нравится присылать интересные статьи (свои и другие), ресурсы и инструменты для разработчиков время от времени.
Если у вас есть вопросы по этой статье или просто дайте мне знать — приходите поздороваться в Twitter или в любой из моих других социальных сетей, которые вы можете найти под рассылкой новостей, подпишитесь на главной странице моего блога или в моем профиле здесь, на freeCodeCamp 🙂
Хорошего дня! Удачного обучения и удачного программирования, друг.
Операторы SQL DELETE, TRUNCATE, DROP
Оператор DELETE используется для удаления строк из таблицы.
Синтаксис оператора SQL DELETE
УДАЛИТЬ ИЗ имя_таблицы [условие ГДЕ];
- table_name — имя таблицы, которую необходимо обновить.
ПРИМЕЧАНИЕ. Предложение WHERE в команде sql delete является необязательным и определяет строки в столбце, который удаляется.Если вы не включили предложение WHERE, все строки в таблице будут удалены, поэтому будьте осторожны при написании запроса DELETE без предложения WHERE.
Пример SQL DELETE
Чтобы удалить сотрудника с идентификатором 100 из таблицы сотрудников, запрос на удаление sql будет иметь вид
УДАЛИТЬ ОТ сотрудника, ГДЕ id = 100;
Чтобы удалить все строки из таблицы сотрудников, запрос будет выглядеть так:
УДАЛИТЬ ОТ сотрудника;
Команда SQL TRUNCATE используется для удаления всех строк из таблицы и освобождения пространства, содержащего таблицу.
Синтаксис TRUNCATE таблицы:
TRUNCATE TABLE имя_таблицы;
Пример инструкции SQL TRUNCATE
Чтобы удалить все строки из таблицы сотрудников, запрос будет иметь вид
Сотрудник TRUNCATE TABLE;
Разница между операторами DELETE и TRUNCATE:
Оператор DELETE: Эта команда удаляет только строки из таблицы на основе условия, указанного в предложении where, или удаляет все строки из таблицы, если условие не указано.Но это не освобождает пространство, в котором находится стол.
Оператор TRUNCATE: Эта команда используется для удаления всех строк из таблицы и освобождения пространства, содержащего таблицу.
Команда SQL DROP используется для удаления объекта из базы данных. Если вы отбрасываете таблицу, все строки в таблице удаляются, а структура таблицы удаляется из базы данных. После удаления таблицы мы не сможем ее вернуть, поэтому будьте осторожны при использовании команды DROP. Когда таблица удаляется, все ссылки на нее становятся недействительными.
Синтаксис для удаления структуры таблицы sql:
DROP TABLE имя_таблицы;
Пример инструкции SQL DROP
Чтобы удалить сотрудника таблицы, запрос будет иметь вид
Сотрудник DROP TABLE;
Разница между операторами DROP и TRUNCATE:
Если таблица удаляется, все отношения с другими таблицами больше не будут действительны, ограничения целостности будут отброшены, привилегии предоставления или доступа к таблице также будут отброшены, если вы хотите снова использовать таблицу, ее необходимо воссоздать с помощью ограничения целостности, права доступа и отношения с другими таблицами должны быть установлены снова.
Оставить комментарий - Удалить все записи это, как показано ниже,